| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
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
|
|
|
|
|
|
| |
This is a temporary fix, until more elaborate changes are ready.
llvm-svn: 109593
|
|
|
|
| |
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
|
|
|
|
|
|
| |
CallInst and InvokeInst)
llvm-svn: 109576
|
|
|
|
| |
llvm-svn: 109572
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 109565
|
|
|
|
|
|
| |
This is still not perfect, but better than it was before.
llvm-svn: 109563
|
|
|
|
| |
llvm-svn: 109562
|
|
|
|
| |
llvm-svn: 109557
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
left two new asserts commented out, because they would fire in clang, have to hunt those down first
llvm-svn: 109544
|
|
|
|
| |
llvm-svn: 109538
|
|
|
|
| |
llvm-svn: 109530
|
|
|
|
| |
llvm-svn: 109525
|
|
|
|
| |
llvm-svn: 109521
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Change it back again: destructors and constructors need to be run.
llvm-svn: 109498
|
|
|
|
|
|
| |
This fixes the MC/COFF/basic-coff.ll test case.
llvm-svn: 109497
|
|
|
|
|
|
|
| |
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
|