| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
corrupted when setjmp returns again.
llvm-svn: 131399
|
| |
|
|
|
|
| |
the users.
llvm-svn: 131277
|
| |
|
|
|
|
|
| |
Interleave IV simplifications. Currently involves EliminateComparison
and EliminateRemainder. Next I'll add EliminateExtend.
llvm-svn: 131210
|
| |
|
|
|
|
|
| |
return the pointer being dereferenced, it returns the pointee, but a call
might return the pointer itself.
llvm-svn: 130979
|
| |
|
|
| |
llvm-svn: 130895
|
| |
|
|
| |
llvm-svn: 130880
|
| |
|
|
| |
llvm-svn: 130876
|
| |
|
|
| |
llvm-svn: 130869
|
| |
|
|
|
|
|
|
| |
This adds functionality to remove size/zero extension during indvars
without generating a canonical IV and rewriting all IV users. It's
disabled by default so should have no effect on codegen. Work in progress.
llvm-svn: 130829
|
| |
|
|
|
|
|
|
|
| |
Only create a canonical IV for backedge taken count if it will
actually be used by LinearFunctionTestReplace. And some related
cleanup, preparing to reduce dependence on canonical IVs.
No significant effect on x86 or arm in the test-suite.
llvm-svn: 130799
|
| |
|
|
|
|
|
|
| |
model constants which can be added to base registers via add-immediate
instructions which don't require an additional register to materialize
the immediate.
llvm-svn: 130743
|
| |
|
|
|
|
| |
problem reported on cfe-dev.
llvm-svn: 130661
|
| |
|
|
| |
llvm-svn: 130536
|
| |
|
|
| |
llvm-svn: 130450
|
| |
|
|
| |
llvm-svn: 130426
|
| |
|
|
| |
llvm-svn: 130419
|
| |
|
|
|
|
|
|
|
|
|
|
| |
a nice and tidy:
%x1 = load i32* %0, align 4
%1 = icmp eq i32 %x1, 1179403647
br i1 %1, label %if.then, label %if.end
instead of doing lots of loads and branches. May the FreeBSD bootloader
long fit in its allocated space.
llvm-svn: 130416
|
| |
|
|
| |
llvm-svn: 130414
|
| |
|
|
| |
llvm-svn: 130408
|
| |
|
|
|
|
| |
static functions instead of passing around tons of random ivars.
llvm-svn: 130403
|
| |
|
|
| |
llvm-svn: 130401
|
| |
|
|
|
|
|
|
|
|
|
| |
wider load would allow elimination of subsequent loads, and when the wider
load is still a native integer type. This eliminates a ton of loads on
various benchmarks involving struct fields, though it is somewhat hobbled
by clang not being very aggressive about field alignment.
This is yet another step along the way towards resolving PR6627.
llvm-svn: 130390
|
| |
|
|
|
|
| |
stage2 compiler error.
llvm-svn: 130350
|
| |
|
|
|
|
|
|
|
| |
Modified LinearFunctionTestReplace to push the condition on the dead
list instead of eagerly deleting it. This can cause unnecessary
IV rewrites, which should have no effect on codegen and will not be an
issue once we stop generating canonical IVs.
llvm-svn: 130340
|
| |
|
|
|
|
| |
Assign DebugLoc to this new trap instruction.
llvm-svn: 130315
|
| |
|
|
|
|
|
| |
translation fails. We were bailing out in some cases that would
cause us to miss GVN'ing some non-local cases away.
llvm-svn: 130206
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
return it as a clobber. This allows GVN to do smart things.
Enhance GVN to be smart about the case when a small load is clobbered
by a larger overlapping load. In this case, forward the value. This
allows us to compile stuff like this:
int test(void *P) {
int tmp = *(unsigned int*)P;
return tmp+*((unsigned char*)P+1);
}
into:
_test: ## @test
movl (%rdi), %ecx
movzbl %ch, %eax
addl %ecx, %eax
ret
which has one load. We already handled the case where the smaller
load was from a must-aliased base pointer.
llvm-svn: 130180
|
| |
|
|
| |
llvm-svn: 130068
|
| |
|
|
|
|
|
| |
generated by llvm-gcc, since llvm-gcc uses 2 i64s for passing a 4 x float
vector on ARM rather than an i64 array like Clang.
llvm-svn: 129878
|
| |
|
|
|
|
| |
delete it.
llvm-svn: 129877
|
| |
|
|
|
|
| |
more cases.
llvm-svn: 129876
|
| |
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129558
|
| |
|
|
|
|
|
|
|
|
| |
repeatedly undo each other. The solution is to perform more aggressive constant folding to make one of the edges just folded away rather than trying to thread it.
Fixes <rdar://problem/9284786>.
Discovered with CSmith.
llvm-svn: 129538
|
| |
|
|
| |
llvm-svn: 129532
|
| |
|
|
| |
llvm-svn: 129509
|
| |
|
|
| |
llvm-svn: 129501
|
| |
|
|
|
|
|
|
| |
the same allocation size but different primitive sizes(e.g., <3xi32> and
<4xi32>). When ScalarRepl promotes them, it can't use a bit cast but
should use a shuffle vector instead.
llvm-svn: 129472
|
| |
|
|
| |
llvm-svn: 129450
|
| |
|
|
|
|
|
|
|
| |
LoopUnroll class's ctor. Doing so
will allow multiple context with different loop unroll parameters to run. This is a minor change and no effect
on existing application.
llvm-svn: 129449
|
| |
|
|
| |
llvm-svn: 129447
|
| |
|
|
| |
llvm-svn: 129419
|
| |
|
|
| |
llvm-svn: 129403
|
| |
|
|
|
|
|
|
|
| |
Now that we have a first-class way to represent unaligned loads, the unaligned
load intrinsics are superfluous.
First part of <rdar://problem/8460511>.
llvm-svn: 129401
|
| |
|
|
|
|
|
|
|
| |
reassociation opportunities are exposed. This fixes a bug where
the nested reassociation expects to be the IR to be consistent,
but it isn't, because the outer reassociation has disconnected
some of the operands. rdar://9167457
llvm-svn: 129324
|
| |
|
|
| |
llvm-svn: 129271
|
| |
|
|
|
|
| |
indirectbr.
llvm-svn: 129203
|
| |
|
|
|
|
|
| |
delete the instruction pointed to by CGP's current instruction
iterator, leading to a crash on the testcase. This fixes PR9578.
llvm-svn: 129200
|
| |
|
|
| |
llvm-svn: 129087
|
| |
|
|
|
|
|
|
|
|
|
| |
is equivalent to any other relevant value; it isn't true in general.
If it is equivalent, the LoopPromoter will tell the AST the equivalence.
Also, delete the PreheaderLoad if it is unused.
Chris, since you were the last one to make major changes here, can you check
that this is sane?
llvm-svn: 129049
|
| |
|
|
|
|
|
|
|
|
|
|
| |
that one of the numbers is signed while the other is unsigned. This could lead
to a wrong result when the signed was promoted to an unsigned int.
* Add the data layout line to the testcase so that it will test the appropriate
thing.
Patch by David Terei!
llvm-svn: 128577
|