History log of /external/llvm/lib/Target/ARM/ARMFastISel.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e757640df0615510dbc42921cf6271aa76c405ee 06-Sep-2012 Nadav Rotem <nrotem@apple.com> Fix a few old-GCC warnings. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c4dc2490c4ea2c75e451eec5950179f06d2610a2 29-Aug-2012 Jush Lu <jush.msn@gmail.com> [arm-fast-isel] Add support for ARM PIC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
0745b649ed5c362f1c2f7db59254a76041ddef05 24-Aug-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix call instruction operands in ARMFastISel.

The ARM BL and BLX instructions don't have predicate operands, but the
thumb variants tBL and tBLX do.

The argument registers should be added as implicit uses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
35fc62bf70074349d74357900dd65f08384970c5 18-Aug-2012 Craig Topper <craig.topper@gmail.com> Remove virtual from many methods. These methods replace methods in the base class, but the base class methods aren't virtual so it just increased call overhead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162178 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2ff4e9d5afa2074b91940a601fba0a0c154f6a83 16-Aug-2012 Jush Lu <jush.msn@gmail.com> [arm-fast-isel] Add support for fastcc.

Without fastcc support, the caller just falls through to CallingConv::C
for fastcc, but callee still uses fastcc, this inconsistency of calling
convention is a problem, and fastcc support can fix it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
d49edb7ab098fa0c82f59efbcf1b4eb2958f8dc3 03-Aug-2012 Bob Wilson <bob.wilson@apple.com> Fall back to selection DAG isel for calls to builtin functions.

Fast isel doesn't currently have support for translating builtin function
calls to target instructions. For embedded environments where the library
functions are not available, this is a matter of correctness and not
just optimization. Most of this patch is just arranging to make the
TargetLibraryInfo available in fast isel. <rdar://problem/12008746>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2946549a2817681f9117662139cc0f2241939965 03-Aug-2012 Jush Lu <jush.msn@gmail.com> [arm-fast-isel] Add support for shl, lshr, and ashr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
e94ac8871a1ac79bece57335d2abece0feed9c02 03-Aug-2012 Eric Christopher <echristo@apple.com> Add support for the ARM GHC calling convention, this patch was in 3.0,
but somehow managed to be dropped later.

Patch by Karel Gardas.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ee649839a243bb29b59b322203b982b2f132e7c5 19-Jul-2012 Jush Lu <jush.msn@gmail.com> [arm-fast-isel] Add support for vararg function calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
bd985efa99b7540e664b7fc2d636348c23f63d75 06-Jul-2012 NAKAMURA Takumi <geek4civic@gmail.com> Revert r159804, "[arm-fast-isel] Add support for vararg function calls."

It broke LLVM :: CodeGen/Thumb2/large-call.ll on several hosts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a8c4d739f2e763ae6dea7661a3af8393eeebd8ba 06-Jul-2012 Jush Lu <jush.msn@gmail.com> [arm-fast-isel] Add support for vararg function calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
efc967e04459753a588ebf5820e526d790fe1cfa 14-Jun-2012 Jush Lu <jush.msn@gmail.com> Cleanup whitespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
49d6fc02efc45932e4d889fa56bbbfeefafbdc85 12-Jun-2012 Chad Rosier <mcrosier@apple.com> [arm-fast-isel] Add support for -arm-long-calls.
Patch by Jush Lu <jush.msn@gmail.com>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ad5c8808923ed5b24b586cec544e45cee539e529 11-Jun-2012 Bill Wendling <isanbard@gmail.com> Re-enable the CMN instruction.

We turned off the CMN instruction because it had semantics which we weren't
getting correct. If we are comparing with an immediate, then it's okay to use
the CMN instruction.
<rdar://problem/7569620>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158302 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
bbff4ee92d91de4c7ee6657a1eea95c5ed8105de 01-Jun-2012 Chad Rosier <mcrosier@apple.com> [arm-fast-isel] Fix handling of the frameaddress intrinsic. If depth is 0
then DestReg is undefined.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ada759d5fa8a3ecc0e97d88761badfba9193587f 30-May-2012 Chad Rosier <mcrosier@apple.com> [arm-fast-isel] Add support for the llvm.frameaddress() intrinsic.
Patch by Jush Lu <jush.msn@gmail.com>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
1c8fccbc12e6348c8003aff9b89078324257fc4e 23-May-2012 Chad Rosier <mcrosier@apple.com> [arm-fast-isel] Add support for non-global callee.
Patch by Jush Lu <jush.msn@gmail.com>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
226ddf5278dd9a9d2d74d859d387bf5b6bac1926 11-May-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Add support for selecting @llvm.trap().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2b3b335f2d2886bbffa005998972de689a9f3e21 11-May-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Remove -disable-arm-fast-isel option. -fast-isel=0 suffices. Minor cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2a2e9d54e95f01eaa5626dcdf57950e9e6f95f2c 11-May-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Cleaner fix for when we're unable to handle a non-double multi-reg
retval. Hoists check before emitting the call to avoid unnecessary work.
rdar://11430407
PR12796


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2f6ae41f14af87d1019d771b101580381cdfc44f 11-May-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Rather then assert (or segfault in a non-asserts build), fall back
to selection DAG isel if we're unable to handle a non-double multi-reg retval.
rdar://11430407
PR12796


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
f4bd21c256f6aabdc13f54ff7bf5d69e8305302c 11-May-2012 Chad Rosier <mcrosier@apple.com> The return type is an unsigned, not a bool.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
420761a0f193e87d08ee1c51b26bba23ab4bac7f 20-Apr-2012 Craig Topper <craig.topper@gmail.com> Convert more uses of XXXRegisterClass to &XXXRegClass. No functional change since they are equivalent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155188 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
d4f020a3af325630973df8d3a084d0b0e3b68ebc 07-Apr-2012 Jim Grosbach <grosbach@apple.com> Tidy up. 80 columns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
f16936e5923156863906c915de657b134db4fb16 06-Apr-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Deduplicate ARM call-related instructions.

We had special instructions for iOS because r9 is call-clobbered, but
that is represented dynamically by the register mask operands now, so
there is no need for the pseudo-instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c89c744b69cecac576317a98322fd295e36e9886 27-Mar-2012 Craig Topper <craig.topper@gmail.com> Remove unnecessary llvm:: qualifications

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
0e5233a9e5ee9385c6a940e3985194d77bee0bbb 26-Mar-2012 Craig Topper <craig.topper@gmail.com> Prune includes and replace uses of ARMRegisterInfo.h with ARMBaeRegisterInfo.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5aeff3171c173dec9a6e6f89e428a0a78698c43e 17-Mar-2012 Bill Wendling <isanbard@gmail.com> Check if we can handle the arguments of a call (and therefore the call) in
fast-isel before emitting code. If the program bails after code was emitted,
then it could lead to the stack being adjusted more than once (two
CALLSEQ_BEGINs emitted) but being adjuste back only once after the call. This
leads to general badness and gnashing of teeth.
<rdar://problem/11050630>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
0ac754f6f43a0e5a56f712aebb663581ae512e4c 15-Mar-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Address Eli's comments for r152847. Specifically, add a test case
and still allow immediate encoding, just not with cmn.
rdar://11038907


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
530b19b70212f02cffa971256501e77284c320a0 15-Mar-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Don't try to encode LONG_MIN using cmn instructions.
rdar://11038907


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
44c98b71148d11368c18ffb9c14e8a28a76a8021 07-Mar-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] ARMEmitCmp generates FMSTAT, which transfers the floating-point
condition flags to CPSR. This allows us to simplify SelectCmp.
Patch by Zonr Chang <zonr.xchg@gmail.com>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4f92b5e6163b16d63eb63269c2aec670b55ea19a 06-Mar-2012 Lang Hames <lhames@gmail.com> Split fpscr into two registers: FPSCR and FPSCR_NZCV.

The fpscr register contains both flags (set by FP operations/comparisons) and
control bits. The control bits (FPSCR) should be reserved, since they're always
available and needn't be defined before use. The flag bits (FPSCR_NZCV) should
like to be unreserved so they can be hoisted by MachineCSE. This fixes PR12165.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
e751c0069aee16e85156d6539f4b724f71c341c6 01-Mar-2012 Jim Grosbach <grosbach@apple.com> ARM use the right opcode for FP<->Integer move in fast-isel.

rdar://10965031

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c54f6348861517398f17e85f41b30c4dd079fc3d 24-Feb-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Switch ARM target to register masks.

