[PATCH] D70483: AArch64: add FastISel support for arm64_32

Gerolf Hoflehner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 12 22:25:37 PST 2019


Gerolf added reviewers: aemerson, paquette, thegameg.
Gerolf added a comment.

A question and a nit to get it started.

+ Amara, Jessica, Francis.



================
Comment at: llvm/lib/Target/AArch64/AArch64FastISel.cpp:1206
 
+  bool IsILP32Pointer =
+      Subtarget->isTargetILP32() && RHS->getType()->isPointerTy();
----------------
Should that check be before the canonicalizations above?


================
Comment at: llvm/lib/Target/AArch64/AArch64FastISel.cpp:2133
+  unsigned SubReg = 0;
+  if (VT == MVT::i32 && TRI.getRegSizeInBits(SrcReg, MRI) == 64) {
+    assert(VT == MVT::i32 && TRI.getRegSizeInBits(SrcReg, MRI) == 64 &&
----------------
if (Subtarget->isTargetILP32() && ....), then delete the assert. Maybe create a function/lambda? See below.


================
Comment at: llvm/lib/Target/AArch64/AArch64FastISel.cpp:2210
+  unsigned SubReg = 0;
+  if (VT == MVT::i32 && TRI.getRegSizeInBits(SrcReg, MRI) == 64) {
+    MRI.constrainRegClass(SrcReg, &AArch64::GPR64RegClass);
----------------
only if subtarget is ilp32 ...


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D70483





More information about the llvm-commits mailing list