[LTL] Make ltl.delay support optional clocking#9869
[LTL] Make ltl.delay support optional clocking#9869
Conversation
c25092b to
2312c9d
Compare
|
@uenoku cc |
2312c9d to
68773b2
Compare
uenoku
left a comment
There was a problem hiding this comment.
Probably we should add an operation instead of adding optional operand because we could break existing delay op's semantics.
Ok, this way seems better, i will change the RFC first and then redo this pr's commits. |
- Move ClockEdgeAttr and ClockOp definitions before the Sequences section so they can be referenced by sequence operations. - Add new ClockedDelayOp for explicitly clocked delays with mandatory clock and edge parameters. Syntax: clocked_delay clock, edge, input, delay[, length]. - Simplify DelayOp to be purely unclocked (remove implicit clock support). - Add ClockedDelayOp to LTL Visitor TypeSwitch for downstream consumers. - Update DelayOp documentation to clarify unclocked semantics.
206be23 to
8495815
Compare
|
@uenoku cc |
- Add SameClockAndEdge constraint for matching clocked delay pairs. - Add NestedClockedDelays pattern: merge nested clocked delays with same clock/edge into a single delay. - Add MoveClockedDelayIntoConcat pattern for canonicalization. - Add MergeNestedClockedDelays C++ canonicalization pattern. - Use shared foldDelayLike<> template for both DelayOp and ClockedDelayOp.
- Document ClockedDelayOp syntax, semantics, and examples in LTL.md. - Update DelayOp docs to clarify purely unclocked semantics. - Add ClockedDelayOp roundtrip tests to basic.mlir. - Update canonicalization.mlir for ClockedDelayOp fold patterns.
|
@fabianschuiki cc pls 👀 |
|
I'm curious as to why this is totally necessary, won't this create semantic issues when paired with assert-property style things (so lowerings that yield |
The initial issue came from #8673, and its main purpose was to ensure that IR (In-Relational Analysis) had clear semantic relationships when analyzing clocks.
Good question. The current In the follow-up PR (PR2: InferLTLClocks),
That said, you're right that |
|
Hi @uenoku @dobios @fabianschuiki, just wanted to gently bump this. I've updated the PR based on the feedback from last week. I know everyone is busy, but could you let me know if these changes look correct or if there's anything else needed before we move forward with the next steps in this new direction? Thanks! |
This PR is the first step of the explicit-delay stack.
Create a new operation of
ltl.clocked_delayExample:
This pr is participated with @Claude-opus-4.6 and reviewed by myself