I'll let the buildbots determine the compile time improvements from this
change, but 464.h264ref has 5% faster codegen at -O2.

This patch does cause some assembly changes. Branch folding can make
different decisions about calls with dead return values.
CriticalAntiDepBreaker may choose different registers because its
liveness tracking is affected. MachineCopyPropagation may sometimes
leave a dead copy behind.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
44d23825d61d530b8d562329ec8fc2d4f843bb8d 22-Feb-2012 Craig Topper <craig.topper@gmail.com> Make all pointers to TargetRegisterClass const since they are all pointers to static data that should not be modified.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
b8703fe265d44a3eb909c289cb5d31b840ca893c 17-Feb-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Add support for returning non-legal types with no sign- or zero-
entend flag.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a69feb0f33788b13aa4c25736e50afc6f2b4ce44 16-Feb-2012 Chad Rosier <mcrosier@apple.com> Remove unnecessary assignment to temporary, ResultReg.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
40d552e0be0ba66a3d8e31bf797f1acba4c91b17 15-Feb-2012 Chad Rosier <mcrosier@apple.com> Add braces to if clause to make symmetric with associate else clause.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
92fd01736484262fef049b7358366d8eab2f857e 15-Feb-2012 Chad Rosier <mcrosier@apple.com> Use a temporary variable, rather then a series of redundant calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5793a6586d94a5032a815af97113c3ba47cbdf8a 14-Feb-2012 Chad Rosier <mcrosier@apple.com> Remove unnecessary assignment to temporary, ResultReg.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
743e19983effd486c1911f5b797aea7133ea154c 08-Feb-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Add support for SUBs with non-legal types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
6fde8756215a725578b6afe678757f60d7f55d06 08-Feb-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Add support for ORs with non-legal types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
60c8fa6bb9db791acf6846fe250c184e3f1df168 08-Feb-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Add support for indirect branches.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
bc2198133a1836598b54b943420748e75d5dea94 07-Feb-2012 Craig Topper <craig.topper@gmail.com> Convert assert(0) to llvm_unreachable

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
3901c3e75009f2ec7b4e67c354170dadab9e5a02 07-Feb-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Add support for ADDs with non-legal types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5b8a1db7ea6510a2589f710d50754599da742de9 05-Feb-2012 Duncan Sands <baldrick@free.fr> Persuade GCC that there is nothing worth warning about here (there isn't).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
769422f0fce4def419c8cdb72ee967437ffd2f4f 03-Feb-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Add support for URem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ae46a3362d6c7fd2d4b1bf3b40982d289d7418fb 03-Feb-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Rename isZExt to isSigned. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
7ccb30b5964675a70559ec25a6bff32f7dea1025 03-Feb-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Add support for UDIV.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ee8901c08fb27e98078326706a49dba70e1768a3 03-Feb-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Add support for FPToUI. Also add test cases for FPToSI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
36b7beb42921c428fc9f5b5a9cc9feb7fe7dd4b3 03-Feb-2012 Chad Rosier <mcrosier@apple.com> [fast-isel] Add support for selecting UIToFP.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4d6ccb5f68cd7c6418a209f1fa4dbade569e4493 20-Jan-2012 David Blaikie <dblaikie@gmail.com> More dead code removal (using -Wunreachable-code)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
fae699a580380b910740e1cb17ab950ba91ce4a1 11-Jan-2012 Eric Christopher <echristo@apple.com> Fix assert.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147966 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
8f37a2422ea948b71d0992ab3f82dab07a54ce52 07-Jan-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Match SelectionDAG logic for enabling movt.

Darwin doesn't do static, and ELF targets only support static.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4964ba01f96d5b3a8fb27a7847c01666ee9b4ebd 07-Jan-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Use getRegForValue() to materialize the address of ARM globals.

This enables basic local CSE, giving us 20% smaller code for
consumer-typeset in -O0 builds.

<rdar://problem/10658692>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
45ca7c6336f174fae3a9521d5161a498ca27fd13 07-Jan-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Use movw+movt in ARMFastISel::ARMMaterializeGV.

This eliminates a lot of constant pool entries for -O0 builds of code
with many global variable accesses.

This speeds up -O0 codegen of consumer-typeset by 2x because the
constant island pass no longer has to look at thousands of constant pool
entries.

<rdar://problem/10629774>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
afff941211526a31f931aa9fcac84ae42ff60ef0 20-Dec-2011 Evan Cheng <evan.cheng@apple.com> ARM target code clean up. Check for iOS, not Darwin where it makes sense.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
6762f8f302f5c01a26e848cdcac20bddde0dd22c 14-Dec-2011 Chad Rosier <mcrosier@apple.com> VFP2 is required for FP loads. Noticed by inspection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
64ac91b4b6e62f82d608fe9602b28c00171f88a0 14-Dec-2011 Chad Rosier <mcrosier@apple.com> Tidy up.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
404ed3c2239ff394270053bdcb76a5a4908af7ce 14-Dec-2011 Chad Rosier <mcrosier@apple.com> Fix 80-column violation and extraneous brackets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ddfd1377d2e4154d44dc3ad217735adc15af2e3f 14-Dec-2011 Evan Cheng <evan.cheng@apple.com> - Add MachineInstrBundle.h and MachineInstrBundle.cpp. This includes a function
to finalize MI bundles (i.e. add BUNDLE instruction and computing register def
and use lists of the BUNDLE instruction) and a pass to unpack bundles.
- Teach more of MachineBasic and MachineInstr methods to be bundle aware.
- Switch Thumb2 IT block to MI bundles and delete the hazard recognizer hack to
prevent IT blocks from being broken apart.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
8a9bce978fa4ca60d3a0ba42a1d44c41463a3c33 13-Dec-2011 Chad Rosier <mcrosier@apple.com> [fast-isel] Unaligned loads of floats are not supported. Therefore, convert to a regular
load and then move the result from a GPR to a FPR.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5a96b3dad2f634c9081c8b2b6c2575441dc5a2bd 07-Dec-2011 Evan Cheng <evan.cheng@apple.com> Add bundle aware API for querying instruction properties and switch the code
generator to it. For non-bundle instructions, these behave exactly the same
as the MC layer API.

For properties like mayLoad / mayStore, look into the bundle and if any of the
bundled instructions has the property it would return true.
For properties like isPredicable, only return true if *all* of the bundled
instructions have the property.
For properties like canFoldAsLoad, isCompare, conservatively return false for
bundles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ed42c5f778dd0128429e4feffe2c028b2352b534 06-Dec-2011 Chad Rosier <mcrosier@apple.com> [arm-fast-isel] Doublewords only require word-alignment.
rdar://10528060

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
6ce2deacefa5fd2565983d513d07a06d6a8af602 04-Dec-2011 Bob Wilson <bob.wilson@apple.com> Fix 80-column issues.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
9eff1e33f616ad2d0134740ac4595ed2e79e3d74 03-Dec-2011 Chad Rosier <mcrosier@apple.com> [arm-fast-isel] Unaligned stores of floats require special care.
rdar://10510150

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
8a8d479214745c82ef00f08d4e4f1c173b5f9ce2 02-Dec-2011 Nick Lewycky <nicholas@mxc.ca> Move global variables in TargetMachine into new TargetOptions class. As an API
change, now you need a TargetOptions object to create a TargetMachine. Clang
patch to follow.

One small functionality change in PTX. PTX had commented out the machine
verifier parts in their copy of printAndVerify. That now calls the version in
LLVMTargetMachine. Users of PTX who need verification disabled should rely on
not passing the command-line flag to enable it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
b74c865841481074539bdf4de35024939854f2e6 02-Dec-2011 Chad Rosier <mcrosier@apple.com> [arm-fast-isel] After promoting a function parameter be sure to update the
argument value type. Otherwise, the sign/zero-extend has no effect on arguments
passed via the stack (i.e., undefined high-order bits).
rdar://10515467

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4c0c5451c78423bcc08e23f230e912e35d11dc4d 28-Nov-2011 Duncan Sands <baldrick@free.fr> Silence wrong warnings from GCC about variables possibly being used
uninitialized: GCC doesn't understand that the variables are only used
if !UseImm, in which case they have been initialized.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
424fe0e422826f4962b58428b6aef48e1a66c30a 18-Nov-2011 Chad Rosier <mcrosier@apple.com> 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
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
944d82ba06bcb6bf92ca1fbcbdf1a882cd009363 17-Nov-2011 Chad Rosier <mcrosier@apple.com> Add TODO comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2fb82ce75d193d5287d32bb3225b8008d8a133fa 17-Nov-2011 Chad Rosier <mcrosier@apple.com> Dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
3bdb3c9b511b89d38696587d61b82949e06a7729 17-Nov-2011 Chad Rosier <mcrosier@apple.com> Don't unconditionally set the kill flag.
rdar://10456186


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
508a1f4db16baea5c0d5b1c4797d005dff1ee30f 16-Nov-2011 Chad Rosier <mcrosier@apple.com> Check to make sure we can select the instruction before trying to put the
operands into a register. Otherwise, we may materialize dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
f56c60b5713c57a3f9223d4ed3d9c88088132fad 16-Nov-2011 Chad Rosier <mcrosier@apple.com> Add FIXME comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
d9190c0f148b218ab046deadd0c7ae475414cde5 15-Nov-2011 Jay Foad <jay.foad@gmail.com> Remove some unnecessary includes of PseudoSourceValue.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2c42b8c912b62071c27454182cdef60e3b584083 15-Nov-2011 Chad Rosier <mcrosier@apple.com> Supporting inline memmove isn't going to be worthwhile. The only way to avoid
violating a dependency is to emit all loads prior to stores. This would likely
cause a great deal of spillage offsetting any potential gains.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
909cb4f2f2d227ea01852cb318c80a79c46bc9bf 14-Nov-2011 Chad Rosier <mcrosier@apple.com> Add support for inlining small memcpys.
rdar://10412592


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
e489af8dce12249be26ac0c8e371557378886bc2 14-Nov-2011 Chad Rosier <mcrosier@apple.com> Fix a performance regression from r144565. Positive offsets were being lowered
into registers, rather then encoded directly in the load/store.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
57b299796685033c87a5414e179b95b5ae7dc8d4 14-Nov-2011 Chad Rosier <mcrosier@apple.com> Add support for Thumb load/stores with negative offsets.
rdar://10412592



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
dc9205d9c29171f1ddcf2de7eb172a583cadbe63 14-Nov-2011 Chad Rosier <mcrosier@apple.com> Add support for ARM halfword load/stores and signed byte loads with negative
offsets.
rdar://10412592



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
9eb674880b98cbeca0cd5b3f0265b77282d48b4a 13-Nov-2011 Chad Rosier <mcrosier@apple.com> The order in which the predicate is added differs between Thumb and ARM mode. Fix predicate when in ARM mode and restore SelectIntrinsicCall.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a517ab155b371e2911450d0048fb158931b8e68c 13-Nov-2011 Chad Rosier <mcrosier@apple.com> Temporarily disable SelectIntrinsicCall when in ARM mode. This is causing failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5be833de769608254fdfc56e8173000e874a8154 13-Nov-2011 Chad Rosier <mcrosier@apple.com> Fix comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
b29b950bf227b65e193abf924f77ef3fa4eceaae 13-Nov-2011 Chad Rosier <mcrosier@apple.com> Add support for emitting both signed- and zero-extend loads. Fix
SimplifyAddress to handle either a 12-bit unsigned offset or the ARM +/-imm8
offsets (addressing mode 3). This enables a load followed by an integer
extend to be folded into a single load.

For example:
ldrb r1, [r0] ldrb r1, [r0]
uxtb r2, r1 =>
mov r3, r2 mov r3, r1


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
11add26ec2bdf5109f0ff2ee19d237664687b914 12-Nov-2011 Chad Rosier <mcrosier@apple.com> Add support in fast-isel for selecting memset/memcpy/memmove intrinsics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
1c47de87c74c3834c5cfab8a7e0fa67b1805f927 11-Nov-2011 Chad Rosier <mcrosier@apple.com> Rename variables to avoid confusion. No functionallity change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a07d3fc693e2a3ac7c9ed2a59f62b21ab33d9fd4 11-Nov-2011 Chad Rosier <mcrosier@apple.com> Add support for using immediates with select instructions.
rdar://10412592


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
646abbfa30f881b5183b62e77a185fc48d9d82bd 11-Nov-2011 Chad Rosier <mcrosier@apple.com> When loading a value, treat an i1 as an i8.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4e89d97e3a40dcbbf07648512f0e95133867a74f 11-Nov-2011 Chad Rosier <mcrosier@apple.com> Add support for using MVN to materialize negative constants.
rdar://10412592

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
16455ce1a4063348209e94f52afde653ded5eeb5 10-Nov-2011 Chad Rosier <mcrosier@apple.com> When in ARM mode, LDRH/STRH require special handling of negative offsets.
For correctness, disable this for now.
rdar://10418009

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
6cba97c5557ac51d8ae09b9f5cbad6891124db4d 10-Nov-2011 Chad Rosier <mcrosier@apple.com> For immediate encodings of icmp, zero or sign extend first. Then
determine if the value is negative and flip the sign accordingly.
rdar://10422026

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
7346347674f03868e8c076c8c27a7f09f0a086c2 09-Nov-2011 Chad Rosier <mcrosier@apple.com> The ARM LDRH/STRH instructions use a +/-imm8 encoding, not an imm12.
rdar://10418009

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2f2fe417f98406140504ba3bbb65676d4a00ed87 09-Nov-2011 Chad Rosier <mcrosier@apple.com> Add support for encoding immediates in icmp and fcmp. Hopefully, this will
remove a fair number of unnecessary materialized constants.
rdar://10412592


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144163 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
66dc8ca04b719f3ab4aa650609dbd56b055ecb34 08-Nov-2011 Chad Rosier <mcrosier@apple.com> ARMFastISel doesn't support thumb1. Rename isThumb to isThumb2 to reflect this.
No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
0eff39f2e25e9d8dd52b1eb7fa4e7cc6cc77875f 08-Nov-2011 Chad Rosier <mcrosier@apple.com> Enable support for returning i1, i8, and i16. Nothing special todo as it's the
callee's responsibility to sign or zero-extend the return value. The additional
test case just checks to make sure the calls are selected (i.e., -fast-isel-abort
doesn't assert).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
42536af5ce152593f489ca88bd0732218594d536 05-Nov-2011 Chad Rosier <mcrosier@apple.com> Add support for passing i1, i8, and i16 call parameters. Also, be sure to
zero-extend the constant integer encoding. Test case provides testing for
both call parameters and materialization of i1, i8, and i16 types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
451afbc6a22a3a662eea7e86088c65c36e84949f 05-Nov-2011 Chad Rosier <mcrosier@apple.com> Cannot create a result register for non-legal types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a4e07270bccb3cb6774af975300628e072bf03f1 05-Nov-2011 Chad Rosier <mcrosier@apple.com> When materializing an i32, SExt vs ZExt doesn't matter when we're trying to fit
in a 16-bit immediate. However, for the shorter non-legal types (i.e., i1, i8,
i16) we should not sign-extend. This prevents us from materializing things
such as 'true' (i.e., i1 1).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
44e895761f289029657a8d066f67f0c9d18693b3 04-Nov-2011 Chad Rosier <mcrosier@apple.com> Enable support for materializing i1, i8, and i16 integers via move immediate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
8e4a2e4f730e691e116a4b2cee3a2c760a54ac09 04-Nov-2011 Chad Rosier <mcrosier@apple.com> Indentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
f470cbbad204caa85275873004151b92fba24375 04-Nov-2011 Chad Rosier <mcrosier@apple.com> Add fast-isel support for returning i1, i8, and i16.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
463fe24f1dd5132607abb3548a2acb1849e9aa99 03-Nov-2011 Chad Rosier <mcrosier@apple.com> Add support for sign-extending non-legal types in SelectSIToFP().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
e07cd5e40ac06fabfb9d33ea7c79542f138f45ce 02-Nov-2011 Chad Rosier <mcrosier@apple.com> Add support for comparing integer non-legal types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
87633026d65acf8253e953bdcfd20bc351631f61 02-Nov-2011 Chad Rosier <mcrosier@apple.com> Factor out an EmitIntExt function. No functionality change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
0d7b231c9b0acf2ea6bb99f75672751f64c6c6db 02-Nov-2011 Chad Rosier <mcrosier@apple.com> Factor out a SelectTrunc function. No functionality change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
6d64b3adab682aea9c0b4dd665acc5e863ac6d21 27-Oct-2011 Chad Rosier <mcrosier@apple.com> A branch predicated on a constant can just FastEmit an unconditional branch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
8ff2664f2f3f4f5dbd847f94352ffc8b4e1b85e3 27-Oct-2011 Chad Rosier <mcrosier@apple.com> Add a TODO comment. FastISel works by parsing each basic block from the bottom
up. Thus, improving the support for compares is goodness because it increases
the number of terminator instructions we can handle. This creates many more
opportunities for target specific fast-isel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ade620065d1ad591e0f3d39d40cc241f49cf0a99 27-Oct-2011 Chad Rosier <mcrosier@apple.com> Factor a little more code into EmitCmp, which should have been done in the first
place. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
75698f346fc44bdd8803b5dda4071d4b5872d82b 27-Oct-2011 Chad Rosier <mcrosier@apple.com> Use EmitCmp in SelectBranch. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
530f7cefd3082e8aaa74b7d65636f30d0312b6ec 27-Oct-2011 Chad Rosier <mcrosier@apple.com> Factor out an EmitCmp function that can be used by both SelectCmp and
SelectBranch. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
3a7572ff61dbd659121b20791d67469a70e9324d 18-Oct-2011 Chad Rosier <mcrosier@apple.com> Add a few FIXME comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5bb779976a7d8e48408051ec2289fe69206dc072 01-Oct-2011 Bill Wendling <isanbard@gmail.com> Switch over to using ARMConstantPoolConstant for global variables, functions,
and block addresses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4ebbf7b8a8e80532bd2ddf7209e62689c1698a96 30-Sep-2011 Jim Grosbach <grosbach@apple.com> ARM fix encoding of VMOV.f32 and VMOV.f64 immediates.

Encode the immediate into its 8-bit form as part of isel rather than later,
which simplifies things for mapping the encoding bits, allows the removal
of the custom disassembler decoding hook, makes the operand printer trivial,
and prepares things more cleanly for handling these in the asm parser.

rdar://10211428



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
b04546ff5b1a7a03eec1076900c945223bf494cc 13-Sep-2011 Jim Grosbach <grosbach@apple.com> Tidy up a few 80 column violations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4136d23c4805c5403a3521bf03fbfeee75b9216b 03-Sep-2011 Eli Friedman <eli.friedman@gmail.com> Don't fast-isel for atomic load/store; some cases require extra handling missing from fast-isel.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
dd1e7517b5bdda245c907f7e36350ef862be2571 01-Sep-2011 Chad Rosier <mcrosier@apple.com> Fixup for functions that return a bool.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
d04f6a581ce06ef1cd5fe376088347ad0246e07d 23-Aug-2011 Jim Grosbach <grosbach@apple.com> [SU]XT[BH] are only available on ARMv6 and up.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c5a8c861c9f008d777f5da6a77c253fea2bfe2f1 27-Jul-2011 Jim Grosbach <grosbach@apple.com> ARM extend instructions simplification.

Refactor the SXTB, SXTH, SXTB16, UXTB, UXTH, and UXTB16 instructions to not
have an 'r' and an 'r_rot' version, but just a single version with a rotate
that can be zero. Use plain Pat<>'s for the ISel of the non-rotated version.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ee04a6d3a40c3017124e3fd89a0db473a2824498 21-Jul-2011 Evan Cheng <evan.cheng@apple.com> Sink ARMMCExpr and ARMAddressingModes into MC layer. First step to separate ARM MC code from target.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e 18-Jul-2011 Chris Lattner <sabre@nondot.org> land David Blaikie's patch to de-constify Type, with a few tweaks.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
d5b03f252c0db6b49a242abab63d7c5a260fceae 28-Jun-2011 Evan Cheng <evan.cheng@apple.com> Move CallFrameSetupOpcode and CallFrameDestroyOpcode to TargetInstrInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
e837dead3c8dc3445ef6a0e2322179c57e264a13 28-Jun-2011 Evan Cheng <evan.cheng@apple.com> - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and
sink them into MC layer.
- Added MCInstrInfo, which captures the tablegen generated static data. Chang
TargetInstrInfo so it's based off MCInstrInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
471e4224809f51652c71f319532697a879a75a0d 09-Jun-2011 Eric Christopher <echristo@apple.com> Add a parameter to CCState so that it can access the MachineFunction.

No functional change.

Part of PR6965


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
d6412c940ef863d02595f7be094d8cd3afc908a1 03-Jun-2011 Eli Friedman <eli.friedman@gmail.com> Add ARM fast-isel support for materializing the address of a global in cases where the global uses an indirect symbol.

rdar://9431157



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c152aa6c86f87be6f3ca9b6e2d57ee31b9258385 28-May-2011 Cameron Zwarich <zwarich@apple.com> Fix ARM fast isel to correctly flag memory operands to stores. This fixes
-verify-machineinstrs failures on several tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a4d487fc1e2f95f4b47ad472071bfdd484eb3b40 27-May-2011 Eli Friedman <eli.friedman@gmail.com> Fix a silly mistake (which trips over an assertion) in r132099. rdar://9515076



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
76927d7303046058c627691bd45d6bff608f49f4 26-May-2011 Eli Friedman <eli.friedman@gmail.com> Rewrite fast-isel integer cast handling to handle more cases, and to be simpler and more consistent.

The practical effects here are that x86-64 fast-isel can now handle trunc from i8 to i1, and ARM fast-isel can handle many more constructs involving integers narrower than 32 bits (including loads, stores, and many integer casts).

rdar://9437928 .



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
783c66414ae54ddc9879843b4bc878dc66a70478 25-May-2011 Eli Friedman <eli.friedman@gmail.com> Prepare ARMFastISel::SelectSIToFP for getRegForValue returning registers for i8 and i16 values.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
0c720761903394c4dd232b9fe49da7d5fb40172b 17-May-2011 Jim Grosbach <grosbach@apple.com> Kill some dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
52f6c03a450aeed93b97cad9e5373029ebcad5e7 02-May-2011 Eric Christopher <echristo@apple.com> Apparently the check for direct calls is unnecessary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c573e2c7ea646d29162a96a0707f4eb0f77f83bc 30-Apr-2011 Eli Friedman <eli.friedman@gmail.com> Switch to ImmLeaf (which can be used by FastISel) for a few more common ARM/Thumb2 patterns.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
d94bc549fcc34f1d97d27221ce5bbf46df207557 30-Apr-2011 Eric Christopher <echristo@apple.com> Add FastEmitInst_ii for the arm fast isel generator. It doesn't use it, but
if it ever did it needs the def machinery.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
632ae892e6517e27791ac9e51188ca697ccc6515 29-Apr-2011 Eric Christopher <echristo@apple.com> Some cleanup and optimize fallthrough more.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
9ebf57ae132369248c885a90bc3dd5e3cf589247 29-Apr-2011 Eli Friedman <eli.friedman@gmail.com> Re-committing r130454, which does not in fact break anything.

Fix a rather obscure crash caused by ARM fast-isel generating code which redefines a register.
rdar://problem/9338332 .



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
bcf26aee86b1ab15b3e1442483eaa7be9fa00a82 29-Apr-2011 Eric Christopher <echristo@apple.com> Add trunc->branch support, this won't help with clang's i8->i1 truncations
for bools, but is a start.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
6344a5f1464dade7735ac440d7a3d24bf009f298 29-Apr-2011 Eric Christopher <echristo@apple.com> Update comments and checks to match reality.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
299bbb23a421fce79c63e9f879ff3baef18c2f90 29-Apr-2011 Eric Christopher <echristo@apple.com> Whitespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
6e6014cfb3e4dea3b0bd59bcc49ba8cd8dfcfa96 29-Apr-2011 Eli Friedman <eli.friedman@gmail.com> Revert r130454; apparently this doesn't actually work.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2f7fcd71982678879803b96574526f0a22b3918e 29-Apr-2011 Eli Friedman <eli.friedman@gmail.com> Fix a rather obscure crash caused by ARM fast-isel generating code which redefines a register.
rdar://problem/9338332 .



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130454 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
7a20a37bacfb2abc0622768fb9d25797518b1f0e 28-Apr-2011 Eric Christopher <echristo@apple.com> Be more layout aware here and swap the successor and branch condition
if it means we get a fallthrough.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c5eecbc4ec3e8b6934b2c932735c8ebc1b78f537 16-Apr-2011 Stuart Hastings <stuart@apple.com> Correct result when a branch condition is live across a block
boundary. <rdar://problem/8933028>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
562b84b3aea359d1f918184e355da82bf05eb290 11-Apr-2011 Jay Foad <jay.foad@gmail.com> Don't include Operator.h from InstrTypes.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
0435661582c5ccbd3984a710850fc8bc8939e566 05-Apr-2011 Eric Christopher <echristo@apple.com> Just use BL all the time. It's safer that way.

Fixes rdar://9184526


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c0e6d780cd7a0935f545a0ec0a9ad4a6ae8db2a9 31-Mar-2011 Cameron Zwarich <zwarich@apple.com> Add a ARM-specific SD node for VBSL so that forms with a constant first operand
can be recognized. This fixes <rdar://problem/9183078>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
7244d7cbcea232049f2676e4d204dddf6520821f 22-Mar-2011 Eric Christopher <echristo@apple.com> Migrate the fix in r128041 to ARM's fastisel support as well.

Fixes rdar://9169640

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
af3dce51494b366024958b6dc9a15b95cb03011f 12-Mar-2011 Eric Christopher <echristo@apple.com> Sometimes isPredicable lies to us and tells us we don't need the operands.
Go ahead and add them on when we might want to use them and let
later passes remove them.

Fixes rdar://9118569


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
872f4a224711ef55b821746fc7a24b9260fee370 22-Feb-2011 Eric Christopher <echristo@apple.com> Only use blx for external function calls on thumb, these could be fixed
up by the dynamic linker, but it's better to use the correct instruction
to begin with.

Fixes rdar://9011034


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4a2b31676217cbf710f74253ae6ab8306b115ba6 27-Jan-2011 Eric Christopher <echristo@apple.com> Use the incoming VT not the VT of where we're trying to store to determine
if we can store a value. Also, the exclusion is or, not and.

Fixes rdar://8920247.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
955ed73d12f2b186ef3f80da872b702cd7f2895b 18-Jan-2011 Jeffrey Yasskin <jyasskin@google.com> Remove unused variables found by gcc-4.6's -Wunused-but-set-variable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5de5d4b6d0eb3fd379fa571d82f6fa764460b3b8 17-Jan-2011 Evan Cheng <evan.cheng@apple.com> Materialize GA addresses with movw + movt pairs for Darwin in PIC mode. e.g.
movw r0, :lower16:(L_foo$non_lazy_ptr-(LPC0_0+4))
movt r0, :upper16:(L_foo$non_lazy_ptr-(LPC0_0+4))
LPC0_0:
add r0, pc, r0

It's not yet enabled by default as some tests are failing. I suspect bugs in
down stream tools.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
54c6d6f42d096f8144ac636ec6ae0d3362ead43e 05-Jan-2011 Chris Lattner <sabre@nondot.org> fix some -Wself-assign warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c19aadb8b0219462ff55f4bdc8106cebc1245bb6 21-Dec-2010 Eric Christopher <echristo@apple.com> Arm and thumb call instructions are also in different orders.

Fixes rdar://8782223


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
836c6245ad7e8f2b9f72c2a9e4cb1df101eaf2c7 16-Dec-2010 Eric Christopher <echristo@apple.com> Don't handle -arm-long-calls in fast isel for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121919 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
564857f776084a85b6b4bf0c896fd60c69d0c521 01-Dec-2010 Eric Christopher <echristo@apple.com> Refactor load/store handling again. Simplify and make some room for
reg+reg handling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
06a86da3238d9f2234cb7eb7ca6bdc73b65bc408 30-Nov-2010 Eric Christopher <echristo@apple.com> Noticed this on inspection, fix and update some comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
7bb5996e474806eee2fde0f446400ecbab59e4ae 29-Nov-2010 Eric Christopher <echristo@apple.com> Update fastisel for the changes in r120272.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
bf17cfa3f904e488e898ac2e3af706fd1a892f08 23-Nov-2010 Wesley Peck <peckw@wesleypeck.com> Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
827656dab4931a512d6d994d9c61d280a2651dd4 20-Nov-2010 Eric Christopher <echristo@apple.com> Rewrite address handling to use a structure with all the possible address
mode variables. Handle frame indexes in load/store and allocas again.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
13df1a0baca2af78e24919e6a52b452f4d45f32f 20-Nov-2010 Eric Christopher <echristo@apple.com> STRH only needs the additional operand, not t2STRH. Also invert conditional
to match the one from the load emitter above.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
b37165808359c71b20291de51368f9efb65e7108 19-Nov-2010 Eric Christopher <echristo@apple.com> Don't need to save piecemeal now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2d630d7bc9ae746d353211c3532dfa8e4f0ce9d5 19-Nov-2010 Eric Christopher <echristo@apple.com> Update comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
88de86b550a1fd19dd968cafac48e810f1da5254 19-Nov-2010 Eric Christopher <echristo@apple.com> Update comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
0d58122e1221665d421a53741ef638505ecbe745 19-Nov-2010 Eric Christopher <echristo@apple.com> Refactor address mode handling into a single struct (ala x86), this
should give allow a wider range of addressing modes.

No functional change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119856 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
3ea4daaf5043ba2d4745f43c5dc2e44c0305ca00 19-Nov-2010 Jim Grosbach <grosbach@apple.com> Remove hard tabs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
76dda7ec1d8d0ee65a103b6710ab75c2a9e012d1 15-Nov-2010 Eric Christopher <echristo@apple.com> Recommit this change and remove the failing part of the test - it didn't
pass in the first place and was masked by earlier failures not warning
and aborting the block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
84e86c0156a6562bba87a0484ef24c2de4f641d7 13-Nov-2010 Eric Christopher <echristo@apple.com> Temporarily revert this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c0394c0b8cee513a624566ce1db100bd66d4da57 12-Nov-2010 Eric Christopher <echristo@apple.com> Make this happen for ARM like x86. Don't entirely bail out when
an address is in a different block, get it into a register and go
from there.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
d0c82a683e965f326e36a2bcaa85c00e917f8282 12-Nov-2010 Eric Christopher <echristo@apple.com> Fix up a few more spots of addrmode2 (or not) changes that were
missed. Update some comments accordingly.

Fixes rdar://8652289


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
16cb3763c5a1dad7d6bcbf0fffdfc58c84b46f89 09-Nov-2010 Jim Grosbach <grosbach@apple.com> Trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5e262bc94342b4ce277206cb739b98b80b8b0d2b 06-Nov-2010 Eric Christopher <echristo@apple.com> Make sure we have movw on the target before using it.

Fixes 8559.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
1e96bab329eb23e4ce8a0dc3cc6b33a3f03d15bf 04-Nov-2010 Duncan Sands <baldrick@free.fr> In the calling convention logic, ValVT is always a legal type,
and as such can be represented by an MVT - the more complicated
EVT is not needed. Use MVT for ValVT everywhere.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
e5b13cfdd0fc6529f8e2b3704ccaf20369aec486 03-Nov-2010 Eric Christopher <echristo@apple.com> Optimize generated code for integer materialization a bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118192 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
cdfad36b401be6fc709ea4051f9de58e1a30bcc9 03-Nov-2010 Duncan Sands <baldrick@free.fr> Simplify uses of MVT and EVT. An MVT can be compared directly
with a SimpleValueType, while an EVT supports equality and
inequality comparisons with SimpleValueType.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
1440e8b918d7116c3587cb95f4f7ac7a0a0b65ad 03-Nov-2010 Duncan Sands <baldrick@free.fr> Inside the calling convention logic LocVT is always a simple
value type, so there is no point in passing it around using
an EVT. Use the simpler MVT everywhere. Rather than trying
to propagate this information maximally in all the code that
using the calling convention stuff, I chose to do a mainly
low impact change instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
000cf708effc247ff1e609d0703324b21585a4af 03-Nov-2010 Eric Christopher <echristo@apple.com> Invert these branches by default, it makes assembly comparisons a little
easier to read.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4c914125c4d1746dd2436cb5b1620efd6182f1db 03-Nov-2010 Eric Christopher <echristo@apple.com> Make sure we're only storing a single bit here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4053e63a4b2f54446e29ef5bdad64e43b3bf52d6 02-Nov-2010 Eric Christopher <echristo@apple.com> Remove an assert - it's possible to be hit, and we just want to avoid
handling those cases for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
61d69da051f5e45ebca4b78f3cec21370de25061 02-Nov-2010 Eric Christopher <echristo@apple.com> Whitespeace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
aaa8df4cad59e41bebba47ce2b4c74c1f0a23c77 02-Nov-2010 Eric Christopher <echristo@apple.com> No really, no thumb1 for arm fast isel. Also add an informative comment as
to what someone would need to do to support thumb1.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
76d61478dff97d10ed01ae071f9fff1a24001009 30-Oct-2010 Eric Christopher <echristo@apple.com> Make sure we have a legal type (and simple) before continuing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
0e6233bfd75a12b9e56507086a37816240ca877a 29-Oct-2010 Eric Christopher <echristo@apple.com> Handle comparison values we already have - this fixes the consumer-typeset
failure for llvm-gcc on arm fast isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
7e3383c007f53b3a00675af225e428cb66ddf404 28-Oct-2010 Jim Grosbach <grosbach@apple.com> Refactor ARM STR/STRB instruction patterns into STR{B}i12 and STR{B}rs, like
the LDR instructions have. This makes the literal/register forms of the
instructions explicit and allows us to assign scheduling itineraries
appropriately. rdar://8477752

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
6b15639e267575a2c95f89d6b266e0fcd9231d91 27-Oct-2010 Jim Grosbach <grosbach@apple.com> Trailing whitespace

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c1d30212e911d1e55ff6b25bffefb503708883c3 27-Oct-2010 Jim Grosbach <grosbach@apple.com> Split ARM::LDRB into LDRBi12 and LDRBrs. Adjust accordingly. Continuing on
rdar://8477752.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
3e5561247202bae994dd259a2d8dc4eff8f799f3 27-Oct-2010 Jim Grosbach <grosbach@apple.com> First part of refactoring ARM addrmode2 (load/store) instructions to be more
explicit about the operands. Split out the different variants into separate
instructions. This gives us the ability to, among other things, assign
different scheduling itineraries to the variants. rdar://8477752.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a4633f5d7458f4d04e4bf89be48d3b14e1fae044 23-Oct-2010 Eric Christopher <echristo@apple.com> Move rejection of NEON parameters earlier in fast isel call processing,
note that we can actually handle some f64 arguments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
1f8b40d51c0e1bb7fce5a69c2fadc656bfef3092 22-Oct-2010 Evan Cheng <evan.cheng@apple.com> Silence compiler warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4f512efee9198eb38bf190b0c3fe50429a065d15 22-Oct-2010 Eric Christopher <echristo@apple.com> Add some basic ret instruction support to arm fast-isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
1778772d1ba9a434dc98a96cbb1b97028d6cd49c 21-Oct-2010 Eric Christopher <echristo@apple.com> These don't need to be virtual.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5b924809e4a62ddc0221cd355e834ecec22bbf40 21-Oct-2010 Eric Christopher <echristo@apple.com> Handle storing args to the stack for calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
212ae937bb9b52bb1f27f02cb0c28496c4d1e2b9 21-Oct-2010 Eric Christopher <echristo@apple.com> More load/store refactoring, call reg+offset simplification from within
the emitter to handle the addresses. Only simplify the offset if we need
to - also fix bug where in addrmode 5 we weren't dividing the offset by
4, which showed up due to not always lowering.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2d8f6fe610fa859370c38cfbe38ff809a3a417de 21-Oct-2010 Eric Christopher <echristo@apple.com> Custom lower f64 args passed in integer registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
3659ac22c0dcb64d69aa9b80d9979caf0cab2e4f 20-Oct-2010 Eric Christopher <echristo@apple.com> Fix a TODO by removing some unnecesary copies.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
6e5367d6a35e7d4cde8ddb8d56b706d5b8dffbd0 19-Oct-2010 Eric Christopher <echristo@apple.com> Revert r116220 - thus turning arm fast isel back on by default.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4cf34c6c041cebc1d816d178654c6bbb7737cc4e 18-Oct-2010 Eric Christopher <echristo@apple.com> Remove the check for invalid calling conventions. Testing shows that they're
working just fine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
fa87d6675212d5ca04725b7e541156f58c4ab40b 18-Oct-2010 Eric Christopher <echristo@apple.com> Lift arg promotion from the X86 backend. This should be unified at some point.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
404be0c04f8a984e21f650c2bcd7b277c6fa6a84 17-Oct-2010 Eric Christopher <echristo@apple.com> Now that we handle all allocas via a non-SP reg offset remove all of the
special case handling for ARM::SP.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ec8bf972f5a270c80c7dca05151c9063be646e2b 17-Oct-2010 Eric Christopher <echristo@apple.com> Allow more load types to be materialized through the allocas.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
d56d61af0190ee8024eb71dd4138ed7861f20adc 17-Oct-2010 Eric Christopher <echristo@apple.com> Optimize GEP off of intermediate allocas.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
7208dbf2d58a8eeff755907494d77af052db207b 17-Oct-2010 Eric Christopher <echristo@apple.com> Fix comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
dc0b0ef6cd593a7eb502ca0842fa1f653cb68140 17-Oct-2010 Eric Christopher <echristo@apple.com> Turn on AddOperator folding in GEP.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
45c607134b396ebdb8eb0cefe831e6ab2e37deac 17-Oct-2010 Eric Christopher <echristo@apple.com> Use the i12 immediate versions of the load instructions - they're handled
more in the post-passes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
47650ece374315ce4ff5e483f6165ae37752f230 16-Oct-2010 Eric Christopher <echristo@apple.com> Fix some funky formatting that got through.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c9a91fdaf99a138e9d0aee648c7bc5d04ac385cd 16-Oct-2010 Eric Christopher <echristo@apple.com> Make sure offset is 0 for load/store register to the stack call.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
315030ca74f7c3cf8bf7f7d29da667ac9fc45bb0 16-Oct-2010 Eric Christopher <echristo@apple.com> Fix else if -> if in store machinery.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a32242564220e66a4f0fea8c173b0094ded2aa5e 15-Oct-2010 Eric Christopher <echristo@apple.com> Refactor ARM fast-isel reg + offset to be a base + offset.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2896df897cc7d1bd3d211f6a8f47081a1a929bb2 15-Oct-2010 Eric Christopher <echristo@apple.com> Expand GEP handling for constant offsets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
eae8439771a9dafd09e32026ca42bb81cceb2af1 14-Oct-2010 Eric Christopher <echristo@apple.com> Handle more complex GEP based loads and add a few TODOs to deal with
GEP + alloca.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
95369599c61ab1b35ae3afe349763b886225c5be 14-Oct-2010 Jim Grosbach <grosbach@apple.com> A few 80 column fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a9c575110f6a8b1aeadefe5728393bb20697b5c5 13-Oct-2010 Eric Christopher <echristo@apple.com> Update comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ede42b0a22fdb57eb70d0d8c780dc5d3283397c0 13-Oct-2010 Eric Christopher <echristo@apple.com> Start handling more global variables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
558cf007b5ed92324156b29861a0acbf95442278 12-Oct-2010 Eric Christopher <echristo@apple.com> Fix thinko in arm fast isel alloca rewrite.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
15418779419923dc9222cd804d409c1878b5e3b1 12-Oct-2010 Eric Christopher <echristo@apple.com> Rework alloca handling so that we can load or store from casted
address that we've looked through.

Fixes compilation problems in tramp3d from earlier patch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5532433a574043b516aec26a4dd4b6c8d7fc551e 12-Oct-2010 Eric Christopher <echristo@apple.com> Handle a wider arrangement of loads.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5f9e8b971bc4cf1f34901389ef9fe3b6344a0a9c 12-Oct-2010 Eric Christopher <echristo@apple.com> Use a sane mechanism for that assert.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
050d16c2a978eda86a5b6dc56d6f0cea10963b9c 11-Oct-2010 Eric Christopher <echristo@apple.com> We're not going to handle dynamic allocas anywhere else.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
fb0b892f7ebee68760645dd220f88bd9177cf2e4 11-Oct-2010 Eric Christopher <echristo@apple.com> Make sure that the call stack adjustments have default operands. Also
leave custom lowerings for later.

Fixes some nightly tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
8ff9a9da0a2efc7e901c79e62689b49a38454063 11-Oct-2010 Eric Christopher <echristo@apple.com> Found a bug turning this on by default. Disable again for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
fa6b29dacdb268301d8e3f58356071c998b2b8a5 11-Oct-2010 Eric Christopher <echristo@apple.com> Fix help text.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
feadddd6b6c029bc77d6c11a7a637689d15cc7b4 11-Oct-2010 Eric Christopher <echristo@apple.com> Change flag from Enable to Disable since we're enabled by default.
Also don't use fast-isel on non-darwin since it's untested.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a2efc5ff6ecc7dfca66b51030510afd004732217 11-Oct-2010 Eric Christopher <echristo@apple.com> Turn on arm fast isel by default.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a1640d9ed9e0e9860614944f79a40ae66ecf56fc 11-Oct-2010 Eric Christopher <echristo@apple.com> Copy and pasteo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
dccd2c3c4346dd6625b80fcac9caa1be99731c9c 11-Oct-2010 Eric Christopher <echristo@apple.com> Whitespace cleanup in ARM fast isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
6a880d6ba8e489fc85d18cfbc5f8f6187d438630 11-Oct-2010 Eric Christopher <echristo@apple.com> Add srem libcall support to ARM fast isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
7bdc4de4e71e3c9c8d82504b99d03bbec3c06ec3 11-Oct-2010 Eric Christopher <echristo@apple.com> Add i8 sdiv support for ARM fast isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
3bbd396853c7645791417bc795bab4662235ec10 11-Oct-2010 Eric Christopher <echristo@apple.com> Implement select handling for ARM fast-isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
e93417bcc8940191396d7fa977e2c8d713bd85f6 09-Oct-2010 Eric Christopher <echristo@apple.com> Fix the store part of this as well. Fixes smg2000.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
7a56f33583a331bd1d6de57af3fa03085889ecfb 08-Oct-2010 Eric Christopher <echristo@apple.com> Move to thumb2 loads, fixes a problem with incoming registers
as thumb1.

Fixes lencod.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
df1f5a924e89fc2f744681677ca03c68aae5bc34 07-Oct-2010 Eric Christopher <echristo@apple.com> Remember to promote load/store types for stack to register size.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ee56ea62431081a2333eb47df3fa4dfcd425cb54 07-Oct-2010 Eric Christopher <echristo@apple.com> Use the correct register class for load instructions - fixes
compilation of MultiSource/Benchmarks/Bullet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
5d18d92aad587381b5d9ecf0aeb3c2eb1530ee61 07-Oct-2010 Eric Christopher <echristo@apple.com> Use the correct register class here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
338c253d7ebfff4495697911e07cf6ee1724015f 07-Oct-2010 Eric Christopher <echristo@apple.com> Use the thumb2 conditional move instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
1107734e223a140962e220ba64ea62227ffcbe20 07-Oct-2010 Eric Christopher <echristo@apple.com> Remove in-progress assertion, add TODO.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
e540a6f94a4011e6ecefe9e21c3f2b3b581fd6c1 06-Oct-2010 Eric Christopher <echristo@apple.com> Comment out fastisel debugging message.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
022b7fb045973531a1b05f4f0dae28fd836c9890 06-Oct-2010 Eric Christopher <echristo@apple.com> Random cleanup and make the intermediate register in fptosi a
32-bit fp reg, not 64-bit.

Fixes SingleSource.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
890dbbec5773fb4d3823e3102d403d79900b08bc 02-Oct-2010 Eric Christopher <echristo@apple.com> Start on lowering global addresses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c9932f6f60827e31395d5254fda73f03257963ae 02-Oct-2010 Eric Christopher <echristo@apple.com> Stub out constant GV handling, fixes C++ eh tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
e6ca6771e330a0590d529d94f72201c05d0cf6f8 01-Oct-2010 Eric Christopher <echristo@apple.com> Direct calls only for arm fast isel for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
45547b844d6a1cd69d6f71ec304948896c89bf43 01-Oct-2010 Eric Christopher <echristo@apple.com> Fix thinko on store instructions. Fixes test_indvars failure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
14df88282bf897403db6ac1dc20ad01a0ae79835 01-Oct-2010 Eric Christopher <echristo@apple.com> Implement double return values in calls. Fixes
SingleSource/Regression/C/casts.c.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
086378597df590e6401abf90d0b5edb09bbaa297 01-Oct-2010 Eric Christopher <echristo@apple.com> Movement and cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
f9764fa14fc6e168956bd53e696e8aa4e7b5d42e 30-Sep-2010 Eric Christopher <echristo@apple.com> Start of generalized call support for ARM fast isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a9a7a1a9a557cc03d1fed6cba3f27520be5274c0 30-Sep-2010 Eric Christopher <echristo@apple.com> Refactor arm fast isel libcall handling so that pieces can be used
for generic call handling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
8cf6c60710c7924bcd0235f37e4d613f9abf7dc6 30-Sep-2010 Eric Christopher <echristo@apple.com> Add a convenience variable so I'm not chasing all over looking for
a context.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
229207aa2edaeb872e9f987ad8df3a67455f240c 29-Sep-2010 Eric Christopher <echristo@apple.com> Rework comparison handling to set a register on true/false. This avoids
problems with phi-nodes in blocks that have hard and not virtual registers.

Accordingly update branch handling to compensate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
f8476e6742d22f97932409e79b59a693df6b5947 29-Sep-2010 Eric Christopher <echristo@apple.com> Remove unnecessary set ahead of time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
98de5b46039984759f236cf991b0eebd179e9411 29-Sep-2010 Eric Christopher <echristo@apple.com> Remove assert, add comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
744c7c8e1b9bf166ded2b4e0b57638a004a44f8d 29-Sep-2010 Eric Christopher <echristo@apple.com> 32-bit constant ints only for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
fd60980eb248f44927ea55c1f8d11fa019d318a6 28-Sep-2010 Eric Christopher <echristo@apple.com> Integer materialization needed the same thinko change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
7ed8ec94d96cc87e768fd5ebe4ddeb04dd56e8ab 28-Sep-2010 Eric Christopher <echristo@apple.com> Rework builtin handling and call setup. The builtin handling
now takes a libcall operand, sets up the arguments correctly and
handles stack adjustments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
f5732c4ee5af93bddeb8f4612441bfdf19237ea3 28-Sep-2010 Eric Christopher <echristo@apple.com> Fix fp constant loads to have a destination register.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
1127c720ede18f8ffaae4d7d6209569803c24720 27-Sep-2010 Eric Christopher <echristo@apple.com> Insert missing coherency in comment. Add a quick check for hardware
divide support also.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
43b62beb4cac4337a080c2d3fb8f218a7ffb59c3 27-Sep-2010 Eric Christopher <echristo@apple.com> Mass rename for Jim.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
c109556a0a7f0dca78f60967c3560fcaa27097a0 18-Sep-2010 Eric Christopher <echristo@apple.com> Thumb opcodes for thumb calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
6dab137b889d1fafdeee9c70c2b59d549d59163a 18-Sep-2010 Eric Christopher <echristo@apple.com> Add addrmode5 fp load support. Swap float/thumb operand adding to handle
thumb with floating point.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
b74558ad3e1822f90e363c400bd6c06e94c200e1 18-Sep-2010 Eric Christopher <echristo@apple.com> Floating point stores have a 3rd addressing mode type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a5b1e6810769bef9a1fd98c69877bdfd75d7b106 18-Sep-2010 Eric Christopher <echristo@apple.com> Rework arm fast isel branch and compare code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
bb3e5dad6685dd54625edae789d1a703f4107a69 15-Sep-2010 Eric Christopher <echristo@apple.com> Emit libcalls for SDIV, this requires some call infrastructure
that needs to be shared a bit more widely around.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
d10cd7b31464a73e3a19b9fada80b9567b04d314 11-Sep-2010 Eric Christopher <echristo@apple.com> Start sketching out ARM fast-isel calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
44bff903e20574e7ae6b23c7c3f244db39e0a035 11-Sep-2010 Eric Christopher <echristo@apple.com> For consistency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
920a2089d9b737820631bc6de4c4fb9fa9ad1e07 10-Sep-2010 Eric Christopher <echristo@apple.com> Fix build error.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
db12b2ba9c602fc9bedcf0a9b2e72e23e29005d8 10-Sep-2010 Eric Christopher <echristo@apple.com> Update comments, reorganize some code, rename variables to be
more clear. No functional change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
238bb162514afac2cfb7221a0f102456de09f581 10-Sep-2010 Eric Christopher <echristo@apple.com> 64-bit fp loads can come straight out of the constant pool, not as
bad as I'd thought.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
9ee4ce2f91250ef44fea427392c8dad369df8972 09-Sep-2010 Eric Christopher <echristo@apple.com> SIToFP and FPToSI conversions work only on fp-reg to fp-reg. Move
some data around and implement a couple of move routines to do this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
aa3ace10c1b90e07114e60700c8c1f8e6b4f3e84 09-Sep-2010 Eric Christopher <echristo@apple.com> New "move to fp reg" routine. Use it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ef2fdd21418e0cdc5df963a063b0f940964fa208 09-Sep-2010 Eric Christopher <echristo@apple.com> "Strike that, reverse it." -- Mr. Wonka.

Truncate when truncating, extend when extending.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ce07b5458d87d5f5ad306a1d86785537e9a3ce0c 09-Sep-2010 Eric Christopher <echristo@apple.com> Add FPTrunc, fix some bugs where I forgot to update the value map.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
9a040492f7ed084e12a19d56995855c9b5b1d3aa 09-Sep-2010 Eric Christopher <echristo@apple.com> Basic FP->Int, Int->FP conversions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ac1a19e18ad73198ae54cc4bc08000523031f84a 09-Sep-2010 Eric Christopher <echristo@apple.com> Nuke whitespace and fix some indenting.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
bd6bf0848ee651a3cf4ea868b7a7605e37b4e028 09-Sep-2010 Eric Christopher <echristo@apple.com> Handle 64-bit floating point binops as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
bc39b829f2a1f1f0ce3cfe7f9dd99c3402ad2e62 09-Sep-2010 Eric Christopher <echristo@apple.com> Basic 32-bit FP operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4620360842bd8cddc5b1bad7f2f04214c91ac9cb 09-Sep-2010 Eric Christopher <echristo@apple.com> Handle float->double extension.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
9ed58dff86f09699946641ba87f6c4f04a3773c8 09-Sep-2010 Eric Christopher <echristo@apple.com> Rewrite TargetMaterializeConstant splitting it out into two functions
for integer and fp constants. Implement todo to use vfp3 instructions
to materialize easy constants if we can.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
d43393ae34ba7e39239d593742eb63086b68f29a 09-Sep-2010 Eric Christopher <echristo@apple.com> Very basic compare support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
a88d8577e696e35bf72bbc2e5ab1f7e2002b8cc4 09-Sep-2010 Eric Christopher <echristo@apple.com> Delete dead code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
30b663339e4e76981a2fc4dee84959298c0a1dc8 08-Sep-2010 Eric Christopher <echristo@apple.com> Make the loads/stores match the type we really want to store.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
845c5757ed40f23595b89cc0ba1db05e2c3d0099 08-Sep-2010 Eric Christopher <echristo@apple.com> Rewrite TargetMaterializeConstant.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
e5734105daf799dea671666059f7ecab6abb389f 03-Sep-2010 Eric Christopher <echristo@apple.com> Simple branch instruction support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
56d2b72884f98001cefdf8de61d6d7fc00d3df90 03-Sep-2010 Eric Christopher <echristo@apple.com> Add basic support for materializing constants (including fp) and
stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
1f58741aabd00545468f4ecf29db3dba8e0bd6ac 02-Sep-2010 Eric Christopher <echristo@apple.com> Clang's -ccc-host-triple was ignoring the arch specifier on my triple,
I don't need to implement this quite yet - and not for ConstantInt anyhow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
1b61ef4b22c8ae0ef82685637142246a245f9ecb 02-Sep-2010 Eric Christopher <echristo@apple.com> This should be TargetMaterializeConstant instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
eaa204b2f8414a2ac5764a753c119c8cd40bade3 02-Sep-2010 Eric Christopher <echristo@apple.com> One definition of isThumb is plenty, thanks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
318b6eec8d72ad6dad887abde3fed484bd8d86ef 02-Sep-2010 Eric Christopher <echristo@apple.com> Rework arm fast-isel load and store handling. Move offset computation
into the "address selection" routine and handle constant materialization
for stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
543cf05b9cb98f50a22cf05137d97bb3bb61f94a 02-Sep-2010 Eric Christopher <echristo@apple.com> Some basic store support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
4e68c7cca44d33771d376f1668d687ce9d8f11d3 01-Sep-2010 Eric Christopher <echristo@apple.com> Add some more load types in.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
dc90804a402b9d617c154625e04a74ebd7fe3599 31-Aug-2010 Eric Christopher <echristo@apple.com> Rewrite slightly so we can expand for floating point types easier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
548d1bb97e6510d1e16299058a4bacb068ede13a 31-Aug-2010 Eric Christopher <echristo@apple.com> If we have an unhandled type then assert, we shouldn't get here for
things we can't handle.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
61c3f9ae0624281a7feb0027b8bb87874fadbcd4 25-Aug-2010 Eric Christopher <echristo@apple.com> Do type checks before we bother to do everything else.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
b1cc848d1a9a831e8058fad546e41b21d955fd88 25-Aug-2010 Eric Christopher <echristo@apple.com> Reorganize load mechanisms. Handle types in a little less fixed way.
Fix some todos. No functional change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
992ea38e0e35f3700a76f49443fb134e7fcb46be 25-Aug-2010 Eric Christopher <echristo@apple.com> Fix predicate and add a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
e24d66f525825a96ee76508076696936451902be 25-Aug-2010 Eric Christopher <echristo@apple.com> Rework braindead conditionals I put in yesterday.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
9f782d4dcf580ae508cc83f412884cd3c5f9207d 25-Aug-2010 Eric Christopher <echristo@apple.com> Fix thumb2 mode loads to have the correct operand ordering. Add a todo
to fix this in the port.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
882d62e2db7a82e4fd8fc401545ce3db46eadd82 24-Aug-2010 Eric Christopher <echristo@apple.com> Update comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
2012c7bb7be28c163a4b8034e961ace51f6a7224 24-Aug-2010 Eric Christopher <echristo@apple.com> Fix the opcode and the operands for the load instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
f06f309002f00e7927347502997f2df5756f4d9c 24-Aug-2010 Eric Christopher <echristo@apple.com> Add register class hack that needs to go away, but makes it more obvious
that it needs to go away. Use loadRegFromStackSlot where possible.

Also, remember to update the value map.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
cb0b04ba6fc847574f592d1a80ff3b60c0d4228c 24-Aug-2010 Eric Christopher <echristo@apple.com> Add some more debugging code, make it more obvious that RegOffset is
getting an address for an object and select some default values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111871 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
1dfb4d31e068855c594d157d5a9a207daf473426 24-Aug-2010 Eric Christopher <echristo@apple.com> Don't need the extra register here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
8654c71e56cd1f21f71bfce7eecb7373242663ff 24-Aug-2010 Eric Christopher <echristo@apple.com> Add some more "get address into register" code and a more TODOs/FIXMEs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
7fe55b739c1bc319da9c81bcfd9d3e5d5030721b 24-Aug-2010 Eric Christopher <echristo@apple.com> Add an ARMFunctionInfo member and use it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
8300712c1e73dc106242f0007e0e0e4dd9ea38ce 23-Aug-2010 Eric Christopher <echristo@apple.com> Start getting ARM loads/address computation going.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
f762fbe4fa421c91e20044ee009ddb57e25dd135 20-Aug-2010 Eric Christopher <echristo@apple.com> Fix loop conditionals (MO.isDef() asserts that it's a reg) and
move some constraints around.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
cb59229a4a60abaee9ef060c515dbd3513865afd 20-Aug-2010 Eric Christopher <echristo@apple.com> Add a couple of random comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
979e0a141487a4cd8538dffbe09eca544acf14c7 19-Aug-2010 Eric Christopher <echristo@apple.com> Silence warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
456144eb14b377166af1d9439cee6fad86fcdb1b 19-Aug-2010 Eric Christopher <echristo@apple.com> Add an AddOptionalDefs method and use it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
0fe7d54732491126c26e7e1ec60274ff2b02b849 17-Aug-2010 Eric Christopher <echristo@apple.com> Copy over some overridden MI wrappers for ARM fast-isel. This is where
we're adding predicates and optional defs to the MachineInstrs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
038fea5e30faaf37e597f8a4627e1e3141fb59ba 17-Aug-2010 Eric Christopher <echristo@apple.com> Make arm fast-isel possible to enable via command line.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
0944795b8c84612303e9de00bc7e9ea362441227 26-Jul-2010 Evan Cheng <evan.cheng@apple.com> ARM fastisel isn't ready.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp
ab695889c67fb499bd902e8a969d0ff02ce66788 22-Jul-2010 Eric Christopher <echristo@apple.com> Baby steps towards ARM fast-isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/ARM/ARMFastISel.cpp