[PATCH] D93054: [ARM] Add bank conflict hazarding

Sjoerd Meijer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 14 03:39:29 PST 2020


SjoerdMeijer added a comment.

Perhaps some tests are missing: one inlined suggestion is related to AssumeITCMBankConflict, and I was wondering about other cases like Size > 4 and SP relative access?



================
Comment at: llvm/lib/Target/ARM/ARMHazardRecognizer.cpp:164
+ARMBankConflictHazardRecognizer::ARMBankConflictHazardRecognizer(
+    const ScheduleDAG *DAG, int64_t DDN, bool ABC)
+    : ScheduleHazardRecognizer(), MF(DAG->MF), DL(DAG->MF.getDataLayout()),
----------------
Nit: I would prefer a different name than `ABC`, probably same for DDN.


================
Comment at: llvm/lib/Target/ARM/ARMHazardRecognizer.cpp:184
+  auto MO0 = *L0.memoperands().begin();
+  uint64_t Size0 = MO0->getSize();
+  auto BaseVal0 = MO0->getValue();
----------------
nit: we can just do:

  if (MO0->getSize() > 4)
    return NoHazard;

to exit early/earlier, also because we don't seem to use `Size0`.


================
Comment at: llvm/lib/Target/ARM/ARMHazardRecognizer.cpp:225
+        BasePseudoVal0->kind() == BasePseudoVal1->kind() &&
+        BasePseudoVal0->isConstantPool() && AssumeITCMBankConflict)
+      return Hazard;
----------------
Option `AssumeITCMBankConflict` defaults to false. Do have/need a test with this enabled?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D93054/new/

https://reviews.llvm.org/D93054



More information about the llvm-commits mailing list