tkonolige commented on a change in pull request #8641:
URL: https://github.com/apache/tvm/pull/8641#discussion_r682975553
##########
File path: src/tir/transforms/compact_buffer_region.cc
##########
@@ -452,11 +452,17 @@ class BufferCompactor : public StmtExprMutator {
};
PrimFunc CompactBufferAllocation(PrimFunc f) {
- PrimFuncNode* fptr = f.CopyOnWrite();
- std::unordered_map<Buffer, Region, ObjectPtrHash, ObjectPtrEqual> region =
- BufferAccessRegionCollector::Collect(f);
- fptr->body = BufferCompactor::Compact(f, region);
- return f;
+ // Only apply this pass to TIR that is not from TE schedules
+ Optional<Bool> from_legacy_te_schedule =
f->GetAttr("from_legacy_te_schedule", Bool(false));
+ if (!from_legacy_te_schedule.value()) {
+ PrimFuncNode* fptr = f.CopyOnWrite();
+ std::unordered_map<Buffer, Region, ObjectPtrHash, ObjectPtrEqual> region =
+ BufferAccessRegionCollector::Collect(f);
+ fptr->body = BufferCompactor::Compact(f, region);
+ return f;
+ } else {
+ return f;
+ }
Review comment:
Not sure what you mean @MasterJH5574.
I've implemented this suggestion.
##########
File path: src/driver/driver_api.cc
##########
@@ -288,6 +288,10 @@ IRModule ScheduleToModule(te::Schedule sch, const
Array<ObjectRef>& args, const
tir::PrimFunc f = te::SchedulePostProcToPrimFunc(out_arg_list,
std::move(stmt), out_binds);
f = WithAttr(std::move(f), "global_symbol", runtime::String(name));
+ // Mark this schedule as being converted from an TE schedule. Makes sure that
+ // the correct TE passes are run.
+ f = WithAttr(std::move(f), "from_legacy_te_schedule", Bool(true));
Review comment:
Whoops, I forgot the most important part of this change. I've removed
the is_te_schedule from CreatePassList.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]