[PATCH] D61020: [ARM][ParallelDSP] Relax alias checks
Sam Parker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri May 3 02:16:01 PDT 2019
samparker marked 2 inline comments as done.
samparker added inline comments.
================
Comment at: lib/Target/ARM/ARMParallelDSP.cpp:385
+ // dominating Load.
+ auto CheckRAWDeps = [&](LoadInst *Base, LoadInst *Offset) {
+ if (CheckMemDeps(Base, Offset, RawDeps))
----------------
SjoerdMeijer wrote:
> Can you elaborate on what this function is doing? My first reaction would be, given that we are looking at 2 loads, how come are we looking for RAW dependencies? Perhaps the function name is a bit misleading?
Yeah, it is... even looking at it myself I'm getting confused - not a great sign! First we check is the dependency sets are the same, which means there's no write between the loads. The next checks allow the sets not to be equal as long as the dominating load is the only one with RAW dependency. This means we can safely schedule the write and then the combined base + offset pair.
================
Comment at: lib/Target/ARM/ARMParallelDSP.cpp:398
+ // WAR dependence.
+ auto CheckWARDeps = [&](LoadInst *Base, LoadInst *Offset) {
+ if (CheckMemDeps(Base, Offset, WarDeps))
----------------
SjoerdMeijer wrote:
> Functions CheckRAWDeps and CheckWARDeps are the same, just the order of Base and Offset are different, and whether WarDeps or RawDeps are queried, but this could be passed in as an argument.
I will have a look into changing these.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D61020/new/
https://reviews.llvm.org/D61020
More information about the llvm-commits
mailing list