- Jun 09, 2011
-
-
Cameron Zwarich authored
llvm-svn: 132767
-
Cameron Zwarich authored
assuming that all offsets are legal vector accesses, and thus trying to access the float member of { <2 x float>, float } as the 3rd element of the first member. llvm-svn: 132766
-
Cameron Zwarich authored
former was using the size of the entire alloca, whereas the latter was correctly using the allocated size of the immediate type being converted (which may differ from the size of the alloca). This fixes PR10082. llvm-svn: 132759
-
- Jun 03, 2011
-
-
Devang Patel authored
llvm-svn: 132578
-
- May 24, 2011
-
-
Cameron Zwarich authored
llvm-svn: 131956
-
Cameron Zwarich authored
promoting allocas to SSA variables. Fixes <rdar://problem/9479036>. llvm-svn: 131953
-
- May 06, 2011
-
-
Duncan Sands authored
return the pointer being dereferenced, it returns the pointee, but a call might return the pointer itself. llvm-svn: 130979
-
- Apr 20, 2011
-
-
rdar://problem/9184212Cameron Zwarich authored
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
-
Cameron Zwarich authored
delete it. llvm-svn: 129877
-
Cameron Zwarich authored
more cases. llvm-svn: 129876
-
- Apr 14, 2011
-
-
Mon P Wang authored
llvm-svn: 129532
-
Mon P Wang authored
llvm-svn: 129509
-
- Apr 13, 2011
-
-
Mon P Wang authored
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
-
- Mar 30, 2011
- Mar 29, 2011
-
-
Cameron Zwarich authored
vector types. This helps a lot with inlined functions when using the ARM soft float ABI. Fixes <rdar://problem/9184212>. llvm-svn: 128453
-
- Mar 26, 2011
-
-
Cameron Zwarich authored
llvm-svn: 128331
-
- Mar 23, 2011
-
-
Cameron Zwarich authored
that were hit in practice. llvm-svn: 128146
-
- Mar 16, 2011
-
-
Cameron Zwarich authored
llvm-svn: 127728
-
Cameron Zwarich authored
chose is having a non-memcpy/memset use and being larger than any native integer type. Originally I chose having an access of a size smaller than the total size of the alloca, but this caused some minor issues on the spirit benchmark where SRoA runs again after some inlining. This fixes <rdar://problem/8613163>. llvm-svn: 127718
-
Cameron Zwarich authored
llvm-svn: 127716
-
Cameron Zwarich authored
llvm-svn: 127715
-
- Mar 09, 2011
-
-
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
-
- Feb 15, 2011
-
-
Chris Lattner authored
llvm-svn: 125537
-
- Feb 14, 2011
-
-
Chris Lattner authored
builders unhappy. llvm-svn: 125504
-
Chris Lattner authored
idiom. Change various clients to simplify their code. llvm-svn: 125487
-
- Jan 24, 2011
-
-
Dan Gohman authored
with BasicAA's DecomposeGEPExpression, which recently began using a TargetData. This fixes PR8968, though the testcase is awkward to reduce. Also, update several off GetUnderlyingObject's users which happen to have a TargetData handy to pass it in. llvm-svn: 124134
-
Chris Lattner authored
occurs because instcombine sinks loads and inserts phis. This kicks in on such apps as 175.vpr, eon, 403.gcc, xalancbmk and a bunch of times in spec2006 in some app that uses std::deque. This resolves the last of rdar://7339113. llvm-svn: 124090
-
- Jan 23, 2011
-
-
Chris Lattner authored
common cases. This triggers a surprising number of times in SPEC2K6 because min/max idioms end up doing this. For example, code from the STL ends up looking like this to SRoA: %202 = load i64* %__old_size, align 8, !tbaa !3 %203 = load i64* %__old_size, align 8, !tbaa !3 %204 = load i64* %__n, align 8, !tbaa !3 %205 = icmp ult i64 %203, %204 %storemerge.i = select i1 %205, i64* %__n, i64* %__old_size %206 = load i64* %storemerge.i, align 8, !tbaa !3 We can now promote both the __n and the __old_size allocas. This addresses another chunk of rdar://7339113, poor codegen on stringswitch. llvm-svn: 124088
-
Chris Lattner authored
that have PHI or select uses of their element pointers. This can often happen when instcombine sinks two loads into a successor, inserting a phi or select. With this patch, we can scalarize the alloca, but the pinned elements are not yet promoted. This is still a win for large aggregates where only one element is used. This fixes rdar://8904039 and part of rdar://7339113 (poor codegen on stringswitch). llvm-svn: 124070
-
Chris Lattner authored
No functionality change. llvm-svn: 124067
-
Chris Lattner authored
handle the "Transformation preventing inst" printing, so that -scalarrepl -debug will always print the rejected instruction. No functionality change. llvm-svn: 124066
-
Chris Lattner authored
X86 backend has been fixed. llvm-svn: 124064
-
- Jan 18, 2011
-
-
Cameron Zwarich authored
llvm-svn: 123724
-
- Jan 17, 2011
-
-
Cameron Zwarich authored
checks enabled: 1) Use '<' to compare integers in a comparison function rather than '<='. 2) Use the uniqued set DefBlocks rather than Info.DefiningBlocks to initialize the priority queue. The speedup of scalarrepl on test-suite + SPEC2000 + SPEC2006 is a bit less, at just under 16% rather than 17%. llvm-svn: 123662
-
Cameron Zwarich authored
llvm-svn: 123618
-
Cameron Zwarich authored
eliminating a potentially quadratic data structure, this also gives a 17% speedup when running -scalarrepl on test-suite + SPEC2000 + SPEC2006. My initial experiment gave a greater speedup around 25%, but I moved the dominator tree level computation from dominator tree construction to PromoteMemToReg. Since this approach to computing IDFs has a much lower overhead than the old code using precomputed DFs, it is worth looking at using this new code for the second scalarrepl pass as well. llvm-svn: 123609
-
- Jan 16, 2011
-
-
Chris Lattner authored
llvm-svn: 123590
-