History log of /llvm-project/llvm/lib/CodeGen/PrologEpilogInserter.cpp (Results 326 – 350 of 502)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1fbe0544 12-Nov-2009 David Greene <greened@obbligato.org>

Add a bool flag to StackObjects telling whether they reference spill
slots. The AsmPrinter will use this information to determine whether to
print a spill/reload comment.

Remove default argument va

Add a bool flag to StackObjects telling whether they reference spill
slots. The AsmPrinter will use this information to determine whether to
print a spill/reload comment.

Remove default argument values. It's too easy to pass a wrong argument
value when multiple arguments have default values. Make everything
explicit to trap bugs early.

Update all targets to adhere to the new interfaces..

llvm-svn: 87022

show more ...


# cad78a76 29-Oct-2009 Jim Grosbach <grosbach@apple.com>

When the function is doing dynamic stack realignment, the spill slot will be
indexed via the stack pointer, even if a frame pointer is present. Update the
heuristic to place it nearest the stack poin

When the function is doing dynamic stack realignment, the spill slot will be
indexed via the stack pointer, even if a frame pointer is present. Update the
heuristic to place it nearest the stack pointer in that case, rather than
nearest the frame pointer.

llvm-svn: 85474

show more ...


Revision tags: llvmorg-2.6.0
# bc301434 21-Oct-2009 Jim Grosbach <grosbach@apple.com>

Cleanup of frame index scavenging. Better code flow and more accurately
handles T2 and ARM use cases.

llvm-svn: 84761


# d2ba3219 20-Oct-2009 Jim Grosbach <grosbach@apple.com>

Better handle instructions that re-def a scratch register

llvm-svn: 84657


# 5f2581a3 20-Oct-2009 Jim Grosbach <grosbach@apple.com>

Register re-use for scavenged frame indices must check for re-deginition
of the register in the instruction which kills the scavenged value.

llvm-svn: 84641


# 84f6235b 20-Oct-2009 Jim Grosbach <grosbach@apple.com>

Enable post-pass frame index register scavenging for ARM and Thumb2

llvm-svn: 84585


# 4729191b 17-Oct-2009 Evan Cheng <evan.cheng@apple.com>

Distinquish stack slots from other stack objects. They (and fixed objects) get FixedStack PseudoSourceValues.

llvm-svn: 84326


# b1d6fde1 14-Oct-2009 Jim Grosbach <grosbach@apple.com>

Make loop not recalc getNumOperands() each time around

llvm-svn: 84138


# 02f5588f 14-Oct-2009 Jim Grosbach <grosbach@apple.com>

quiet compiler warning

llvm-svn: 84133


# 26070c5c 09-Oct-2009 Jim Grosbach <grosbach@apple.com>

when previous scratch register is killed, flag the value as no longer tracking

llvm-svn: 83653


# c0615aa1 08-Oct-2009 Jim Grosbach <grosbach@apple.com>

Re-enable register scavenging in Thumb1 by default.

llvm-svn: 83521


# 48a805bc 08-Oct-2009 Jim Grosbach <grosbach@apple.com>

bugfix. The target may use virtual registers that aren't tracked for re-use but are allocated by the scavenger. The re-use algorithm needs to watch for that.

llvm-svn: 83519


# 456735c5 07-Oct-2009 Jim Grosbach <grosbach@apple.com>

reverting thumb1 scavenging default due to test failure while I figure out what's up.

llvm-svn: 83501


# 267fa622 07-Oct-2009 Jim Grosbach <grosbach@apple.com>

Enable thumb1 register scavenging by default.

llvm-svn: 83496


# 63849cbd 07-Oct-2009 Jim Grosbach <grosbach@apple.com>

grammar

llvm-svn: 83483


# 2af2253e 07-Oct-2009 Jim Grosbach <grosbach@apple.com>

add initializers for clarity. Add missing assignment of PrevLastUseOp.

llvm-svn: 83481


# fa14dd43 07-Oct-2009 Jim Grosbach <grosbach@apple.com>

Add register-reuse to frame-index register scavenging. When a target uses
a virtual register to eliminate a frame index, it can return that register
and the constant stored there to PEI to track. Whe

Add register-reuse to frame-index register scavenging. When a target uses
a virtual register to eliminate a frame index, it can return that register
and the constant stored there to PEI to track. When scavenging to allocate
for those registers, PEI then tracks the last-used register and value, and
if it is still available and matches the value for the next index, reuses
the existing value rather and removes the re-materialization instructions.
Fancier tracking and adjustment of scavenger allocations to keep more
values live for longer is possible, but not yet implemented and would likely
be better done via a different, less special-purpose, approach to the
problem.

