- Mar 09, 2011
-
-
Devang Patel authored
llvm-svn: 127362
-
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
-
- Mar 08, 2011
-
-
Devang Patel authored
llvm-svn: 127214
-
- Mar 07, 2011
-
-
Devang Patel authored
Radar 9097659 llvm-svn: 127182
-
- Mar 05, 2011
-
-
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
-
- 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
-
Ted Kremenek authored
llvm-svn: 126715
-
- Feb 28, 2011
-
-
Chris Lattner authored
llvm-svn: 126694
-
Dan Gohman authored
llvm-svn: 126671
-
Dan Gohman authored
only existed as the result of a misunderstanding. llvm-svn: 126669
-
- Feb 24, 2011
-
-
Chris Lattner authored
trivial places. This pass needs a lot of work. llvm-svn: 126367
-
Chris Lattner authored
to reduce nesting. This needs to be turned into a table. llvm-svn: 126366
-
- Feb 22, 2011
-
-
Cameron Zwarich authored
values from all of the loop's exiting blocks are equal. Patch by Andrew Clinton. llvm-svn: 126253
-
- Feb 21, 2011
-
-
Chris Lattner authored
llvm-svn: 126125
-
Chris Lattner authored
llvm-svn: 126102
-
- Feb 19, 2011
-
-
Chris Lattner authored
constant, including globals. This makes us generate much more "pretty" pattern globals as well because it doesn't break it down to an array of bytes all the time. This enables us to handle stores of relocatable globals. This kicks in about 48 times in 254.gap, giving us stuff like this: @.memset_pattern40 = internal constant [2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*] [%struct.TypHeader* (%struct.TypHeader*, %struct .TypHeader*)* @IsFalse, %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)* @IsFalse], align 16 ... call void @memset_pattern16(i8* %scevgep5859, i8* bitcast ([2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*]* @.memset_pattern40 to i8* ), i64 %tmp75) nounwind llvm-svn: 126044
-
rdar://9009151Chris Lattner authored
unsplatable values into memset_pattern16 when it is available (recent darwins). This transforms lots of strided loop stores of ints for example, like 5 in vpr: Formed memset: call void @memset_pattern16(i8* %4, i8* getelementptr inbounds ([16 x i8]* @.memset_pattern9, i32 0, i32 0), i64 %tmp25) from store to: {%3,+,4}<%11> at: store i32 3, i32* %scevgep, align 4, !tbaa !4 llvm-svn: 126040
-
- Feb 18, 2011
-
-
Chris Lattner authored
to hack on memset, memcpy etc. llvm-svn: 125974
-
Chris Lattner authored
taken (and used!). This prevents merging the blocks (invalidating the block addresses) in a case like this: #define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; }) void foo() { printf("%p\n", _THIS_IP_); printf("%p\n", _THIS_IP_); printf("%p\n", _THIS_IP_); } which fixes PR4151. llvm-svn: 125829
-
- Feb 17, 2011
-
-
Chris Lattner authored
it swaps the LHS/RHS of a single binop. llvm-svn: 125700
-
- Feb 15, 2011
-
-
Duncan Sands authored
llvm-svn: 125563
-
Chris Lattner authored
llvm-svn: 125537
-
Devang Patel authored
Do not hoist @llvm.dbg.value. Here, @llvm.dbg.value is "referring" a value that is modified inside loop. llvm-svn: 125529
-
- 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
-
- Feb 12, 2011
-
-
Daniel Dunbar authored
putchar transforms, their return values are not compatible. llvm-svn: 125442
-
- Feb 11, 2011
-
-
Cameron Zwarich authored
a loop when unswitching it. It only does this in the complex case, because everything should be fine already in the simple case. llvm-svn: 125369
-
Cameron Zwarich authored
llvm-svn: 125368
-
Cameron Zwarich authored
iv-users twice. llvm-svn: 125318
-
- Feb 10, 2011
-
-
Eric Christopher authored
llvm-svn: 125257
-
Cameron Zwarich authored
Natural Loop Information Loop Pass Manager Canonicalize natural loops Scalar Evolution Analysis Loop Pass Manager Induction Variable Users Canonicalize natural loops Induction Variable Users Loop Strength Reduction into this: Scalar Evolution Analysis Loop Pass Manager Canonicalize natural loops Induction Variable Users Loop Strength Reduction This fixes <rdar://problem/8869639>. I also filed PR9184 on doing this sort of thing automatically, but it seems easier to just change the ordering of the passes if this is the only case. llvm-svn: 125254
-
- Feb 08, 2011
-
-
Dan Gohman authored
the active loop. This is generally desirable, and it avoids trouble in situations such as the testcase in PR9123, though the failure mode depends on use-list order, so it is infeasible to test. llvm-svn: 125065
-