[PATCH] D70072: [ARM] Improve codegen of volatile load/store of i64

Victor Campos via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 19 05:17:42 PST 2019


vhscampos marked an inline comment as done.
vhscampos added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:9228
   case ISD::STORE:
-    return LowerPredicateStore(Op, DAG);
+    return LowerSTORE(Op, DAG, Subtarget);
   case ISD::MLOAD:
----------------
dmgreen wrote:
> How come this is altered, but not the LowerPredicateLoad?
The custom lowering of loads and stores here is triggered by the DAG Type Legalizer, since i64 is not supported.

In DAGTypeLegalizer::CustomLowerNode(), custom lowering of loads is directed to ARMTargetLowering::ReplaceNodeResults(), which then calls LowerLOAD(), created in the present patch. The lowering of stores is the one that is directed to ARMTargetLowering::LowerOperation().

In summary, the custom lowering of loads because of illegal result types does not go through here, so I believe there's no need to have it changed in this point.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D70072





More information about the llvm-commits mailing list