These make sense, and agreed that the TIR->global feedback is important for 
enabling the layout reflow.  Going back through the discussion, I think we're 
converging on agreement on what features are required, and the main question 
remaining are how to best provide annotation for non-local information, and how 
best to express layout transformations while scheduling.

I've made some updates to the text of the RFC, based on the discussions here, 
primarily to remove the proposed changes to TIR data structures.  This follows 
your comment from a few days ago, which brought up `__builtin_assume` as a 
comparison.

* Adding an intrinsic `tir::builtin::assume`, which corresponds to the 
`__builtin_assume` LLVM intrinsic.  The emphasis is that these assumptions are 
primarily to expose non-local information for use in local simplifications.
* Removing `BufferConstraint` entirely.  The RFC no longer proposes any changes 
to TIR data structures, only the `assume` and `undef` intrinsics.
* Describing what assumptions can/should be placed into a PrimFunc when 
hoisting stages out into independent PrimFuncs, and what transformations are 
legal based on the choice of exposed assumptions.
* Captured some of the discussion here about the dangers of altering a 
PrimFunc's interface, and the limited cases where it may be altered.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/apache/tvm-rfcs/pull/77#issuecomment-1169188372
You are receiving this because you are subscribed to this thread.

Message ID: <apache/tvm-rfcs/pull/77/c1169188...@github.com>

Reply via email to