History log of /llvm-project/llvm/lib/Target/ARM/ARMFrameLowering.cpp (Results 276 – 300 of 311)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


1...<<111213