[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