- Jun 12, 2010
-
-
Bob Wilson authored
i64 and f64 types, but now it also handle Neon vector types, so the f64 result of VMOVDRR may need to be converted to a Neon type. Radar 8084742. llvm-svn: 105845
-
- Jun 11, 2010
-
-
Bob Wilson authored
the machine instruction representation of the immediate value to be encoded into an integer with similar fields as the actual VMOV instruction. This makes things easier for the disassembler, since it can just stuff the bits into the immediate operand, but harder for the asm printer since it has to decode the value to be printed. Testcase for the encoding will follow later when MC has more support for ARM. llvm-svn: 105836
-
- Jun 10, 2010
-
-
Evan Cheng authored
llvm-svn: 105774
-
Jim Grosbach authored
dbg_value immediately follows a sequence of ldr/str instructions that should be combined into an ldm/stm and is the last instruction in the block, then combine may end up being skipped. llvm-svn: 105758
-
- Jun 09, 2010
-
-
Evan Cheng authored
Allow target to place 2-address pass inserted copies in better spots. Thumb2 will use this to try to avoid breaking up IT blocks. llvm-svn: 105745
-
Evan Cheng authored
llvm-svn: 105677
-
Evan Cheng authored
the same condition, it's important to make sure they are scheduled together to avoid forming multiple IT blocks. I'm adding a pre-regalloc pass that forms IT blocks early (by re-scheduling instructions and split basic blocks) to attempt to fix this. This is not turned on by default since I am not sure this is the right fix. Another issue is llvm selects are modeled as two-address conditional moves. This can be very bad when the copies before the conditional moves are not coalesced away. Teach IT formation pass to move the copies above the IT block (when legal) to avoid breaking the IT block. llvm-svn: 105669
-
Jim Grosbach authored
llvm-svn: 105653
-
Bruno Cardoso Lopes authored
immediates to avoid breaking the build. llvm-svn: 105652
-
- Jun 08, 2010
-
-
Jim Grosbach authored
llvm-svn: 105634
-
Bob Wilson authored
llvm-svn: 105591
-
Bob Wilson authored
- change isShuffleMaskLegal to show that all shuffles with 32-bit and 64-bit elements are legal - the Neon shuffle instructions do not support 64-bit elements, but we were not checking for that before lowering shuffles to use them - remove some 64-bit element vduplane patterns that are no longer needed llvm-svn: 105586
-
- Jun 07, 2010
-
-
Jim Grosbach authored
rdar://7797940 llvm-svn: 105557
-
- Jun 05, 2010
-
-
Chris Lattner authored
In file included from X86InstrInfo.cpp:16: X86GenInstrInfo.inc:2789: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2790: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2792: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2793: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2808: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2809: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2816: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2817: error: integer constant is too large for 'long' type llvm-svn: 105524
-
Bruno Cardoso Lopes authored
yet, only assembly encoding support. llvm-svn: 105521
-
Dale Johannesen authored
unless using -arm-tail-calls. llvm-svn: 105515
-
- Jun 04, 2010
-
-
Dale Johannesen authored
8060143, although this doesn't fix the real problem with tail call. llvm-svn: 105472
-
-
Jim Grosbach authored
llvm-svn: 105454
-
Jim Grosbach authored
llvm-svn: 105441
-
Bob Wilson authored
VECTOR_SHUFFLEs to REG_SEQUENCE instructions. The standard ISD::BUILD_VECTOR node corresponds closely to REG_SEQUENCE but I couldn't use it here because its operands do not get legalized. That is pretty awful, but I guess it makes sense for other targets. Instead, I have added an ARM-specific version of BUILD_VECTOR that will have its operands properly legalized. This fixes the rest of Radar 7872877. llvm-svn: 105439
-
Jim Grosbach authored
llvm-svn: 105427
-
- Jun 03, 2010
-
-
Dale Johannesen authored
A temporary flag -arm-tail-calls defaults to off, so there is no functional change by default. Intrepid users may try this; simple cases work but there are bugs. llvm-svn: 105413
-
Jakob Stoklund Olesen authored
instruction defines subregisters. Any existing subreg indices on the original instruction are preserved or composed with the new subreg index. Also substitute multiple operands mentioning the original register by using the new MachineInstr::substituteRegister() function. This is necessary because there will soon be <imp-def> operands added to non read-modify-write partial definitions. This instruction: %reg1234:foo = FLAP %reg1234<imp-def> will reMaterialize(%reg3333, bar) like this: %reg3333:bar-foo = FLAP %reg333:bar<imp-def> Finally, replace the TargetRegisterInfo pointer argument with a reference to indicate that it cannot be NULL. llvm-svn: 105358
-
- Jun 02, 2010
-
-
Jim Grosbach authored
llvm-svn: 105350
-
Rafael Espindola authored
llvm-svn: 105344
-
Bob Wilson authored
and tidy up the comment describing it. llvm-svn: 105339
-
Rafael Espindola authored
llvm-svn: 105335
-
- May 29, 2010
-
-
Anton Korobeynikov authored
llvm-svn: 105109
-
Anton Korobeynikov authored
llvm-svn: 105108
-
Anton Korobeynikov authored
llvm-svn: 105107
-
Anton Korobeynikov authored
llvm-svn: 105106
-
Evan Cheng authored
Schedule high latency instructions for latency reduction even if they are not vfp / NEON instructions. llvm-svn: 105060
-
- May 28, 2010
-
-
Jim Grosbach authored
llvm-svn: 104980
-
Jim Grosbach authored
llvm-svn: 104974
-
Jim Grosbach authored
make sure accesses to set up the jmpbuf don't get moved after it by the scheduler. Add a missing \n. llvm-svn: 104967
-
Bob Wilson authored
the instruction class for t2RSB to add that operand in svn r104582. Radar 8033757. llvm-svn: 104907
-
Jim Grosbach authored
an alloca() or an llvm.stackrestore(). rdar://8031573 llvm-svn: 104900
-
Evan Cheng authored
llvm-svn: 104899
-
Jim Grosbach authored
llvm-svn: 104897
-