{"action":"created","issue":{"url":"https://api.github.com/repos/opesci/devito/issues/560","repository_url":"https://api.github.com/repos/opesci/devito","labels_url":"https://api.github.com/repos/opesci/devito/issues/560/labels{/name}","comments_url":"https://api.github.com/repos/opesci/devito/issues/560/comments","events_url":"https://api.github.com/repos/opesci/devito/issues/560/events","html_url":"https://github.com/opesci/devito/pull/560","id":319460843,"number":560,"title":"ir: ScheduleTree level","user":{"login":"FabioLuporini","id":478143,"avatar_url":"https://avatars3.githubusercontent.com/u/478143?v=4","gravatar_id":"","url":"https://api.github.com/users/FabioLuporini","html_url":"https://github.com/FabioLuporini","followers_url":"https://api.github.com/users/FabioLuporini/followers","following_url":"https://api.github.com/users/FabioLuporini/following{/other_user}","gists_url":"https://api.github.com/users/FabioLuporini/gists{/gist_id}","starred_url":"https://api.github.com/users/FabioLuporini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FabioLuporini/subscriptions","organizations_url":"https://api.github.com/users/FabioLuporini/orgs","repos_url":"https://api.github.com/users/FabioLuporini/repos","events_url":"https://api.github.com/users/FabioLuporini/events{/privacy}","received_events_url":"https://api.github.com/users/FabioLuporini/received_events","type":"User","site_admin":false},"labels":[{"id":920184278,"url":"https://api.github.com/repos/opesci/devito/labels/review","name":"review","color":"ededed","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-05-02T08:35:32Z","updated_at":"2018-05-02T13:10:29Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/opesci/devito/pulls/560","html_url":"https://github.com/opesci/devito/pull/560","diff_url":"https://github.com/opesci/devito/pull/560.diff","patch_url":"https://github.com/opesci/devito/pull/560.patch"},"body":"The ultimate goal is adding BC support to the YASK backend. This preliminary PR improves the IR to make life easier when it comes to do transformations in the YASK backend.\r\n\r\nThe main addition of this PR is the ScheduleTree (``stree``), an intermediate level of representation between that of ``Clusters`` and ``IET``. When lowering from a sequence of Clusters to an IET, two main things are required:\r\n1- the logic to determine what iteration spaces can be shared by different clusters;\r\n2- the construction of the IET itself\r\n\r\npreviously, these two passes were intertwined in the same routine (``iet_make``), at  the same level of abstraction. This PR decouples them; an ``stree`` now takes care of point 1 above, by \"unwinding\"  the sequence of clusters into a minimal, mutable tree data structure. ``iet_make`` now only traverses the ``stree`` to emit a new, \"fatter\", immutable tree, namely IET.\r\n\r\nThis pass allowed me to drastically simplify the profiling engine, which is now vastly more clear (to understand) and robust than it used to be. I compared its output to that of ``master`` on a set of notable examples, but I'd like some of you (@navjotk, @tjb900, @ggorman, @mloubout  ) to do the same. Let me emphasise that all these changes are crucial for the development of the YASK backend."},"comment":{"url":"https://api.github.com/repos/opesci/devito/issues/comments/385972269","html_url":"https://github.com/opesci/devito/pull/560#issuecomment-385972269","issue_url":"https://api.github.com/repos/opesci/devito/issues/560","id":385972269,"user":{"login":"codecov-io","id":8655789,"avatar_url":"https://avatars0.githubusercontent.com/u/8655789?v=4","gravatar_id":"","url":"https://api.github.com/users/codecov-io","html_url":"https://github.com/codecov-io","followers_url":"https://api.github.com/users/codecov-io/followers","following_url":"https://api.github.com/users/codecov-io/following{/other_user}","gists_url":"https://api.github.com/users/codecov-io/gists{/gist_id}","starred_url":"https://api.github.com/users/codecov-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codecov-io/subscriptions","organizations_url":"https://api.github.com/users/codecov-io/orgs","repos_url":"https://api.github.com/users/codecov-io/repos","events_url":"https://api.github.com/users/codecov-io/events{/privacy}","received_events_url":"https://api.github.com/users/codecov-io/received_events","type":"User","site_admin":false},"created_at":"2018-05-02T13:10:29Z","updated_at":"2018-05-02T13:10:29Z","author_association":"NONE","body":"# [Codecov](https://codecov.io/gh/opesci/devito/pull/560?src=pr&el=h1) Report\n> Merging [#560](https://codecov.io/gh/opesci/devito/pull/560?src=pr&el=desc) into [master](https://codecov.io/gh/opesci/devito/commit/d93c00236ee0592c5176c767436bf18fb2f52b7d?src=pr&el=desc) will **increase** coverage by `0.31%`.\n> The diff coverage is `91.08%`.\n\n[![Impacted file tree graph](https://codecov.io/gh/opesci/devito/pull/560/graphs/tree.svg?height=150&width=650&token=jeypO8ABnN&src=pr)](https://codecov.io/gh/opesci/devito/pull/560?src=pr&el=tree)\n\n```diff\n@@            Coverage Diff             @@\n##           master     #560      +/-   ##\n==========================================\n+ Coverage   75.82%   76.14%   +0.31%     \n==========================================\n  Files          74       77       +3     \n  Lines        7021     7143     +122     \n  Branches     1427     1436       +9     \n==========================================\n+ Hits         5324     5439     +115     \n- Misses       1524     1533       +9     \n+ Partials      173      171       -2\n```\n\n\n| [Impacted Files](https://codecov.io/gh/opesci/devito/pull/560?src=pr&el=tree) | Coverage Δ | |\n|---|---|---|\n| [devito/ir/iet/visitors.py](https://codecov.io/gh/opesci/devito/pull/560/diff?src=pr&el=tree#diff-ZGV2aXRvL2lyL2lldC92aXNpdG9ycy5weQ==) | `81.29% <ø> (+0.25%)` | :arrow_up: |\n| [devito/yask/operator.py](https://codecov.io/gh/opesci/devito/pull/560/diff?src=pr&el=tree#diff-ZGV2aXRvL3lhc2svb3BlcmF0b3IucHk=) | `0% <0%> (ø)` | :arrow_up: |\n| [devito/ir/equations/equation.py](https://codecov.io/gh/opesci/devito/pull/560/diff?src=pr&el=tree#diff-ZGV2aXRvL2lyL2VxdWF0aW9ucy9lcXVhdGlvbi5weQ==) | `79.16% <100%> (ø)` | :arrow_up: |\n| [devito/profiling.py](https://codecov.io/gh/opesci/devito/pull/560/diff?src=pr&el=tree#diff-ZGV2aXRvL3Byb2ZpbGluZy5weQ==) | `95.89% <100%> (+3.1%)` | :arrow_up: |\n| [devito/symbolics/inspection.py](https://codecov.io/gh/opesci/devito/pull/560/diff?src=pr&el=tree#diff-ZGV2aXRvL3N5bWJvbGljcy9pbnNwZWN0aW9uLnB5) | `94.64% <100%> (+6.18%)` | :arrow_up: |\n| [devito/ir/stree/\\_\\_init\\_\\_.py](https://codecov.io/gh/opesci/devito/pull/560/diff?src=pr&el=tree#diff-ZGV2aXRvL2lyL3N0cmVlL19faW5pdF9fLnB5) | `100% <100%> (ø)` | |\n| [devito/dse/backends/advanced.py](https://codecov.io/gh/opesci/devito/pull/560/diff?src=pr&el=tree#diff-ZGV2aXRvL2RzZS9iYWNrZW5kcy9hZHZhbmNlZC5weQ==) | `98.79% <100%> (+0.01%)` | :arrow_up: |\n| [devito/ir/iet/utils.py](https://codecov.io/gh/opesci/devito/pull/560/diff?src=pr&el=tree#diff-ZGV2aXRvL2lyL2lldC91dGlscy5weQ==) | `78.12% <100%> (ø)` | :arrow_up: |\n| [devito/ir/stree/algorithms.py](https://codecov.io/gh/opesci/devito/pull/560/diff?src=pr&el=tree#diff-ZGV2aXRvL2lyL3N0cmVlL2FsZ29yaXRobXMucHk=) | `100% <100%> (ø)` | |\n| [devito/ir/clusters/cluster.py](https://codecov.io/gh/opesci/devito/pull/560/diff?src=pr&el=tree#diff-ZGV2aXRvL2lyL2NsdXN0ZXJzL2NsdXN0ZXIucHk=) | `95.04% <100%> (+1.16%)` | :arrow_up: |\n| ... and [12 more](https://codecov.io/gh/opesci/devito/pull/560/diff?src=pr&el=tree-more) | |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/opesci/devito/pull/560?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/opesci/devito/pull/560?src=pr&el=footer). Last update [d93c002...b5f27ec](https://codecov.io/gh/opesci/devito/pull/560?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n"}}
{"actor":{"display_login":"codecov-io"}}