- Mar 14, 2011
-
-
Andrew Trick authored
properties. Added the self-wrap flag for SCEV::AddRecExpr. A slew of temporary FIXMEs indicate the intention of the no-self-wrap flag without changing behavior in this revision. llvm-svn: 127590
-
Andrew Trick authored
llvm-svn: 127589
-
Jin-Gu Kang authored
Early CSE pass so this patch reverts it to original source code. llvm-svn: 127574
-
- Mar 13, 2011
-
-
Jin-Gu Kang authored
load and store reference same memory location, the memory location is represented by getelementptr with two uses (load and store) and the getelementptr's base is alloca with single use. At this point, instructions from alloca to store can be removed. (this pattern is generated when bitfield is accessed.) For example, %u = alloca %struct.test, align 4 ; [#uses=1] %0 = getelementptr inbounds %struct.test* %u, i32 0, i32 0;[#uses=2] %1 = load i8* %0, align 4 ; [#uses=1] %2 = and i8 %1, -16 ; [#uses=1] %3 = or i8 %2, 5 ; [#uses=1] store i8 %3, i8* %0, align 4 llvm-svn: 127565
-
- Mar 12, 2011
-
-
Jin-Gu Kang authored
llvm-svn: 127539
-
- Mar 11, 2011
-
-
Cameron Zwarich authored
Optimize trivial branches in CodeGenPrepare, which often get created from the lowering of objectsize intrinsics. Unfortunately, a number of tests were relying on llc not optimizing trivial branches, so I had to add an option to allow them to continue to test what they originally tested. This fixes <rdar://problem/8785296> and <rdar://problem/9112893>. llvm-svn: 127498
-
Daniel Dunbar authored
created from the", it broke some GCC test suite tests. llvm-svn: 127477
-
Benjamin Kramer authored
InstCombine: Fix a thinko where transform an icmp under the assumption that it's a zero comparison when it's not. Fixes PR9454. llvm-svn: 127464
-
Cameron Zwarich authored
lowering of objectsize intrinsics. Unfortunately, a number of tests were relying on llc not optimizing trivial branches, so I had to add an option to allow them to continue to test what they originally tested. This fixes <rdar://problem/8785296> and <rdar://problem/9112893>. llvm-svn: 127459
-
- Mar 10, 2011
-
-
Dan Gohman authored
Value, not an Instruction, so casting is not necessary. Also, it's theoretically possible that the Value is not an Instruction, since WeakVH follows RAUWs. llvm-svn: 127427
-
Dan Gohman authored
after it has finished all of its reassociations, because its habit of unlinking operands and holding them in a datastructure while working means that it's not easy to determine when an instruction is really dead until after all its regular work is done. rdar://9096268. llvm-svn: 127424
-
Benjamin Kramer authored
This happens a lot in clang-compiled C++ code because it adds overflow checks to operator new[]: unsigned *foo(unsigned n) { return new unsigned[n]; } We can optimize away the overflow check on 64 bit targets because (uint64_t)n*4 cannot overflow. llvm-svn: 127418
-
- Mar 09, 2011
-
-
Devang Patel authored
llvm-svn: 127362
-
Devang Patel authored
llvm-svn: 127352
-
Cameron Zwarich authored
alloca as both integer and floating-point vectors of the same size. Bugpoint is not cooperating with me, but I'll try to find a manual testcase tomorrow. llvm-svn: 127320
-
Cameron Zwarich authored
a union of a float, <2 x float>, and <4 x float>. This mostly comes up with the use of vector intrinsics, especially in NEON when programmers know the layout of the register file. This enables codegen to eliminate a lot of the subregister traffic it would otherwise generate. This commit only enables this for a small number of floating-point cases, but a lot more integer cases. I assume this is okay for all ports, but I did not do extensive testing of the quality of code involving i512 vectors and the like. If there is a use case where this generates worse code than before, let me know and we can scale it back. This fixes <rdar://problem/9036264>. llvm-svn: 127317
-
Cameron Zwarich authored
more complicated. llvm-svn: 127316
-
Eli Friedman authored
INT_MIN % -1. llvm-svn: 127306
-
Eli Friedman authored
reachable uses, but there still might be uses in dead blocks. Use the standard solution of replacing all the uses with undef. This is a rare case because it's very sensitive to phase ordering in SimplifyCFG. llvm-svn: 127299
-
- Mar 08, 2011
-
-
Devang Patel authored
llvm-svn: 127282
-
Nick Lewycky authored
llvm-svn: 127220
-
Devang Patel authored
llvm-svn: 127214
-
- Mar 07, 2011
-
-
Devang Patel authored
Radar 9097659 llvm-svn: 127182
-
Nick Lewycky authored
then the result could go either way. If it's provably positive then so is the srem. Fixes PR9343 #7! llvm-svn: 127146
-
Rafael Espindola authored
thing for variables. llvm-svn: 127138
-
- Mar 06, 2011
-
-
Nick Lewycky authored
the value splatted into every element. Extend this to getTrue and getFalse which by providing new overloads that take Types that are either i1 or <N x i1>. Use it in InstCombine to add vector support to some code, fixing PR8469! llvm-svn: 127116
-
- Mar 05, 2011
-
-
Benjamin Kramer authored
InstCombine: We know the number of items initially added to the worklist map, reserve space early to avoid rehashing. llvm-svn: 127089
-
Cameron Zwarich authored
the percentage of time spent in CodeGenPrepare when llcing 403.gcc from 12.6% to 1.8% of total llc time. llvm-svn: 127069
-
Nick Lewycky authored
possible. This goes into instcombine and instsimplify because instsimplify doesn't need to check hasOneUse since it returns (almost exclusively) constants. This fixes PR9343 #4 #5 and #8! llvm-svn: 127064
-
Nick Lewycky authored
true/false or "icmp slt/sge Y, 0". llvm-svn: 127063
-
- Mar 04, 2011
-
-
Jakob Stoklund Olesen authored
Avoid colliding with the sentinels, hopefully unbreaking llvm-gcc-x86_64-linux-selfhost. llvm-svn: 126982
-
- Mar 03, 2011
-
-
Richard Osborne authored
llvm-svn: 126941
-
Richard Osborne authored
and siprintf is available on the target. llvm-svn: 126940
-
Richard Osborne authored
and siprintf is available on the target. llvm-svn: 126937
-
Richard Osborne authored
and iprintf is available on the target. Currently iprintf is only marked as being available on the XCore. llvm-svn: 126935
-
- Mar 02, 2011
-
-
Cameron Zwarich authored
llvm-svn: 126826
-
Cameron Zwarich authored
llvm-svn: 126825
-
- Mar 01, 2011
-
-
Cameron Zwarich authored
addressing code. On 403.gcc this almost halves CodeGenPrepare time and reduces total llc time by 9.5%. Unfortunately, getNumUses() is still the hottest function in llc. llvm-svn: 126782
-
Anders Carlsson authored
intersection of the LHS and RHS ConstantRanges and return "false" when the range is empty. This simplifies some code and catches some extra cases. llvm-svn: 126744
-
Eli Friedman authored
llvm-svn: 126720
-