| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
critical in the linux kernel for pointer analysis correctness
llvm-svn: 30496
|
|
|
|
| |
llvm-svn: 30482
|
|
|
|
|
|
|
| |
that we can't modify the CFG any more, at least not until it's possible
to update the dominator tree (PR217).
llvm-svn: 30469
|
|
|
|
| |
llvm-svn: 30465
|
|
|
|
|
|
|
|
| |
... args, remove the '...'.
This is Transforms/DeadArgElim/dead_vaargs.ll
llvm-svn: 30459
|
|
|
|
| |
llvm-svn: 30456
|
|
|
|
| |
llvm-svn: 30450
|
|
|
|
|
|
| |
Use isLogicalShift/isArithmeticShift to simplify code.
llvm-svn: 30448
|
|
|
|
| |
llvm-svn: 30405
|
|
|
|
|
|
| |
MultiSource/Applications/Burg
llvm-svn: 30397
|
|
|
|
|
|
|
|
| |
revealed these
changes to be incorrect. They just weren't showing up in any of our current testcases.
llvm-svn: 30385
|
|
|
|
|
|
|
|
|
| |
DLL* linkages got full (I hope) codegeneration support in C & both x86
assembler backends.
External weak linkage added for future use, we don't provide any
codegeneration, etc. support for it.
llvm-svn: 30374
|
|
|
|
|
|
|
| |
This folds unconditional branches that are often produced by code
specialization.
llvm-svn: 30307
|
|
|
|
| |
llvm-svn: 30305
|
|
|
|
| |
llvm-svn: 30304
|
|
|
|
| |
llvm-svn: 30303
|
|
|
|
| |
llvm-svn: 30298
|
|
|
|
| |
llvm-svn: 30281
|
|
|
|
|
|
| |
Handle this. This fixes PR908 and Transforms/LICM/2006-09-12-DeadUserOfSunkInstr.ll
llvm-svn: 30275
|
|
|
|
| |
llvm-svn: 30266
|
|
|
|
| |
llvm-svn: 30251
|
|
|
|
|
|
| |
bit. This fixes Regression/Transforms/TailDup/MergeTest.ll
llvm-svn: 30237
|
|
|
|
|
|
|
|
|
| |
operations (like findProperties) should be faster, at the expense of
unionSets being slower in cases that are rare in practise.
Don't erase a dead Instruction. This fixes a memory corruption issue.
llvm-svn: 30235
|
|
|
|
| |
llvm-svn: 30234
|
|
|
|
| |
llvm-svn: 30231
|
|
|
|
|
|
| |
This implements select.ll::test18.
llvm-svn: 30230
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For Transforms/TailDup/if-tail-dup.ll, f.e., it produces:
_foo:
movl 8(%esp), %eax
movl 4(%esp), %ecx
testl $1, %ecx
je LBB1_2 #cond_next
LBB1_1: #cond_true
movl $1, (%eax)
LBB1_2: #cond_next
testl $2, %ecx
je LBB1_4 #cond_next10
LBB1_3: #cond_true6
movl $1, 4(%eax)
LBB1_4: #cond_next10
testl $4, %ecx
je LBB1_6 #cond_next18
LBB1_5: #cond_true14
movl $1, 8(%eax)
LBB1_6: #cond_next18
testl $8, %ecx
je LBB1_8 #return
LBB1_7: #cond_true22
movl $1, 12(%eax)
ret
LBB1_8: #return
ret
instead of:
_foo:
movl 4(%esp), %eax
testl $2, %eax
sete %cl
movl 8(%esp), %edx
testl $1, %eax
je LBB1_2 #cond_next
LBB1_1: #cond_true
movl $1, (%edx)
testb %cl, %cl
jne LBB1_4 #cond_next10
jmp LBB1_3 #cond_true6
LBB1_2: #cond_next
testb %cl, %cl
jne LBB1_4 #cond_next10
LBB1_3: #cond_true6
movl $1, 4(%edx)
testl $4, %eax
je LBB1_6 #cond_next18
jmp LBB1_5 #cond_true14
LBB1_4: #cond_next10
testl $4, %eax
je LBB1_6 #cond_next18
LBB1_5: #cond_true14
movl $1, 8(%edx)
testl $8, %eax
je LBB1_8 #return
jmp LBB1_7 #cond_true22
LBB1_6: #cond_next18
testl $8, %eax
je LBB1_8 #return
LBB1_7: #cond_true22
movl $1, 12(%edx)
ret
LBB1_8: #return
ret
llvm-svn: 30158
|
|
|
|
|
|
| |
lowerinvoke regtests.
llvm-svn: 30115
|
|
|
|
|
|
|
| |
Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example
llvm-svn: 30095
|
|
|
|
|
|
| |
their recursive calls.
llvm-svn: 30057
|
|
|
|
|
|
|
|
| |
Reorder operations to remove duplicated work.
Fix to leave floating-point types out of the optimization.
Add tests to predsimplify.ll for SwitchInst and SelectInst handling.
llvm-svn: 30055
|
|
|
|
|
|
| |
corrects missing optimization opportunity removing cases from a switch.
llvm-svn: 30009
|
|
|
|
|
|
|
|
| |
another Value) weren't being found by findProperties.
This fixes predsimplify.ll test6, a missed optimization opportunity.
llvm-svn: 29991
|
|
|
|
|
|
|
|
|
| |
If a branch's condition has become a ConstantBool, simplify it immediately.
Removing the edge saves work and exposes up more optimization opportunities
in the pass.
Add support for SelectInst.
llvm-svn: 29970
|
|
|
|
|
|
|
|
| |
exit blocks. The output is dependent on addresses of basic block.
Add and use Loop::getUniqueExitBlocks.
llvm-svn: 29966
|
|
|
|
| |
llvm-svn: 29950
|
|
|
|
|
|
|
| |
and simplifies expressions. This implements the optimization described
in PR807.
llvm-svn: 29947
|
|
|
|
|
|
|
|
| |
speedup of
gccas on 252.eon
llvm-svn: 29936
|
|
|
|
| |
llvm-svn: 29932
|
|
|
|
| |
llvm-svn: 29925
|
|
|
|
| |
llvm-svn: 29911
|
|
|
|
|
|
|
|
| |
This was
causing a crash in 175.vpr
llvm-svn: 29887
|
|
|
|
| |
llvm-svn: 29886
|
|
|
|
| |
llvm-svn: 29874
|
|
|
|
|
|
|
|
|
| |
today,
I'm going to wait to put this in HEAD until tomorrow, so as not to clutter the nightly
tester.
llvm-svn: 29868
|
|
|
|
|
|
|
|
| |
while, but I
forgot to put in the analysis usage.
llvm-svn: 29867
|
|
|
|
|
|
|
|
| |
utility of the LoopUnroll pass.
Also, add a testcase for multiblock-loop unrolling.
llvm-svn: 29859
|
|
|
|
| |
llvm-svn: 29765
|
|
|
|
|
|
| |
Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll
llvm-svn: 29673
|
|
|
|
|
|
|
|
|
| |
Not only will this take huge amounts of compile time, the resultant loop nests
won't be useful for optimization. This reduces loopsimplify time on
Transforms/LoopSimplify/2006-08-11-LoopSimplifyLongTime.ll from ~32s to ~0.4s
with a debug build of llvm on a 2.7Ghz G5.
llvm-svn: 29647
|