diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2006-03-02 21:38:29 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2006-03-02 21:38:29 +0000 |
| commit | 4e3904f63778d4db6ae5958aabfb3554105adfde (patch) | |
| tree | 615335fe28aebf5e00813de2f4049b52195d8311 /llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp | |
| parent | 85dda9a2bd88b5a360511fe6475f19b0d3ce1063 (diff) | |
| download | bcm5719-llvm-4e3904f63778d4db6ae5958aabfb3554105adfde.tar.gz bcm5719-llvm-4e3904f63778d4db6ae5958aabfb3554105adfde.zip | |
- Fixed some priority calculation bugs that were causing bug 478. Among them:
a predecessor appearing more than once in the operand list was counted as
multiple predecessor; priority1 should be updated during scheduling;
CycleBound was updated after the node is inserted into priority queue; one
of the tie breaking condition was flipped.
- Take into consideration of two address opcodes. If a predecessor is a def&use
operand, it should have a higher priority.
- Scheduler should also favor floaters, i.e. nodes that do not have real
predecessors such as MOV32ri.
- The scheduling fixes / tweaks fixed bug 478:
.text
.align 4
.globl _f
_f:
movl 4(%esp), %eax
movl 8(%esp), %ecx
movl %eax, %edx
imull %ecx, %edx
imull %eax, %eax
imull %ecx, %ecx
addl %eax, %ecx
leal (%ecx,%edx,2), %eax
ret
It is also a slight performance win (1% - 3%) for most tests.
llvm-svn: 26470
Diffstat (limited to 'llvm/lib/Analysis/DataStructure/EquivClassGraphs.cpp')
0 files changed, 0 insertions, 0 deletions

