On May 31, 2007, at 3:34 PM, Lauro Ramos Venancio wrote:
> I'm not disabling the use of RS when FP is used. About 30 lines
> before my
> change, there is this code:
>
> if (RS && RegInfo->hasFP(Fn)) {
>int SFI = RS->getScavengingFrameIndex();
>if (SFI >= 0) {
> ...
>
> The bug was: the
I'm not disabling the use of RS when FP is used. About 30 lines before my
change, there is this code:
if (RS && RegInfo->hasFP(Fn)) {
int SFI = RS->getScavengingFrameIndex();
if (SFI >= 0) {
...
The bug was: the PrologEpilogInserter has two chunks of code to define the
ScavengingFrameInde
Hi Lauro,
This is the wrong fix.
Even if disabling the use of RS when FP is used is correct, that's up
to the target to not instantiate RS when it detects that. PEI
shouldn't do this check. Please revert this fix. I'm going to reopen
the bug because we need a proper fix.
Evan
On May 31, 2
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.87 -> 1.88
---
Log message:
Fix PR1424: http://llvm.org/PR1424 .
When a function has FP, the register scavenging spill slot offset already
was calculated.
---
Diffs of the changes: (+1 -1)
PrologEpilogInserter.cpp
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.83 -> 1.84
RegisterScavenging.cpp updated: 1.16 -> 1.17
---
Log message:
If call frame is not part of stack frame and no dynamic alloc,
eliminateFrameIndex() must adjust SP offset with size of call frames.
---
Diffs of
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.82 -> 1.83
---
Log message:
Under normal circumstances, when a frame pointer is not required, we reserve
argument space for call sites in the function immediately on entry to the
current function. This eliminates the nee
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.81 -> 1.82
RegAllocLinearScan.cpp updated: 1.144 -> 1.145
RegAllocLocal.cpp updated: 1.101 -> 1.102
RegAllocSimple.cpp updated: 1.82 -> 1.83
VirtRegMap.cpp updated: 1.109 -> 1.110
---
Log message:
Match MachineFunction::
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.80 -> 1.81
---
Log message:
support for >4G stack frames
---
Diffs of the changes: (+1 -1)
PrologEpilogInserter.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: llvm/lib/CodeGen/PrologEpilogIns
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.79 -> 1.80
---
Log message:
support > 4G stack objects
---
Diffs of the changes: (+2 -2)
PrologEpilogInserter.cpp |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Index: llvm/lib/CodeGen/PrologEpilogI
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.78 -> 1.79
---
Log message:
Fix a bug introduced with my previous patch, where it didn't correctly handle
instructions which replace themselves when FI's are rewritten (common on ppc).
This fixes CodeGen/PowerPC/2006-10-
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.77 -> 1.78
---
Log message:
Fix CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll and PR1308:
http://llvm.org/PR1308 :
some instructions can have multiple frame indices in them. If this happens,
rewrite all of them.
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.76 -> 1.77
---
Log message:
If target decides to create an emergency spill slot, make sure it's closest to
SP or frame pointer.
---
Diffs of the changes: (+56 -7)
PrologEpilogInserter.cpp | 63
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.75 -> 1.76
---
Log message:
Delete register scavenger when done with it.
---
Diffs of the changes: (+2 -0)
PrologEpilogInserter.cpp |2 ++
1 files changed, 2 insertions(+)
Index: llvm/lib/CodeGen/PrologEpilogIn
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.74 -> 1.75
---
Log message:
Interface clean up.
---
Diffs of the changes: (+1 -1)
PrologEpilogInserter.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: llvm/lib/CodeGen/PrologEpilogInserter.cpp
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.73 -> 1.74
---
Log message:
add a newline at end of file
---
Diffs of the changes: (+1 -0)
PrologEpilogInserter.cpp |1 +
1 files changed, 1 insertion(+)
Index: llvm/lib/CodeGen/PrologEpilogInserter.cpp
diff -
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.72 -> 1.73
---
Log message:
Make requiresRegisterScavenging determination on a per MachineFunction basis.
---
Diffs of the changes: (+1 -1)
PrologEpilogInserter.cpp |2 +-
1 files changed, 1 insertion(+), 1 delet
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.71 -> 1.72
---
Log message:
MRegisterInfo disowns RegScavenger. It's immutable.
---
Diffs of the changes: (+2 -2)
PrologEpilogInserter.cpp |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Index: llvm/l
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.70 -> 1.71
---
Log message:
Let MRegisterInfo now owns RegScavenger.
---
Diffs of the changes: (+3 -3)
PrologEpilogInserter.cpp |6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
Index: llvm/lib/CodeGe
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.69 -> 1.70
RegisterScavenging.cpp updated: 1.3 -> 1.4
---
Log message:
forward() should not increment internal iterator. Its client may insert
instruction between now and next forward() call.
---
Diffs of the changes:
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.68 -> 1.69
---
Log message:
First potential client of register scavenger.
---
Diffs of the changes: (+13 -4)
PrologEpilogInserter.cpp | 17 +
1 files changed, 13 insertions(+), 4 deletions(-)
Inde
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.66 -> 1.67
---
Log message:
Added a MRegisterInfo hook that tells PEI the target is responsible for
rounding the stack frame to a multiple of stack alignment.
---
Diffs of the changes: (+3 -2)
PrologEpilogInserter.cp
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.65 -> 1.66
---
Log message:
PEI is now responsible for adding MaxCallFrameSize to frame size and align the
stack. Each target can further adjust the frame size if necessary.
---
Diffs of the changes: (+16 -1)
Prolog
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.64 -> 1.65
---
Log message:
Remove an unused variable.
---
Diffs of the changes: (+0 -1)
PrologEpilogInserter.cpp |1 -
1 files changed, 1 deletion(-)
Index: llvm/lib/CodeGen/PrologEpilogInserter.cpp
diff -u ll
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.63 -> 1.64
---
Log message:
We not align the final stack slot but instead let the target do so in
emitPrologue(). Each target can make adjustments to the stack frame and
re-align the stack as it deem appropriate. Do no
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.62 -> 1.63
---
Log message:
- Fixing naming inconsistency: calleesave -> calleesaved.
- Make use of spillCalleeSavedRegisters() and restoreCalleeSavedRegisters().
---
Diffs of the changes: (+30 -24)
PrologEpilogInser
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.61 -> 1.62
---
Log message:
Initialize {Min|Max}CSFrameIndex properly.
---
Diffs of the changes: (+4 -2)
PrologEpilogInserter.cpp |6 --
1 files changed, 4 insertions(+), 2 deletions(-)
Index: llvm/lib/Code
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.60 -> 1.61
---
Log message:
TargetRegisterClass specifies the desired spill alignment. However, it cannot
be honored if stack alignment is smaller.
---
Diffs of the changes: (+6 -1)
PrologEpilogInserter.cpp |7 +
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.59 -> 1.60
---
Log message:
PEI now place callee save spills closest to the address pointed to by the
incoming stack. This allows X86 backend to use push / pop in epilogue /
prologue.
---
Diffs of the changes: (+67 -1
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.58 -> 1.59
---
Log message:
Rename function. It's determining which callee-save registers to save.
---
Diffs of the changes: (+7 -7)
PrologEpilogInserter.cpp | 14 +++---
1 files changed, 7 insertions(+), 7
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.56 -> 1.57
---
Log message:
Tidy up.
---
Diffs of the changes: (+4 -2)
PrologEpilogInserter.cpp |6 --
1 files changed, 4 insertions(+), 2 deletions(-)
Index: llvm/lib/CodeGen/PrologEpilogInserter.cpp
diff
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.55 -> 1.56
---
Log message:
Consolidate callee saved register information so that it can me used by debug
information and exception handling.
---
Diffs of the changes: (+21 -20)
PrologEpilogInserter.cpp | 41 +
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.53 -> 1.54
---
Log message:
Remove dead variable
---
Diffs of the changes: (+0 -1)
PrologEpilogInserter.cpp |1 -
1 files changed, 1 deletion(-)
Index: llvm/lib/CodeGen/PrologEpilogInserter.cpp
diff -u llvm/li
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.51 -> 1.52
---
Log message:
The stack alignment is now computed dynamically, just verify it is correct.
---
Diffs of the changes: (+2 -1)
PrologEpilogInserter.cpp |3 ++-
1 files changed, 2 insertions(+), 1 dele
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.50 -> 1.51
---
Log message:
Always compute max align.
---
Diffs of the changes: (+5 -6)
PrologEpilogInserter.cpp | 11 +--
1 files changed, 5 insertions(+), 6 deletions(-)
Index: llvm/lib/CodeGen/PrologE
Changes in directory llvm/lib/CodeGen:
PrologEpilogInserter.cpp updated: 1.49 -> 1.50
---
Log message:
Add the necessary support to the ISel to allow targets to codegen the new
alignment information appropriately. Includes code for PowerPC to support
fixed-size allocas with alignment larger th
35 matches
Mail list logo