IMHO, you suggested we might require an `fence` instructions to block the execution flow until data has been fully flushed back to DRAM. Therefore, I'm not quite sure do we really need `prologue`?
If what we really need is just `epilogue` pragma, I think `barrier` might be a better name for it. A typical implement of the `barrier` looks like ```c static void __attribute__((noinline)) barrier(int ncores) { static volatile int sense; static volatile int count; static __thread int threadsense; __sync_synchronize(); threadsense = !threadsense; if (__sync_fetch_and_add(&count, 1) == ncores-1) { count = 0; sense = threadsense; } else while(sense != threadsense) ; __sync_synchronize(); } ``` , which can be found at https://github.com/riscv/riscv-tests/blob/master/benchmarks/common/util.h#L44 . --- [Visit Topic](https://discuss.tvm.ai/t/add-support-for-extern-prologue-epilogue-functions/6041/8) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.ai/email/unsubscribe/eb43edb7e8afa9b4693aeed95342d44a1ddfd403c43854651eaceab4f711086b).