diff options
author | Chad Rosier <mcrosier@apple.com> | 2011-11-18 01:17:34 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2011-11-18 01:17:34 +0000 |
commit | 424fe0e422826f4962b58428b6aef48e1a66c30a (patch) | |
tree | 370e0e2691e2c48a3e41f7140b080f6d6f008170 /lib/Target/ARM/ARMFastISel.cpp | |
parent | ce35d8b5a1071bb8ccf70bf8be3952dd0c4f2f15 (diff) | |
download | llvm-424fe0e422826f4962b58428b6aef48e1a66c30a.tar.gz llvm-424fe0e422826f4962b58428b6aef48e1a66c30a.tar.bz2 llvm-424fe0e422826f4962b58428b6aef48e1a66c30a.tar.xz |
Guard call to getRegForValue with isTypeLegal check to avoid unnecessary work/dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144959 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMFastISel.cpp')
-rw-r--r-- | lib/Target/ARM/ARMFastISel.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Target/ARM/ARMFastISel.cpp b/lib/Target/ARM/ARMFastISel.cpp index 024cf278e7..9bae422273 100644 --- a/lib/Target/ARM/ARMFastISel.cpp +++ b/lib/Target/ARM/ARMFastISel.cpp @@ -2108,9 +2108,6 @@ bool ARMFastISel::SelectCall(const Instruction *I, if (IntrMemName && e-i <= 2) break; - unsigned Arg = getRegForValue(*i); - if (Arg == 0) - return false; ISD::ArgFlagsTy Flags; unsigned AttrInd = i - CS.arg_begin() + 1; if (CS.paramHasAttr(AttrInd, Attribute::SExt)) @@ -2130,6 +2127,11 @@ bool ARMFastISel::SelectCall(const Instruction *I, if (!isTypeLegal(ArgTy, ArgVT) && ArgVT != MVT::i16 && ArgVT != MVT::i8 && ArgVT != MVT::i1) return false; + + unsigned Arg = getRegForValue(*i); + if (Arg == 0) + return false; + unsigned OriginalAlignment = TD.getABITypeAlignment(ArgTy); Flags.setOrigAlign(OriginalAlignment); |