Daniel Dunbar
dade28ee4e
Make sure to include config.h, to pickup LLVM_ON_WIN32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109721 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 01:52:04 +00:00
Daniel Dunbar
56491303a6
MC: Destroy Macro instances.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109720 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 01:51:55 +00:00
Eric Christopher
e6cbfa6b09
Speculatively revert r109705 since it seems to be causing some build bot
...
angst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109718 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 01:25:38 +00:00
Daniel Dunbar
d9082dfd9a
CrashRecoveryContext: Add a simple POSIX implementation.
...
- This works, but won't handle crashes on stack overflow, or signals delivered
to a thread other than the one that crashed. The latter is particular annoying
on Darwin, because SIGABRT tends to go to the main thread.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109717 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 01:21:47 +00:00
Jakob Stoklund Olesen
4bd94f7bbe
Fix a bug in the -regalloc=fast handling of exotic two-address instruction with
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109715 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 00:52:19 +00:00
Jakob Stoklund Olesen
887b703d22
Use the right gcc tool args for IsARMArchitecture.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109714 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 00:52:16 +00:00
Dan Gohman
c6743207e2
Factor out some of the code for updating old SCEVUnknown values, and
...
extend it to handle the case where multiple RAUWs affect a single
SCEVUnknown.
Add a ScalarEvolution unittest to test for this situation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109705 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 00:17:55 +00:00
Owen Anderson
e2fb451dbb
Pass the queried value by argument rather than in a member, in preparation for supporting PHI translation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109701 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 23:50:08 +00:00
Jim Grosbach
542f642684
ARM mode version of r109693. Remove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109696 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 23:25:44 +00:00
Jim Grosbach
7946494ceb
Remove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109693 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 23:17:45 +00:00
Jim Grosbach
f0d7e36691
Remove dead prototype
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109691 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 23:16:12 +00:00
Gabor Greif
7d3056b160
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
2010-07-28 22:50:26 +00:00
Owen Anderson
826c148aa5
Add an erase() method to llvm::ThreadLocal.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109686 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 22:49:43 +00:00
Owen Anderson
e850e6e162
Add more doxygen comments for llvm::ThreadLocal.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109683 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 22:30:53 +00:00
Owen Anderson
9da5c997c0
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
2010-07-28 22:07:25 +00:00
Dan Gohman
5d414b44fc
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
2010-07-28 21:02:38 +00:00
Dan Gohman
6bbe671e1c
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
2010-07-28 20:56:48 +00:00
Jakob Stoklund Olesen
4c010ec851
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
2010-07-28 20:55:38 +00:00
Kevin Enderby
7cbf73a73f
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
2010-07-28 20:55:35 +00:00
Daniel Dunbar
329878f4dd
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
2010-07-28 20:28:50 +00:00
Daniel Dunbar
36880e704f
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
2010-07-28 20:28:45 +00:00
Eric Christopher
f759841c28
Regenerate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109647 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 20:26:43 +00:00
Eric Christopher
475b3d3856
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
2010-07-28 20:26:34 +00:00
Dan Gohman
138aa2a82b
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
2010-07-28 20:12:04 +00:00
Jakob Stoklund Olesen
a0c5bf19bf
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
2010-07-28 18:35:46 +00:00
Bob Wilson
fdb530d406
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
2010-07-28 18:21:10 +00:00
Rafael Espindola
bae1b71cbb
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
2010-07-28 18:12:30 +00:00
Douglas Gregor
c19d865474
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
2010-07-28 17:17:46 +00:00
Dan Gohman
6d3b922670
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
2010-07-28 17:15:36 +00:00
Dan Gohman
33591af872
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
2010-07-28 17:14:23 +00:00
Dan Gohman
67d0498d53
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
2010-07-28 17:11:36 +00:00
Dan Gohman
dc7a235363
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
2010-07-28 17:09:24 +00:00
Gabor Greif
f5e13095fa
simplify
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109589 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 15:52:43 +00:00
Daniel Dunbar
a309dac868
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
2010-07-28 15:40:20 +00:00
Gabor Greif
5d4b32ef96
simplify
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109585 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 15:31:37 +00:00
Dan Gohman
69b777b5c4
Update svn:ignore properties.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109584 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 15:17:26 +00:00
Gabor Greif
d09475c226
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
2010-07-28 14:28:18 +00:00
Gabor Greif
ce4a62639f
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
2010-07-28 12:35:54 +00:00
Gabor Greif
3737984e95
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
2010-07-28 12:19:46 +00:00
Gabor Greif
30ae792f06
simplify
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109578 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 10:57:28 +00:00
Gabor Greif
b0686ea808
simplify
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109577 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 10:46:09 +00:00
Gabor Greif
756f0d2ab4
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
2010-07-28 10:44:59 +00:00
Eric Christopher
bc16827be6
Filter out patterns that have PredicateOperands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109572 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 01:52:23 +00:00
Dan Gohman
81f9121cda
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
2010-07-28 01:09:07 +00:00
Dan Gohman
59846aced2
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
2010-07-28 00:28:25 +00:00
Nate Begeman
51409214d7
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
2010-07-28 00:21:48 +00:00
Dan Gohman
f374ba2bcd
Add a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109565 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28 00:21:18 +00:00
Owen Anderson
9a65dc9968
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
2010-07-27 23:58:11 +00:00
Owen Anderson
cf85c96129
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
2010-07-27 23:55:47 +00:00
Stuart Hastings
3c73a6b650
Testcase for r109556. Radar 8198362.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109557 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-27 23:15:25 +00:00