eliminateFrameIndex() is modified so the target implementations can return
the registers they wish to be tracked for reuse.

ARM Thumb1 implements and utilizes the new mechanism. All other targets are
simply modified to adjust for the changed eliminateFrameIndex() prototype.

llvm-svn: 83467

show more ...


# c8719778 30-Sep-2009 Jim Grosbach <grosbach@apple.com>

Add additional assert() to verify no extraneous use of a scavenged register.

llvm-svn: 83163


# 882f4c11 30-Sep-2009 Jim Grosbach <grosbach@apple.com>

replace TRI->isVirtualRegister() with TargetRegisterInfo::isVirtualRegister()
per customary usage

llvm-svn: 83137


# cdd3e350 30-Sep-2009 Jim Grosbach <grosbach@apple.com>

fix compiler warning

llvm-svn: 83132


# a4a7f44c 29-Sep-2009 Jim Grosbach <grosbach@apple.com>

Simplify the tracking of virtual frame index registers. Ranges cannot overlap,
so a simple "current register" will suffice. Also add some additional
sanity-checking assertions to make sure things are

Simplify the tracking of virtual frame index registers. Ranges cannot overlap,
so a simple "current register" will suffice. Also add some additional
sanity-checking assertions to make sure things are as we expect.

llvm-svn: 83081

show more ...


# 336e2bd9 27-Sep-2009 Tilmann Scheller <tilmann.scheller@googlemail.com>

Use explicit structs instead of std::pair to map callee saved regs to spill slots.

llvm-svn: 82909


# d60367c1 25-Sep-2009 Bob Wilson <bob.wilson@apple.com>

pr4926: ARM requires the stack pointer to be aligned, even for leaf functions.
For the AAPCS ABI, SP must always be 4-byte aligned, and at any "public
interface" it must be 8-byte aligned. For the o

pr4926: ARM requires the stack pointer to be aligned, even for leaf functions.
For the AAPCS ABI, SP must always be 4-byte aligned, and at any "public
interface" it must be 8-byte aligned. For the older ARM APCS ABI, the stack
alignment is just always 4 bytes. For X86, we currently align SP at
entry to a function (e.g., to 16 bytes for Darwin), but no stack alignment
is needed at other times, such as for a leaf function.

After discussing this with Dan, I decided to go with the approach of adding
a new "TransientStackAlignment" field to TargetFrameInfo. This value
specifies the stack alignment that must be maintained even in between calls.
It defaults to 1 except for ARM, where it is 4. (Some other targets may
also want to set this if they have similar stack requirements. It's not
currently required for PPC because it sets targetHandlesStackFrameRounding
and handles the alignment in target-specific code.) The existing StackAlignment
value specifies the alignment upon entry to a function, which is how we've
been using it anyway.

llvm-svn: 82767

show more ...


# 372e9a38 24-Sep-2009 Jim Grosbach <grosbach@apple.com>

Start of revamping the register scavenging in PEI. ARM Thumb1 is the driving
interest for this, as it currently reserves a register rather than using
the scavenger for matierializing constants as nee

Start of revamping the register scavenging in PEI. ARM Thumb1 is the driving
interest for this, as it currently reserves a register rather than using
the scavenger for matierializing constants as needed.

Instead of scavenging registers on the fly while eliminating frame indices,
new virtual registers are created, and then a scavenged collectively in a
post-pass over the function. This isolates the bits that need to interact
with the scavenger, and sets the stage for more intelligent use, and reuse,
of scavenged registers.

For the time being, this is disabled by default. Once the bugs are worked out,
the current scavenging calls in replaceFrameIndices() will be removed and
the post-pass scavenging will be the default. Until then,
-enable-frame-index-scavenging enables the new code. Currently, only the
Thumb1 back end is set up to use it.

llvm-svn: 82734

show more ...


# 5fe313d6 24-Sep-2009 Bob Wilson <bob.wilson@apple.com>

Fix a hypothetical problem for targets with StackGrowsUp and a non-zero
LocalAreaOffset. (We don't have any of those right now.)
PEI::calculateFrameObjectOffsets includes the absolute value of the
L

Fix a hypothetical problem for targets with StackGrowsUp and a non-zero
LocalAreaOffset. (We don't have any of those right now.)
PEI::calculateFrameObjectOffsets includes the absolute value of the
LocalAreaOffset in the cumulative offset value used to calculate the
stack frame size. It then adds the raw value of the LocalAreaOffset
to the stack size. For a StackGrowsDown target, that raw value is negative
and has the effect of cancelling out the absolute value that was added
earlier, but that obviously won't work for a StackGrowsUp target. Change
to subtract the absolute value of the LocalAreaOffset.

llvm-svn: 82693

show more ...


1...<<1112131415161718192021