| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 110091
|
|
|
|
|
|
| |
RegisterAnalysisGroup<> for pass registration.
llvm-svn: 109058
|
|
|
|
|
|
|
|
| |
working again. I don't see why this patch
would cause them to fail the way they are, but none of the other intervening patches seem likely either.
llvm-svn: 108818
|
|
|
|
| |
llvm-svn: 108813
|
|
|
|
|
|
|
| |
superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is
breaking teh everything.
llvm-svn: 108805
|
|
|
|
|
|
| |
(StaticPassInfo) and a constructor-ful subclass (PassInfo).
llvm-svn: 108794
|
|
|
|
| |
llvm-svn: 107777
|
|
|
|
|
|
|
|
|
|
|
| |
interface needs implementations to be consistent, so any code which
wants to support different semantics must use a different interface.
It's not currently worthwhile to add a new interface for this new
concept.
Document that AliasAnalysis doesn't support cross-function queries.
llvm-svn: 107776
|
|
|
|
|
|
|
| |
make it more aggressive in cases where both pointers are known to live
in the same function.
llvm-svn: 107420
|
|
|
|
| |
llvm-svn: 107175
|
|
|
|
|
|
| |
XDEBUG is enabled.
llvm-svn: 107125
|
|
|
|
|
|
| |
be called.
llvm-svn: 107124
|
|
|
|
|
|
|
| |
properly handles instructions and arguments defined in different
functions, or across recursive function iterations.
llvm-svn: 107109
|
|
|
|
|
|
|
| |
code in unreachable blocks, which have have use-def cycles.
This fixes PR7514.
llvm-svn: 107071
|
|
|
|
| |
llvm-svn: 106697
|
|
|
|
|
|
|
| |
Probably the best way to know that all getOperand() calls have been handled
is to replace that API instead of updating.
llvm-svn: 101579
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with a fix for self-hosting
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101465
|
|
|
|
| |
llvm-svn: 101434
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with a fix
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101397
|
|
|
|
| |
llvm-svn: 101368
|
|
|
|
|
|
|
|
|
|
| |
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101364
|
|
|
|
| |
llvm-svn: 100789
|
|
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
|
|
|
| |
llvm-svn: 94013
|
|
|
|
| |
llvm-svn: 89956
|
|
|
|
| |
llvm-svn: 89955
|
|
|
|
|
|
| |
to exercise this though.
llvm-svn: 89954
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
allows us to compile the example in readme.txt into:
LBB1_1: ## %bb
movl 4(%rdx,%rax), %ecx
movl %ecx, %esi
imull (%rdx,%rax), %esi
imull %esi, %ecx
movl %esi, 8(%rdx,%rax)
imull %ecx, %esi
movl %ecx, 12(%rdx,%rax)
movl %esi, 16(%rdx,%rax)
imull %ecx, %esi
movl %esi, 20(%rdx,%rax)
addq $16, %rax
cmpq $4000, %rax
jne LBB1_1
instead of:
LBB1_1:
movl (%rdx,%rax), %ecx
imull 4(%rdx,%rax), %ecx
movl %ecx, 8(%rdx,%rax)
imull 4(%rdx,%rax), %ecx
movl %ecx, 12(%rdx,%rax)
imull 8(%rdx,%rax), %ecx
movl %ecx, 16(%rdx,%rax)
imull 12(%rdx,%rax), %ecx
movl %ecx, 20(%rdx,%rax)
addq $16, %rax
cmpq $4000, %rax
jne LBB1_1
GCC (4.2) doesn't seem to be able to eliminate the loads in this
testcase either, it generates:
L2:
movl (%rdx), %eax
imull 4(%rdx), %eax
movl %eax, 8(%rdx)
imull 4(%rdx), %eax
movl %eax, 12(%rdx)
imull 8(%rdx), %eax
movl %eax, 16(%rdx)
imull 12(%rdx), %eax
movl %eax, 20(%rdx)
addl $4, %ecx
addq $16, %rdx
cmpl $1002, %ecx
jne L2
llvm-svn: 89952
|
|
|
|
| |
llvm-svn: 89951
|
|
|
|
|
|
| |
DecomposeGEPExpression. This dramatically simplifies and shrinks the code by eliminating the horrible CheckGEPInstructions method, fixes a miscompilation (@test3) and makes the code more aggressive. In particular, we now handle the @test4 case, which is reduced from the SmallPtrSet constructor. Missing this caused us to emit a variable length memset instead of a fixed size one.
llvm-svn: 89922
|
|
|
|
|
|
| |
Value::getUnderlyingObject does (when TD is around). This allows us to avoid calling DecomposeGEPExpression unless the ultimate alias check we care about passes, speedup up BasicAA a bit.
llvm-svn: 89920
|
|
|
|
|
|
| |
list of scaled offsets. Use this to eliminate some previous ad-hoc code which was subtly broken (it assumed all Constant*'s were non-zero, but strange constant express could be zero).
llvm-svn: 89915
|
|
|
|
| |
llvm-svn: 89914
|
|
|
|
| |
llvm-svn: 89666
|
|
|
|
|
|
|
|
| |
check if
we have a non-constant pointer. Constant pointers can't be local.
llvm-svn: 89665
|
|
|
|
| |
llvm-svn: 89664
|
|
|
|
| |
llvm-svn: 89663
|
|
|
|
| |
llvm-svn: 89602
|
|
|
|
| |
llvm-svn: 89601
|
|
|
|
| |
llvm-svn: 89600
|
|
|
|
|
|
|
|
| |
The hasNoModRefInfoForCalls isn't worth it as a filter because
basicaa provides m/r info and everything chains to it, so remove
it.
llvm-svn: 89599
|
|
|
|
|
|
|
|
| |
if it is not ultimately captured. Teach BasicAliasAnalysis that a
local object address which does not escape and is never stored does
not alias with a value resulting from a load.
llvm-svn: 89398
|
|
|
|
|
|
| |
allocated until runtime (such as an alloca). Patch by Hans Wennborg!
llvm-svn: 88760
|
|
|
|
|
|
| |
GVN to be more aggressive. Patch by Hans Wennborg! (with a comment added by me)
llvm-svn: 86582
|
|
|
|
|
|
| |
from various APIs, addressing PR5325.
llvm-svn: 86231
|
|
|
|
| |
llvm-svn: 85286
|
|
|
|
|
|
| |
to free()
llvm-svn: 85181
|
|
|
|
|
|
| |
aggressive on PHI instructions.
llvm-svn: 85158
|
|
|
|
|
|
| |
VISIBILITY_HIDDEN removal.
llvm-svn: 85043
|
|
|
|
|
|
|
| |
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
llvm-svn: 85042
|