Jim Grosbach [Wed, 28 Jul 2010 23:16:12 +0000 (23:16 +0000)]
Remove dead prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109691
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 28 Jul 2010 22:50:26 +0000 (22:50 +0000)]
simplify by using CallSite constructors; virtually eliminates CallSite::get from the tree
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109687
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 28 Jul 2010 22:49:43 +0000 (22:49 +0000)]
Add an erase() method to llvm::ThreadLocal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109686
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 28 Jul 2010 22:30:53 +0000 (22:30 +0000)]
Add more doxygen comments for llvm::ThreadLocal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109683
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 28 Jul 2010 22:07:25 +0000 (22:07 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109679
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Jul 2010 21:02:38 +0000 (21:02 +0000)]
Move MaximumAlignment to Value.h, now that GlobalValue.h needs it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109656
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Jul 2010 20:56:48 +0000 (20:56 +0000)]
Make GlobalValue alignment consistent with load, store, and alloca
alignment, fixing silent truncation of alignment values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109653
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 28 Jul 2010 20:55:38 +0000 (20:55 +0000)]
Create a fixed stack object for varargs that is as large as any register.
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109652
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Wed, 28 Jul 2010 20:55:35 +0000 (20:55 +0000)]
Added first bit of support for the dwarf .file directive. This patch collects
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109651
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 28 Jul 2010 20:28:50 +0000 (20:28 +0000)]
RegionInfo: Make sure to free cached nodes; Tobias, please check!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109650
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 28 Jul 2010 20:28:45 +0000 (20:28 +0000)]
MC: Put back the MCFragment vtable, so subclasses are destroyed properly (duh).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109649
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 28 Jul 2010 20:26:43 +0000 (20:26 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109647
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 28 Jul 2010 20:26:34 +0000 (20:26 +0000)]
Use a C++ compiler for the atomic builtin check since we'll
be using a C++ compiler to build.
Patch by Török Edwin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109646
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Jul 2010 20:12:04 +0000 (20:12 +0000)]
Define a maximum supported alignment value for load, store, and
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109643
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 28 Jul 2010 18:35:46 +0000 (18:35 +0000)]
Print out the regclass of any virtual registers used by a machine instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109608
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 28 Jul 2010 18:21:10 +0000 (18:21 +0000)]
Fix a warning from gcc-4.0 (from the ppc buildbot).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109605
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 28 Jul 2010 18:12:30 +0000 (18:12 +0000)]
Instead of abusing swapProgramIn, just add a Module argument to
EmitProgressBitcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109602
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 28 Jul 2010 17:17:46 +0000 (17:17 +0000)]
Unbreak my CMake build, say you'll compile for me again...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109598
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Jul 2010 17:15:36 +0000 (17:15 +0000)]
Fix this code to avoid decrementing an iterator past the beginning
of a std::vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109597
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Jul 2010 17:14:23 +0000 (17:14 +0000)]
When user code intentionally dereferences null, the alignment of the
dereference is theoretically infinite. Put a cap on the computed
alignment to avoid overflow, noticed by John Regehr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109596
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Jul 2010 17:11:36 +0000 (17:11 +0000)]
Do GEP offset calculations with unsigned math rather than signed math
to avoid undefined behavior on overflow, noticed by John Regehr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109594
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Jul 2010 17:09:24 +0000 (17:09 +0000)]
Add some extra friend declarations to fix a gcc-4.0 compile error.
This is a temporary fix, until more elaborate changes are ready.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109593
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 28 Jul 2010 15:52:43 +0000 (15:52 +0000)]
simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109589
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 28 Jul 2010 15:40:20 +0000 (15:40 +0000)]
Support: Add CrashRecoveryContext helper object.
- 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109586
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 28 Jul 2010 15:31:37 +0000 (15:31 +0000)]
simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109585
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Jul 2010 15:17:26 +0000 (15:17 +0000)]
Update svn:ignore properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109584
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 28 Jul 2010 14:28:18 +0000 (14:28 +0000)]
use Value* constructor of CallSite to create potentially improper site, and test that
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109581
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 28 Jul 2010 12:35:54 +0000 (12:35 +0000)]
use Value* constructor of CallSite to create potentially improper site, and test that
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109580
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 28 Jul 2010 12:19:46 +0000 (12:19 +0000)]
use Value* constructor of CallSite to create potentially improper site
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109579
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 28 Jul 2010 10:57:28 +0000 (10:57 +0000)]
simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109578
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 28 Jul 2010 10:46:09 +0000 (10:46 +0000)]
simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109577
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 28 Jul 2010 10:44:59 +0000 (10:44 +0000)]
we are supposed to only create proper CallSites from an instruction (esp. CallInst and InvokeInst)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109576
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 28 Jul 2010 01:52:23 +0000 (01:52 +0000)]
Filter out patterns that have PredicateOperands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109572
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Jul 2010 01:09:07 +0000 (01:09 +0000)]
Make SCEVCallbackVH::allUsesReplacedWith update the old SCEVUnknown
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109570
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Jul 2010 00:28:25 +0000 (00:28 +0000)]
Make SCEVCallbackVH::allUsesReplacedWith unconditionally delete
the old value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109567
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 28 Jul 2010 00:21:48 +0000 (00:21 +0000)]
Implement a vectorized algorithm for <16 x i8> << <16 x i8>
This is about 4x faster and smaller than the existing scalarization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109566
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Jul 2010 00:21:18 +0000 (00:21 +0000)]
Add a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109565
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 27 Jul 2010 23:58:11 +0000 (23:58 +0000)]
Rearrange several datastructures in LazyValueInfo to improve compile time.
This is still not perfect, but better than it was before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109563
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 27 Jul 2010 23:55:47 +0000 (23:55 +0000)]
Fill out the interface of DenseSet a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109562
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Tue, 27 Jul 2010 23:15:25 +0000 (23:15 +0000)]
Testcase for r109556. Radar
8198362.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109557
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 27 Jul 2010 22:53:28 +0000 (22:53 +0000)]
reintroduce original (asserting) semantics of CallSite(Instruction *II)
add instead a CallSite(Value* V) constructor that is consistent with ImmutableCallSize
and use that one in client code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109553
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 27 Jul 2010 22:37:06 +0000 (22:37 +0000)]
~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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109549
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 27 Jul 2010 22:02:00 +0000 (22:02 +0000)]
recommit simplification (originally r109504, backed out in r109508) now that problem in CallSiteBase is fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109547
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 27 Jul 2010 21:46:11 +0000 (21:46 +0000)]
remove bogus assert, use static_cast for additional checking
left two new asserts commented out, because they would fire in clang, have to hunt those down first
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109544
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 27 Jul 2010 20:51:15 +0000 (20:51 +0000)]
It is FE's responsibility to emit proper directory name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109538
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 27 Jul 2010 18:59:50 +0000 (18:59 +0000)]
make lookup failures not fatal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109530
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 27 Jul 2010 18:36:27 +0000 (18:36 +0000)]
Grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109525
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 27 Jul 2010 18:13:53 +0000 (18:13 +0000)]
Update tests to not rely on input file's absolute path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109521
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 27 Jul 2010 18:02:18 +0000 (18:02 +0000)]
Fix a crash in the dag combiner caused by ConstantFoldBIT_CONVERTofBUILD_VECTOR calling itself
recursively and returning a SCALAR_TO_VECTOR node, but assuming the input was always a BUILD_VECTOR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109519
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 27 Jul 2010 17:38:47 +0000 (17:38 +0000)]
80 column
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109513
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 27 Jul 2010 17:14:29 +0000 (17:14 +0000)]
fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109511
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 27 Jul 2010 16:44:23 +0000 (16:44 +0000)]
recommit simplification (r109502, backed out r109509); seems to innocent
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109510
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 27 Jul 2010 15:56:07 +0000 (15:56 +0000)]
back out this too to restore the bots
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109509
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 27 Jul 2010 15:18:11 +0000 (15:18 +0000)]
back out r109504, breaks the bots
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109508
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 27 Jul 2010 15:02:37 +0000 (15:02 +0000)]
simplify: CallSite::get --> CallSite constructor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109506
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 27 Jul 2010 14:38:38 +0000 (14:38 +0000)]
simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109504
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 27 Jul 2010 14:15:29 +0000 (14:15 +0000)]
use ImmutableCallSite for const-corrgoodness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109503
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 27 Jul 2010 13:31:22 +0000 (13:31 +0000)]
simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109502
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Tue, 27 Jul 2010 11:19:40 +0000 (11:19 +0000)]
Fix silent failure with no input files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109500
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Tue, 27 Jul 2010 11:19:36 +0000 (11:19 +0000)]
Return -1 only on failure to execute a program.
Also fix some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109499
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 27 Jul 2010 09:09:05 +0000 (09:09 +0000)]
In commit 91421, isPod was changed from false to true for these value handles.
Change it back again: destructors and constructors need to be run.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109498
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Tue, 27 Jul 2010 09:01:26 +0000 (09:01 +0000)]
Make coff-dump.py executable and add python as executable for this script.
This fixes the MC/COFF/basic-coff.ll test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109497
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Tue, 27 Jul 2010 08:39:43 +0000 (08:39 +0000)]
RegionInfo: Add getMaxRegionExit()
getMaxRegionExit returns the exit of the maximal refined region starting
at a specific basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109496
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 27 Jul 2010 06:53:14 +0000 (06:53 +0000)]
After updating value handles for RAUW, check that no weak or tracking handles
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109495
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Tue, 27 Jul 2010 06:46:15 +0000 (06:46 +0000)]
Make MC use Windows COFF on Windows and add tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109494
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Tue, 27 Jul 2010 04:17:13 +0000 (04:17 +0000)]
Add function to query RegionInfo about loops.
* contains(Loop), * getOutermostLoop()
* Improve getNameStr() to return a sensible name, if basic blocks are not named.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109490
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 27 Jul 2010 04:17:01 +0000 (04:17 +0000)]
The isLoadFromStackSlot and isStoreToStackSlot have no way of reporting
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109489
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 27 Jul 2010 04:16:58 +0000 (04:16 +0000)]
Add assertions that expose the PR7713 miscompilation: Accessing a stack slot
with a too-big register class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109488
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 27 Jul 2010 01:55:19 +0000 (01:55 +0000)]
It's better to have the arrays, which would trigger the creation of stack
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109481
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 27 Jul 2010 01:19:06 +0000 (01:19 +0000)]
Use AssertingVH for InsertedValues and InsertedPostIncValues, to verify
that the values they refer to aren't being deleted underneath them.
Make sure these containters get cleared by clear(), which IndVarSimplify
and LSR both use before deleting instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109478
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 27 Jul 2010 00:04:55 +0000 (00:04 +0000)]
(Hopefully) One last test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109473
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 27 Jul 2010 00:00:47 +0000 (00:00 +0000)]
Another test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109472
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 26 Jul 2010 23:58:46 +0000 (23:58 +0000)]
Another test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109471
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 26 Jul 2010 23:44:11 +0000 (23:44 +0000)]
Add SplitEditor to SplitKit. This class will be used to edit live intervals and
rewrite instructions for live range splitting.
Still work in progress.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109469
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Jul 2010 23:40:24 +0000 (23:40 +0000)]
Fix a use-after-free.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109468
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 26 Jul 2010 22:36:52 +0000 (22:36 +0000)]
Using llvm.eh.catch.all.value instead of .llvm.eh.catch.all.value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109462
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 26 Jul 2010 22:28:18 +0000 (22:28 +0000)]
And a bit more non-ASCII stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109458
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 26 Jul 2010 22:23:07 +0000 (22:23 +0000)]
Drop some non-ascii stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109456
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 26 Jul 2010 21:58:00 +0000 (21:58 +0000)]
Don't call __register_frame from the JIT on systems that use setjmp/longjmp
exception handling. Also fix an extra underscore typo in one instance of
"__ARM_EABI__". Radar
8236264.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109451
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 26 Jul 2010 21:50:05 +0000 (21:50 +0000)]
On x86, f32 / f64 nodes share the same registers as 128-bit vector values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109450
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 26 Jul 2010 21:49:07 +0000 (21:49 +0000)]
The "excess register pressure" returned by HighRegPressure() is not accurate enough to factor into scheduling priority. Eliminate it and add early exits to speed up scheduling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109449
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 26 Jul 2010 21:48:35 +0000 (21:48 +0000)]
Add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109448
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Jul 2010 21:05:37 +0000 (21:05 +0000)]
Add a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109435
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Mon, 26 Jul 2010 21:01:18 +0000 (21:01 +0000)]
Temporary hack to let codegen assert or generate poor code in case
we are using AVX and no AVX version of the desired intruction is present,
this is better for incremental dev (without fallbacks it's easier to spot
what's missing). Not sure this is the best hack thought (we can also disable
all HasSSE* predicates by dinamically marking them 'false' if AVX is present)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109434
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 26 Jul 2010 20:51:45 +0000 (20:51 +0000)]
Testing some more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109433
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 26 Jul 2010 20:19:04 +0000 (20:19 +0000)]
Test some more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109431
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Jul 2010 20:15:47 +0000 (20:15 +0000)]
Fix library build messages.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109430
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Jul 2010 20:11:39 +0000 (20:11 +0000)]
Add svn:ignore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109429
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Mon, 26 Jul 2010 18:48:07 +0000 (18:48 +0000)]
re-commit r109220, the compile error has already been fixed
Simplifying use_iterators by dereferencing
is not a good idea. The codebase does not depend
in this any more, and it may introduce hidden
runtime cost. If you get compile errors, please
dereference your iterator before passing to cast<>
(and friends).
Also: please consider caching the result of
operator* and reusing that instead of dereferencing
many times.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109425
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 26 Jul 2010 18:48:03 +0000 (18:48 +0000)]
Add an initial implementation of LazyValueInfo updating for JumpThreading. Disabled for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109424
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 26 Jul 2010 18:45:39 +0000 (18:45 +0000)]
Currently EH lowering code expects typeinfo to be global only.
This assumption is not satisfied due to global mergeing.
Workaround the issue by temporary disablinge mergeing of const globals.
Also, ignore LLVM "special" globals. This fixes PR7716
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109423
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 26 Jul 2010 18:44:56 +0000 (18:44 +0000)]
Fix a test with malformed IR. Not sure why this didn't fail before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109422
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 26 Jul 2010 18:32:55 +0000 (18:32 +0000)]
ARM fastisel isn't ready.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109421
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 26 Jul 2010 18:31:17 +0000 (18:31 +0000)]
One more test commit...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109420
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Jul 2010 18:28:14 +0000 (18:28 +0000)]
Fix SCEVExpander::visitAddRecExpr so that it remembers the induction variable
it inserted rather than using LoopInfo::getCanonicalInductionVariable to
rediscover it, since that doesn't work on non-canonical loops. This fixes
infinite recurrsion on such loops; PR7562.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109419
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Jul 2010 18:15:41 +0000 (18:15 +0000)]
Handle Values with no value in getCopyFromRegs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109415
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 26 Jul 2010 18:13:21 +0000 (18:13 +0000)]
Hopefully the last test commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109414
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Jul 2010 18:11:16 +0000 (18:11 +0000)]
Remove LCSSA's bogus dependence on LoopSimplify and LoopSimplify's bogus
dependence on DominanceFrontier. Instead, add an explicit DominanceFrontier
pass in StandardPasses.h to ensure that it gets scheduled at the right
time.
Declare that loop unrolling preserves ScalarEvolution, and shuffle some
getAnalysisUsages.
This eliminates one LoopSimplify and one LCCSA run in the standard
compile opts sequence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109413
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Jul 2010 18:02:06 +0000 (18:02 +0000)]
Preserve ScalarEvolution in the loop unroller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109412
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 26 Jul 2010 18:00:59 +0000 (18:00 +0000)]
Another test commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109411
91177308-0d34-0410-b5e6-
96231b3b80d8