- Jul 29, 2010
-
-
Jakob Stoklund Olesen authored
multiple defs, like t2LDRSB_POST. The first def could accidentally steal the physreg that the second, tied def was required to be allocated to. Now, the tied use-def is treated more like an early clobber, and the physreg is reserved before allocating the other defs. This would never be a problem when the tied def was the only def which is the usual case. This fixes MallocBench/gs for thumb2 -O0. llvm-svn: 109715
-
Dan Gohman authored
extend it to handle the case where multiple RAUWs affect a single SCEVUnknown. Add a ScalarEvolution unittest to test for this situation. llvm-svn: 109705
-
Owen Anderson authored
Pass the queried value by argument rather than in a member, in preparation for supporting PHI translation. llvm-svn: 109701
-
Jim Grosbach authored
ARM mode version of r109693. Remove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138 llvm-svn: 109696
-
Jim Grosbach authored
Remove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138 llvm-svn: 109693
-
Jim Grosbach authored
llvm-svn: 109691
-
Gabor Greif authored
llvm-svn: 109687
-
Owen Anderson authored
llvm-svn: 109686
-
Owen Anderson authored
Get rid of LVIQuery as a distinct data structure, so that we don't have to initialize a new set of maps on every query. llvm-svn: 109679
-
- Jul 28, 2010
-
-
Dan Gohman authored
alignment, fixing silent truncation of alignment values. llvm-svn: 109653
-
Jakob Stoklund Olesen authored
The size of this object isn't used for anything - technically it is of variable size. This avoids a false positive from the assert in X86InstrInfo::loadRegFromStackSlot, and fixes PR7735. llvm-svn: 109652
-
Kevin Enderby authored
the info from the .file directive and makes file and directory tables that will eventually be put out as part of the dwarf info in the output file. llvm-svn: 109651
-
Daniel Dunbar authored
llvm-svn: 109650
-
Daniel Dunbar authored
llvm-svn: 109649
-
Dan Gohman authored
alloca instructions (constrained by their internal encoding), and add error checking for it. Fix an instcombine bug which generated huge alignment values (null is infinitely aligned). This fixes undefined behavior noticed by John Regehr. llvm-svn: 109643
-
Jakob Stoklund Olesen authored
llvm-svn: 109608
-
Douglas Gregor authored
llvm-svn: 109598
-
Dan Gohman authored
of a std::vector. llvm-svn: 109597
-
Dan Gohman authored
dereference is theoretically infinite. Put a cap on the computed alignment to avoid overflow, noticed by John Regehr. llvm-svn: 109596
-
Dan Gohman authored
to avoid undefined behavior on overflow, noticed by John Regehr. llvm-svn: 109594
-
Gabor Greif authored
llvm-svn: 109589
-
Daniel Dunbar authored
- Designed as a simple wrapper to allow clients to attempt to catch crashes (memory errors, assertion violations, etc.) and do some kind of recovery. - Currently doesn't actually attempt to catch crashes. llvm-svn: 109586
-
Gabor Greif authored
llvm-svn: 109585
-
Gabor Greif authored
llvm-svn: 109581
-
Gabor Greif authored
llvm-svn: 109580
-
Gabor Greif authored
llvm-svn: 109579
-
Gabor Greif authored
llvm-svn: 109578
-
Gabor Greif authored
llvm-svn: 109577
-
Dan Gohman authored
object, as it may still be referenced by SCEVs not cleaned up by the use list traversal. Also, in ScalarEvolution::forgetValue, only check for a SCEVUnknown object for the original value, not for any value in the use list, because other SCEVUnknown values aren't necessary obsolete at that point. llvm-svn: 109570
-
Dan Gohman authored
the old value. llvm-svn: 109567
-
Nate Begeman authored
This is about 4x faster and smaller than the existing scalarization. llvm-svn: 109566
-
Owen Anderson authored
This is still not perfect, but better than it was before. llvm-svn: 109563
-
Gabor Greif authored
add instead a CallSite(Value* V) constructor that is consistent with ImmutableCallSize and use that one in client code llvm-svn: 109553
-
Nate Begeman authored
~40% faster vector shl <4 x i32> on SSE 4.1 Larger improvements for smaller types coming in future patches. For: define <2 x i64> @shl(<4 x i32> %r, <4 x i32> %a) nounwind readnone ssp { entry: %shl = shl <4 x i32> %r, %a ; <<4 x i32>> [#uses=1] %tmp2 = bitcast <4 x i32> %shl to <2 x i64> ; <<2 x i64>> [#uses=1] ret <2 x i64> %tmp2 } We get: _shl: ## @shl pslld $23, %xmm1 paddd LCPI0_0, %xmm1 cvttps2dq %xmm1, %xmm1 pmulld %xmm1, %xmm0 ret Instead of: _shl: ## @shl pshufd $3, %xmm0, %xmm2 movd %xmm2, %eax pshufd $3, %xmm1, %xmm2 movd %xmm2, %ecx shll %cl, %eax movd %eax, %xmm2 pshufd $1, %xmm0, %xmm3 movd %xmm3, %eax pshufd $1, %xmm1, %xmm3 movd %xmm3, %ecx shll %cl, %eax movd %eax, %xmm3 punpckldq %xmm2, %xmm3 movd %xmm0, %eax movd %xmm1, %ecx shll %cl, %eax movd %eax, %xmm2 movhlps %xmm0, %xmm0 movd %xmm0, %eax movhlps %xmm1, %xmm1 movd %xmm1, %ecx shll %cl, %eax movd %eax, %xmm0 punpckldq %xmm0, %xmm2 movdqa %xmm2, %xmm0 punpckldq %xmm3, %xmm0 ret llvm-svn: 109549
-
Gabor Greif authored
recommit simplification (originally r109504, backed out in r109508) now that problem in CallSiteBase is fixed llvm-svn: 109547
-
- Jul 27, 2010
-
-
Devang Patel authored
llvm-svn: 109538
-
Jim Grosbach authored
llvm-svn: 109525
-
Nate Begeman authored
recursively and returning a SCALAR_TO_VECTOR node, but assuming the input was always a BUILD_VECTOR. llvm-svn: 109519
-
Jim Grosbach authored
llvm-svn: 109513
-
Jim Grosbach authored
llvm-svn: 109511
-