| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
that merely add passes. This allows them to be used with either
FunctionPassManager or PassManager, or even with a custom new
kind of pass manager.
llvm-svn: 48256
|
|
|
|
| |
llvm-svn: 47736
|
|
|
|
| |
llvm-svn: 47079
|
|
|
|
| |
llvm-svn: 45972
|
|
|
|
| |
llvm-svn: 45671
|
|
|
|
| |
llvm-svn: 45624
|
|
|
|
| |
llvm-svn: 45572
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--enable-sinking.
It is missing validity checks, so it is known broken. However, it is powerful enough
to compile this contrived code:
void test1(int C, double A, double B, double *P) {
double Tmp = A*A+B*B;
*P = C ? Tmp : A;
}
into:
_test1:
movsd 8(%esp), %xmm0
cmpl $0, 4(%esp)
je LBB1_2 # entry
LBB1_1: # entry
movsd 16(%esp), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
LBB1_2: # entry
movl 24(%esp), %eax
movsd %xmm0, (%eax)
ret
instead of:
_test1:
movsd 16(%esp), %xmm0
mulsd %xmm0, %xmm0
movsd 8(%esp), %xmm1
movapd %xmm1, %xmm2
mulsd %xmm2, %xmm2
addsd %xmm0, %xmm2
cmpl $0, 4(%esp)
je LBB1_2 # entry
LBB1_1: # entry
movapd %xmm2, %xmm1
LBB1_2: # entry
movl 24(%esp), %eax
movsd %xmm1, (%eax)
ret
woo.
llvm-svn: 45570
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_foo:
li r2, 0
LBB1_1: ; bb
li r5, 0
stw r5, 0(r3)
addi r2, r2, 1
addi r3, r3, 4
cmplw cr0, r2, r4
bne cr0, LBB1_1 ; bb
LBB1_2: ; return
blr
to:
_foo:
li r2, 0
li r5, 0
LBB1_1: ; bb
stw r5, 0(r3)
addi r2, r2, 1
addi r3, r3, 4
cmplw cr0, r2, r4
bne cr0, LBB1_1 ; bb
LBB1_2: ; return
blr
ZOMG!! :-)
Moar to come...
llvm-svn: 44687
|
|
|
|
| |
llvm-svn: 40548
|
|
|
|
|
|
| |
subreg insert/extract instruction into register copies. This ensures correct code gen if the coalescer isn't able to remove all subreg instructions.
llvm-svn: 40521
|
|
|
|
| |
llvm-svn: 40123
|
|
|
|
| |
llvm-svn: 39817
|
|
|
|
|
|
|
| |
Change name of -sched option and DEBUG_TYPE to
pre-RA-sched; adjust testcases.
llvm-svn: 39816
|
|
|
|
| |
llvm-svn: 39732
|
|
|
|
| |
llvm-svn: 37651
|
|
|
|
| |
llvm-svn: 37289
|
|
|
|
|
|
|
| |
for a target-dependent default with a command-line override; this way
should be generally usable.
llvm-svn: 37285
|
|
|
|
|
|
| |
"codegenprepare".
llvm-svn: 35529
|
|
|
|
| |
llvm-svn: 35522
|
|
|
|
| |
llvm-svn: 34984
|
|
|
|
| |
llvm-svn: 34496
|
|
|
|
|
|
|
| |
do some common stuff, then on our own add an object file writer (by calling
a concrete function), and then do some finishing stuff, if need be.
llvm-svn: 34032
|
|
|
|
| |
llvm-svn: 32321
|
|
|
|
| |
llvm-svn: 31777
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
empty ranges.
2. Reorg how MachineDebugInfo maintains changes to debug labels.
3. Have dwarf writer use debug label info to simplify scopes and source line
coorespondence.
4. Revert the merging of compile units until I can get the bugs ironed out.
llvm-svn: 31507
|
|
|
|
| |
llvm-svn: 31155
|
|
|
|
|
|
| |
it just deletes empty MBB's. Soon it will do more :)
llvm-svn: 30941
|
|
|
|
|
|
|
| |
Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example
llvm-svn: 30095
|
|
llvm-svn: 30082
|