Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
b41f165
update HappensAfter contract to reflect v2
a-alveyblanc Jul 17, 2026
1c1730d
Merge branch 'main' of https://github.com/inducer/loopy into precise-…
a-alveyblanc Jul 17, 2026
7d1ddbf
implement add_lexicographic_happens_after + tests
a-alveyblanc Jul 18, 2026
5c82ac4
add access reln finding machinery + v2 chaser
a-alveyblanc Jul 19, 2026
459a6c5
formatting
a-alveyblanc Jul 19, 2026
97c74cf
clean up pass
a-alveyblanc Jul 19, 2026
5f96a3e
hook kernel/dependency.py into docs; add namedisl to docs config
a-alveyblanc Jul 19, 2026
a009c5b
temporarily use unnamed HappensAfter.instances_rel
a-alveyblanc Jul 19, 2026
10affd5
add precise dependency verification
a-alveyblanc Jul 21, 2026
f88b459
add namedisl git url to pyproject.toml temporarily
a-alveyblanc Jul 21, 2026
007bca9
fix ruff complaints
a-alveyblanc Jul 21, 2026
4f72d9f
formatting + add verification to docs
a-alveyblanc Jul 21, 2026
0ec2850
add file headers
a-alveyblanc Jul 21, 2026
b6393af
align namedisl usage with upstream namedisl api
a-alveyblanc Jul 21, 2026
eec7919
fix ruff complaints (again)
a-alveyblanc Jul 21, 2026
f4ac7c8
minor: prefer statement over instruction
a-alveyblanc Jul 21, 2026
33b226a
ignore precise self edges for scheduling
a-alveyblanc Jul 21, 2026
2293303
handle scalar accesses during access relation gathering
a-alveyblanc Jul 21, 2026
18910b2
improve dependency testing suite
a-alveyblanc Jul 21, 2026
b46c17a
use name generator to avoid conflicts in relation construction
a-alveyblanc Jul 21, 2026
d535428
fix ruff complaints
a-alveyblanc Jul 21, 2026
cf0200d
update baseline to include InstructionBase.copy() usage in dependency.py
a-alveyblanc Jul 21, 2026
e4169c8
expand substitution rules when finding access relations
a-alveyblanc Jul 21, 2026
483d3bf
minor formatting
a-alveyblanc Jul 21, 2026
f9d95df
add primitive for transforming happens afters when inames are transfo…
a-alveyblanc Jul 21, 2026
7c48038
add splicing primitives for consumer/producer insertion; hook split_i…
a-alveyblanc Jul 21, 2026
f896110
bugfixes causing overapproximation of required ordering in some cases
a-alveyblanc Jul 25, 2026
8a6a2f4
bugfix: actually find most-recent-writer in scalar access case
a-alveyblanc Jul 25, 2026
c48e841
more underapproximation bugfixes
a-alveyblanc Jul 27, 2026
0602708
adapt precise verification to namedisl API
a-alveyblanc Aug 18, 2026
c3a6cc3
merge main into precise dependencies
a-alveyblanc Aug 18, 2026
87508ce
fix global most-recent-writer selection
a-alveyblanc Aug 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion .basedpyright/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -14016,6 +14016,24 @@
}
}
],
"./loopy/kernel/dependency.py": [
{
"code": "reportUnknownMemberType",
"range": {
"startColumn": 25,
"endColumn": 34,
"lineCount": 1
}
},
{
"code": "reportUnknownMemberType",
"range": {
"startColumn": 12,
"endColumn": 43,
"lineCount": 1
}
}
],
"./loopy/kernel/function_interface.py": [
{
"code": "reportAny",
Expand Down Expand Up @@ -74225,4 +74243,4 @@
}
]
}
}
}
5 changes: 5 additions & 0 deletions doc/ref_internals.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,8 @@ Schedule
.. automodule:: loopy.schedule
.. automodule:: loopy.schedule.tools
.. automodule:: loopy.schedule.tree

Dependence Analysis
-------------------
.. automodule:: loopy.kernel.dependency
.. automodule:: loopy.schedule.verification
7 changes: 7 additions & 0 deletions loopy/codegen/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,13 @@ def generate_code_for_a_single_kernel(
raise LoopyError("cannot generate code for a kernel that has not been "
"scheduled")

from loopy.kernel.dependency import has_precise_dependencies
if has_precise_dependencies(kernel):
from loopy.schedule.verification import (
verify_happens_after_is_enforced,
)
kernel = verify_happens_after_is_enforced(kernel)

codegen_plog = ProcessLogger(logger, f"{kernel.name}: generate code")

# {{{ examine arg list
Expand Down
Loading
Loading