#
801d98b3 |
| 04-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix more places which should be checking for iOS, not darwin.
llvm-svn: 147513
|
#
103318e9 |
| 24-Dec-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix Comments.
llvm-svn: 147238
|
#
0965585c |
| 23-Dec-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Experimental support for aligned NEON spills.
ARM targets with NEON units have access to aligned vector loads and stores that are potentially faster than unaligned operations.
Add support for spill
Experimental support for aligned NEON spills.
ARM targets with NEON units have access to aligned vector loads and stores that are potentially faster than unaligned operations.
Add support for spilling the callee-saved NEON registers to an aligned stack area using 16-byte aligned NEON loads and store.
This feature is off by default, controlled by an -align-neon-spills command line option.
llvm-svn: 147211
show more ...
|
#
3588a43e |
| 21-Dec-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move common code into an MRI function.
llvm-svn: 147071
|
#
7f8e563a |
| 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 mayL
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.
llvm-svn: 146026
show more ...
|
#
50f02cb2 |
| 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 c
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.
llvm-svn: 145714
show more ...
|
Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2 |
|
#
add38c12 |
| 20-Oct-2011 |
Chad Rosier <mcrosier@apple.com> |
Revert 142337. Thumb1 still doesn't support dynamic stack realignment. :(
llvm-svn: 142557
|
#
0ffe593a |
| 18-Oct-2011 |
Chad Rosier <mcrosier@apple.com> |
Add support for dynamic stack realignment when in thumb1 mode. rdar://10288916
llvm-svn: 142337
|
Revision tags: llvmorg-3.0.0-rc1 |
|
#
a88cb23d |
| 01-Oct-2011 |
Chad Rosier <mcrosier@apple.com> |
Revert r140924 "Attempt to fix dynamic stack realignment for thumb1 functions." to appease nightly testers. Not quite there yet.
llvm-svn: 140953
|
#
21360a49 |
| 01-Oct-2011 |
Chad Rosier <mcrosier@apple.com> |
Attempt to fix dynamic stack realignment for thumb1 functions. It is in fact useful if an optimization assumes the stack has been realigned. Credit to Eli for his assistance. rdar://10043857
llvm
Attempt to fix dynamic stack realignment for thumb1 functions. It is in fact useful if an optimization assumes the stack has been realigned. Credit to Eli for his assistance. rdar://10043857
llvm-svn: 140924
show more ...
|
#
29cfe6c3 |
| 09-Sep-2011 |
Owen Anderson <resistor@mac.com> |
Thumb unconditional branches are allowed in IT blocks, and therefore should have a predicate operand, unlike conditional branches.
llvm-svn: 139415
|
#
05dec8b1 |
| 02-Sep-2011 |
Jim Grosbach <grosbach@apple.com> |
Tidy up. Formatting.
llvm-svn: 139024
|
#
6446bf78 |
| 25-Aug-2011 |
Andrew Trick <atrick@apple.com> |
ARM fix for missing implicit operands on ldmia_ret.
rdar://10005094: miscompile of 176.gcc
llvm-svn: 138568
|
#
f7ecc16c |
| 25-Aug-2011 |
Andrew Trick <atrick@apple.com> |
whitespace
llvm-svn: 138566
|
#
f0c95cad |
| 05-Aug-2011 |
Jim Grosbach <grosbach@apple.com> |
ARM refactor indexed store instructions.
Refactor STR[B] pre and post indexed instructions to use addressing modes for memory operands, which is necessary for assembly parsing and is more consistent
ARM refactor indexed store instructions.
Refactor STR[B] pre and post indexed instructions to use addressing modes for memory operands, which is necessary for assembly parsing and is more consistent with the rest of the memory instruction definitions. Make some incremental progress on refactoring away the mega-operand addrmode2 along the way, which is nice.
llvm-svn: 136978
show more ...
|
#
2aedba6c |
| 26-Jul-2011 |
Owen Anderson <resistor@mac.com> |
Split am2offset into register addend and immediate addend forms, necessary for allowing the fixed-length disassembler to distinguish between SBFX and STR_PRE.
llvm-svn: 136141
|
#
a20cde31 |
| 20-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Sink ARMMCExpr and ARMAddressingModes into MC layer. First step to separate ARM MC code from target.
llvm-svn: 135636
|
#
ea53901d |
| 05-Jul-2011 |
Jim Grosbach <grosbach@apple.com> |
ARM estimateStackSize() needs to account for simplified call frames.
If the function allocates reserved stack space for callee argument frames, estimateStackSize() needs to account for that, as it d
ARM estimateStackSize() needs to account for simplified call frames.
If the function allocates reserved stack space for callee argument frames, estimateStackSize() needs to account for that, as it doesn't show up as ordinary frame objects. Otherwise, a callee with a large argument list will throw off the calculations for whether to allocate an emergency spill slot and we get assert() failures in the register scavenger.
rdar://9715469
llvm-svn: 134415
show more ...
|
#
e9cc9018 |
| 30-Jun-2011 |
Jim Grosbach <grosbach@apple.com> |
Refact ARM Thumb1 tMOVr instruction family.
Merge the tMOVr, tMOVgpr2tgpr, tMOVtgpr2gpr, and tMOVgpr2gpr instructions into tMOVr. There's no need to keep them separate. Giving the tMOVr instruction
Refact ARM Thumb1 tMOVr instruction family.
Merge the tMOVr, tMOVgpr2tgpr, tMOVtgpr2gpr, and tMOVgpr2gpr instructions into tMOVr. There's no need to keep them separate. Giving the tMOVr instruction the proper GPR register class for its operands is sufficient to give the register allocator enough information to do the right thing directly.
llvm-svn: 134204
show more ...
|
#
b98ab91e |
| 30-Jun-2011 |
Jim Grosbach <grosbach@apple.com> |
Thumb1 register to register MOV instruction is predicable.
Fix a FIXME and allow predication (in Thumb2) for the T1 register to register MOV instructions. This allows some better codegen with if-con
Thumb1 register to register MOV instruction is predicable.
Fix a FIXME and allow predication (in Thumb2) for the T1 register to register MOV instructions. This allows some better codegen with if-conversion (as seen in the test updates), plus it lays the groundwork for pseudo-izing the tMOVCC instructions.
llvm-svn: 134197
show more ...
|
#
033026ff |
| 17-Jun-2011 |
Cameron Zwarich <zwarich@apple.com> |
Update an insertion point iterator after replacing a return instruction with a tail call pseudoinstruction. This fixes <rdar://problem/9624333>.
llvm-svn: 133227
|
#
dca85318 |
| 13-Jun-2011 |
Jim Grosbach <grosbach@apple.com> |
Fix coordination for using R4 in Thumb1 as a scratch for SP restore.
The logic for reserving R4 for use as a scratch needs to match that for actually using it. Also, it's not necessary for immediate
Fix coordination for using R4 in Thumb1 as a scratch for SP restore.
The logic for reserving R4 for use as a scratch needs to match that for actually using it. Also, it's not necessary for immediate <=508, so adjust the value checked.
llvm-svn: 132934
show more ...
|
#
c0d2004e |
| 22-Apr-2011 |
Evan Cheng <evan.cheng@apple.com> |
In Thumb2 mode, lower frame indix references to: add <rd>, sp, #<imm8> ldr <rd>, [sp, #<imm8>] When the offset from sp is multiple of 4 and in range of 0-1020. This saves code size by utilizing 16-bi
In Thumb2 mode, lower frame indix references to: add <rd>, sp, #<imm8> ldr <rd>, [sp, #<imm8>] When the offset from sp is multiple of 4 and in range of 0-1020. This saves code size by utilizing 16-bit instructions.
rdar://9321541
llvm-svn: 129971
show more ...
|
Revision tags: llvmorg-2.9.0, llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2 |
|
#
3af6fe66 |
| 15-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
Clean up ARM tail calls a bit. They're pseudo-instructions for normal branches. Also more cleanly separate the ARM vs. Thumb functionality. Previously, the encoding would be incorrect for some Thumb
Clean up ARM tail calls a bit. They're pseudo-instructions for normal branches. Also more cleanly separate the ARM vs. Thumb functionality. Previously, the encoding would be incorrect for some Thumb instructions (the indirect calls).
llvm-svn: 127637
show more ...
|
Revision tags: llvmorg-2.9.0-rc1 |
|
#
e7410dd0 |
| 05-Mar-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Preliminary support for ARM frame save directives emission via MI flags. This is just very first approximation how the stuff should be done (e.g. ARM-only for now). More to follow.
llvm-svn: 127101
|