| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 109686
|
| |
|
|
|
|
| |
initialize a new set of maps on every query.
llvm-svn: 109679
|
| |
|
|
|
|
| |
alignment, fixing silent truncation of alignment values.
llvm-svn: 109653
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 109650
|
| |
|
|
| |
llvm-svn: 109649
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 109608
|
| |
|
|
| |
llvm-svn: 109598
|
| |
|
|
|
|
| |
of a std::vector.
llvm-svn: 109597
|
| |
|
|
|
|
|
| |
dereference is theoretically infinite. Put a cap on the computed
alignment to avoid overflow, noticed by John Regehr.
llvm-svn: 109596
|
| |
|
|
|
|
| |
to avoid undefined behavior on overflow, noticed by John Regehr.
llvm-svn: 109594
|
| |
|
|
| |
llvm-svn: 109589
|
| |
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
| |
llvm-svn: 109585
|
| |
|
|
|
|
| |
test that
llvm-svn: 109581
|
| |
|
|
|
|
| |
test that
llvm-svn: 109580
|
| |
|
|
| |
llvm-svn: 109579
|
| |
|
|
| |
llvm-svn: 109578
|
| |
|
|
| |
llvm-svn: 109577
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
the old value.
llvm-svn: 109567
|
| |
|
|
|
|
| |
This is about 4x faster and smaller than the existing scalarization.
llvm-svn: 109566
|
| |
|
|
|
|
| |
This is still not perfect, but better than it was before.
llvm-svn: 109563
|
| |
|
|
|
|
|
| |
add instead a CallSite(Value* V) constructor that is consistent with ImmutableCallSize
and use that one in client code
llvm-svn: 109553
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
problem in CallSiteBase is fixed
llvm-svn: 109547
|
| |
|
|
| |
llvm-svn: 109538
|
| |
|
|
| |
llvm-svn: 109525
|
| |
|
|
|
|
|
|
| |
ConstantFoldBIT_CONVERTofBUILD_VECTOR calling itself
recursively and returning a SCALAR_TO_VECTOR node, but assuming the input was always a BUILD_VECTOR.
llvm-svn: 109519
|
| |
|
|
| |
llvm-svn: 109513
|
| |
|
|
| |
llvm-svn: 109511
|
| |
|
|
| |
llvm-svn: 109510
|
| |
|
|
| |
llvm-svn: 109509
|
| |
|
|
| |
llvm-svn: 109508
|
| |
|
|
| |
llvm-svn: 109506
|
| |
|
|
| |
llvm-svn: 109504
|
| |
|
|
| |
llvm-svn: 109503
|
| |
|
|
| |
llvm-svn: 109502
|
| |
|
|
| |
llvm-svn: 109500
|
| |
|
|
|
|
| |
Also fix some comments.
llvm-svn: 109499
|
| |
|
|
|
|
|
| |
getMaxRegionExit returns the exit of the maximal refined region starting
at a specific basic block.
llvm-svn: 109496
|
| |
|
|
|
|
|
|
| |
are still on the list. This might happen if a CallbackVH created some new value
handles for the old value when doing RAUW. Barf if it occurs, since it is almost
certainly a mistake.
llvm-svn: 109495
|
| |
|
|
| |
llvm-svn: 109494
|
| |
|
|
|
|
|
| |
* contains(Loop), * getOutermostLoop()
* Improve getNameStr() to return a sensible name, if basic blocks are not named.
llvm-svn: 109490
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
subregister operands like this:
%reg1040:sub_32bit<def> = MOV32rm <fi#-2>, 1, %reg0, 0, %reg0, %reg1040<imp-def>; mem:LD4[FixedStack-2](align=8)
Make them return false when subreg operands are present. VirtRegRewriter is
making bad assumptions otherwise.
This fixes PR7713.
llvm-svn: 109489
|
| |
|
|
|
|
| |
with a too-big register class.
llvm-svn: 109488
|
| |
|
|
|
|
|
|
|
| |
protectors, to be near the stack protectors on the stack. Accomplish this by
tagging the stack object with a predicate that indicates that it would trigger
this. In the prolog-epilog inserter, assign these objects to the stack after the
stack protector but before the other objects.
llvm-svn: 109481
|
| |
|
|
|
|
|
|
| |
rewrite instructions for live range splitting.
Still work in progress.
llvm-svn: 109469
|