[PATCH] D27195: [ARM] GlobalISel: Lower more than 4 arguments

Tim Northover via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 30 09:59:13 PST 2016


t.p.northover added inline comments.


================
Comment at: lib/Target/ARM/ARMCallLowering.cpp:51
+  void assignValueToReg(unsigned ValVReg, unsigned PhysReg,
+                        CCValAssign &VA) override {
+    assert(VA.isRegLoc() && "Value shouldn't be assigned to reg");
----------------
This is silently ignoring the signext/zeroext modifiers that are needed to correctly handle small types on AAPCS. It'd probably be better to fallback or assert if they're not being supported yet.


================
Comment at: lib/Target/ARM/ARMInstructionSelector.cpp:84-86
+  using namespace TargetOpcode;
+  switch (I.getOpcode()) {
+  case G_ADD:
----------------
Is this selection stuff intentionally in the same patch? Seems like it's an orthogonal issue.


https://reviews.llvm.org/D27195





More information about the llvm-commits mailing list