- Nov 18, 2010
-
-
Chris Lattner authored
if it is passed as a byval argument. The byval argument will just be a read, so it is safe to read from the original global instead. This allows us to promote away the %agg.tmp alloca in PR8582 llvm-svn: 119686
-
Chris Lattner authored
to ignore calls that obviously can't modify the alloca because they are readonly/readnone. llvm-svn: 119683
-
Chris Lattner authored
optimization. If the alloca that is "memcpy'd from constant" also has a memcpy from *it*, ignore it: it is a load. We now optimize the testcase to: define void @test2() { %B = alloca %T %a = bitcast %T* @G to i8* %b = bitcast %T* %B to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %b, i8* %a, i64 124, i32 4, i1 false) call void @bar(i8* %b) ret void } previously we would generate: define void @test() { %B = alloca %T %b = bitcast %T* %B to i8* %G.0 = getelementptr inbounds %T* @G, i32 0, i32 0 %tmp3 = load i8* %G.0, align 4 %G.1 = getelementptr inbounds %T* @G, i32 0, i32 1 %G.15 = bitcast [123 x i8]* %G.1 to i8* %1 = bitcast [123 x i8]* %G.1 to i984* %srcval = load i984* %1, align 1 %B.0 = getelementptr inbounds %T* %B, i32 0, i32 0 store i8 %tmp3, i8* %B.0, align 4 %B.1 = getelementptr inbounds %T* %B, i32 0, i32 1 %B.12 = bitcast [123 x i8]* %B.1 to i8* %2 = bitcast [123 x i8]* %B.1 to i984* store i984 %srcval, i984* %2, align 1 call void @bar(i8* %b) ret void } llvm-svn: 119682
-
Chris Lattner authored
sahf movl 344(%rdi),%r14d we used to produce: t.s:2:1: error: unexpected token in argument list ^ we now produce: t.s:1:11: error: unexpected token in argument list sahf movl 344(%rdi),%r14d ^ rdar://8581401 llvm-svn: 119676
-
Rafael Espindola authored
and testing is easier. A good example is the unknown-location.ll test that now can just look for ".loc 1 0 0". We also don't use a DW_LNE_set_address for every address change anymore. llvm-svn: 119613
-
Evan Cheng authored
llvm-svn: 119610
-
Jim Grosbach authored
llvm-svn: 119608
-
Jim Grosbach authored
the operand to the pattern. llvm-svn: 119607
-
Dale Johannesen authored
memset; we may need it to decide between MOVAPS and MOVUPS later. Adjust a test that was looking for wrong code. PR 3866 / 8675131. llvm-svn: 119605
-
Evan Cheng authored
llvm-svn: 119604
-
Jim Grosbach authored
llvm-svn: 119603
-
Jim Grosbach authored
just pretend to be. llvm-svn: 119602
-
Owen Anderson authored
llvm-svn: 119601
-
Jim Grosbach authored
common encoding information. llvm-svn: 119598
-
Owen Anderson authored
llvm-svn: 119597
-
Dan Gohman authored
queries, and SCEVExpander getRelevantLoop queries. llvm-svn: 119595
-
Owen Anderson authored
llvm-svn: 119593
-
John Thompson authored
llvm-svn: 119590
-
Jim Grosbach authored
it as such. Add some encoding information. llvm-svn: 119588
-
Dan Gohman authored
Some of these maps may merge in the future, but for now it's convenient to have a utility function for them. llvm-svn: 119587
-
Dan Gohman authored
memoize the results. This improves compile time in code which highly complex expressions which get queried many times. llvm-svn: 119584
-
- Nov 17, 2010
-
-
Dan Gohman authored
to ScalarEvolution. Delete SCEV::~SCEV. SCEV is no longer virtual. llvm-svn: 119578
-
Owen Anderson authored
llvm-svn: 119575
-
Jim Grosbach authored
llvm-svn: 119573
-
Dan Gohman authored
llvm-svn: 119570
-
Bob Wilson authored
This completes the fixes for Radar 8673120. llvm-svn: 119566
-
Bob Wilson authored
It is generally not sufficient to check if the starting offset is in range of the maximum offset that can be efficiently used for the target. llvm-svn: 119565
-
Bob Wilson authored
This makes it more clear that the symbol is an internal, compiler-generated name and gives a little more description about its contents. llvm-svn: 119564
-
Bob Wilson authored
It was mistakenly looking at the pointer type when checking for the size of global variables. This is a partial fix for Radar 8673120. llvm-svn: 119563
-
Dan Gohman authored
functions of ScalarEvolution, in preparation for memoization and other optimizations. llvm-svn: 119562
-
Jim Grosbach authored
in the MC lowering process. llvm-svn: 119559
-
Evan Cheng authored
Avoid isel movcc of large immediates when the large immediate is available in a register. These immediates aren't free. llvm-svn: 119558
-
Dan Gohman authored
to avoid an unneeded dependence. llvm-svn: 119557
-
Duncan Sands authored
needs to be checked that this won't break LCSSA form. Change the existing checking method to a more direct one: rather than seeing if all predecessors belong to the loop, check that the replacing value is either not in any loop or is in a loop that contains the phi node. llvm-svn: 119556
-
Owen Anderson authored
llvm-svn: 119555
-
Dan Gohman authored
instead of in SCEVAddRecExpr's constructor, in preparation for an upcoming change. llvm-svn: 119554
-
Owen Anderson authored
llvm-svn: 119551
-
Dan Gohman authored
default ctor with ConstantRange. llvm-svn: 119550
-
Evan Cheng authored
and xor. The 32-bit move immediates can be hoisted out of loops by machine LICM but the isel hacks were preventing them. Instead, let peephole optimization pass recognize registers that are defined by immediates and the ARM target hook will fold the immediates in. Other changes include 1) do not fold and / xor into cmp to isel TST / TEQ instructions if there are multiple uses. This happens when the 'and' is live out, machine sink would have sinked the computation and that ends up pessimizing code. The peephole pass would recognize situations where the 'and' can be toggled to define CPSR and eliminate the comparison anyway. 2) Move peephole pass to after machine LICM, sink, and CSE to avoid blocking important optimizations. rdar://8663787, rdar://8241368 llvm-svn: 119548
-
Rafael Espindola authored
llvm-svn: 119547
-