With this patch we track aligned barriers in AAExecutionDomain and also
delete unnecessary barriers there. This allows us to eliminate barriers
across blocks, across functions, and in the presence of complex accesses
that do not force a barrier. Further, we can use the collected
information to enable store-load forwarding in a threaded environment
(follow up patch).
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/include/llvm/Transforms/IPO/Attributor.h | ||
---|---|---|
3335 | ||
5008–5011 | No need for the two functions. | |
5041 | It is not necessary to make it a pointer, same as AlignedBarriers. | |
llvm/lib/Transforms/IPO/OpenMPOpt.cpp | ||
2533 | The whole function can be avoided if they are not pointer. Wasting tiny piece of memory (if they are empty) is not a big deal. | |
2589 | And this could be !ED.AlignedBarriers.empty() |
I know this is unrelated, but probably a good chance to fix that typo