oota-llvm.git
14 years agoSwitch to using the LLVM CommandLine library so that our help
John McCall [Thu, 29 Jul 2010 17:55:00 +0000 (17:55 +0000)]
Switch to using the LLVM CommandLine library so that our help
message is properly contaminated with nonsense about timing passes
that doesn't apply at all to this utility. :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109769 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoPlug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of...
Benjamin Kramer [Thu, 29 Jul 2010 17:48:06 +0000 (17:48 +0000)]
Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of the TargetAsmBackend and the MCCodeEmitter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109767 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoComment typo.
Dale Johannesen [Thu, 29 Jul 2010 17:45:24 +0000 (17:45 +0000)]
Comment typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109765 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRevert r109652, and remove the offending assert in loadRegFromStackSlot instead.
Jakob Stoklund Olesen [Thu, 29 Jul 2010 17:42:27 +0000 (17:42 +0000)]
Revert r109652, and remove the offending assert in loadRegFromStackSlot instead.

We do sometimes load from a too small stack slot when dealing with x86 arguments
(varargs and smaller-than-32-bit args). It looks like we know what we are doing
in those cases, so I am going to remove the assert instead of artifically
enlarging stack slot sizes.

The assert in storeRegToStackSlot stays in. We don't want to write beyond the
bounds of a stack slot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109764 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCrashRecovery: Use ThreadLocal::erase() instead of set(0).
Daniel Dunbar [Thu, 29 Jul 2010 15:24:21 +0000 (15:24 +0000)]
CrashRecovery: Use ThreadLocal::erase() instead of set(0).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109752 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMake the test while reducing blocks functional. This avoids accessing freed
Rafael Espindola [Thu, 29 Jul 2010 14:20:59 +0000 (14:20 +0000)]
Make the test while reducing blocks functional. This avoids accessing freed
memory when one of the original BB is destroyed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109747 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoStop leaking std::strings in GetDwarfFile.
Benjamin Kramer [Thu, 29 Jul 2010 13:53:19 +0000 (13:53 +0000)]
Stop leaking std::strings in GetDwarfFile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109746 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCOFFObjectWriter: Don't leak COFFSymbols and COFFSections.
Benjamin Kramer [Thu, 29 Jul 2010 11:57:59 +0000 (11:57 +0000)]
COFFObjectWriter: Don't leak COFFSymbols and COFFSections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109745 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCentralize the logic to permanently unify two instructions and make sure
John McCall [Thu, 29 Jul 2010 09:20:34 +0000 (09:20 +0000)]
Centralize the logic to permanently unify two instructions and make sure
it establishes a context and does a complaining diff.  Also make sure we
unify the prelude and postlude of a diff after a block-diff call.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109744 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDiagnose non-structural differences in the case where blocks were
John McCall [Thu, 29 Jul 2010 09:04:45 +0000 (09:04 +0000)]
Diagnose non-structural differences in the case where blocks were
structurally identical.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109743 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWhen unifying instructions during a block diff, actually complain about
John McCall [Thu, 29 Jul 2010 08:59:27 +0000 (08:59 +0000)]
When unifying instructions during a block diff, actually complain about
any differences we see.  This should only happen if there are "non-structural"
differences between the instructions, i.e. differences which wouldn't cause
diff to return true.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109742 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSomehow I was getting reasonable results for the test cases I was interested
John McCall [Thu, 29 Jul 2010 08:53:59 +0000 (08:53 +0000)]
Somehow I was getting reasonable results for the test cases I was interested
in despite not ever incrementing any path costs, so that the only nonzero costs
arose from the all-left path in the first column.  Anyway.  Perform the diff
starting from the beginning of the block to avoid capturing (say) loads of
allocas.

Vastly improves diff results on code that hasn't been mem2reg'ed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109741 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCache the result of errs() and implement formatted logging.
John McCall [Thu, 29 Jul 2010 08:14:41 +0000 (08:14 +0000)]
Cache the result of errs() and implement formatted logging.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109740 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd the llvm-diff tool, which performs a relatively naive structural
John McCall [Thu, 29 Jul 2010 07:53:27 +0000 (07:53 +0000)]
Add the llvm-diff tool, which performs a relatively naive structural
diff of a function.  There's a lot of cruft in the current version, and
it's pretty far from perfect, but it's usable.

Currently only capable of comparing functions.  Currently ignores metadata.
Currently ignores most attributes of functions and instructions.

Patches welcome.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109739 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMake sure to include config.h, to pickup LLVM_ON_WIN32.
Daniel Dunbar [Thu, 29 Jul 2010 01:52:04 +0000 (01:52 +0000)]
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

14 years agoMC: Destroy Macro instances.
Daniel Dunbar [Thu, 29 Jul 2010 01:51:55 +0000 (01:51 +0000)]
MC: Destroy Macro instances.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109720 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSpeculatively revert r109705 since it seems to be causing some build bot
Eric Christopher [Thu, 29 Jul 2010 01:25:38 +0000 (01:25 +0000)]
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

14 years agoCrashRecoveryContext: Add a simple POSIX implementation.
Daniel Dunbar [Thu, 29 Jul 2010 01:21:47 +0000 (01:21 +0000)]
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

14 years agoFix a bug in the -regalloc=fast handling of exotic two-address instruction with
Jakob Stoklund Olesen [Thu, 29 Jul 2010 00:52:19 +0000 (00:52 +0000)]
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

14 years agoUse the right gcc tool args for IsARMArchitecture.
Jakob Stoklund Olesen [Thu, 29 Jul 2010 00:52:16 +0000 (00:52 +0000)]
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

14 years agoFactor out some of the code for updating old SCEVUnknown values, and
Dan Gohman [Thu, 29 Jul 2010 00:17:55 +0000 (00:17 +0000)]
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

14 years agoPass the queried value by argument rather than in a member, in preparation for suppor...
Owen Anderson [Wed, 28 Jul 2010 23:50:08 +0000 (23:50 +0000)]
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

14 years agoARM mode version of r109693. Remove incorrect substitution pattern for UXTB16. It...
Jim Grosbach [Wed, 28 Jul 2010 23:25:44 +0000 (23:25 +0000)]
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

14 years agoRemove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift...
Jim Grosbach [Wed, 28 Jul 2010 23:17:45 +0000 (23:17 +0000)]
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

14 years agoRemove dead prototype
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

14 years agosimplify by using CallSite constructors; virtually eliminates CallSite::get from...
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

14 years agoAdd an erase() method to llvm::ThreadLocal.
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

14 years agoAdd more doxygen comments for llvm::ThreadLocal.
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

14 years agoGet rid of LVIQuery as a distinct data structure, so that we don't have to initialize...
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

14 years agoMove MaximumAlignment to Value.h, now that GlobalValue.h needs it.
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

14 years agoMake GlobalValue alignment consistent with load, store, and alloca
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

14 years agoCreate a fixed stack object for varargs that is as large as any register.
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

14 years agoAdded first bit of support for the dwarf .file directive. This patch collects
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

14 years agoRegionInfo: Make sure to free cached nodes; Tobias, please check!
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

14 years agoMC: Put back the MCFragment vtable, so subclasses are destroyed properly (duh).
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

14 years agoRegenerate.
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

14 years agoUse a C++ compiler for the atomic builtin check since we'll
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

14 years agoDefine a maximum supported alignment value for load, store, and
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

14 years agoPrint out the regclass of any virtual registers used by a machine instruction.
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

14 years agoFix a warning from gcc-4.0 (from the ppc buildbot).
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

14 years agoInstead of abusing swapProgramIn, just add a Module argument to
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

14 years agoUnbreak my CMake build, say you'll compile for me again...
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

14 years agoFix this code to avoid decrementing an iterator past the beginning
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

14 years agoWhen user code intentionally dereferences null, the alignment of the
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

14 years agoDo GEP offset calculations with unsigned math rather than signed math
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

14 years agoAdd some extra friend declarations to fix a gcc-4.0 compile error.
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

14 years agosimplify
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

14 years agoSupport: Add CrashRecoveryContext helper object.
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

14 years agosimplify
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

14 years agoUpdate svn:ignore properties.
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

14 years agouse Value* constructor of CallSite to create potentially improper site, and test...
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

14 years agouse Value* constructor of CallSite to create potentially improper site, and test...
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

14 years agouse Value* constructor of CallSite to create potentially improper site
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

14 years agosimplify
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

14 years agosimplify
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

14 years agowe are supposed to only create proper CallSites from an instruction (esp. CallInst...
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

14 years agoFilter out patterns that have PredicateOperands.
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

14 years agoMake SCEVCallbackVH::allUsesReplacedWith update the old SCEVUnknown
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

14 years agoMake SCEVCallbackVH::allUsesReplacedWith unconditionally delete
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

14 years agoImplement a vectorized algorithm for <16 x i8> << <16 x i8>
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

14 years agoAdd a comment.
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

14 years agoRearrange several datastructures in LazyValueInfo to improve compile time.
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

14 years agoFill out the interface of DenseSet a bit.
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

14 years agoTestcase for r109556. Radar 8198362.
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

14 years agoreintroduce original (asserting) semantics of CallSite(Instruction *II)
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

14 years ago~40% faster vector shl <4 x i32> on SSE 4.1 Larger improvements for smaller types...
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

14 years agorecommit simplification (originally r109504, backed out in r109508) now that problem...
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

14 years agoremove bogus assert, use static_cast for additional checking
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

14 years agoIt is FE's responsibility to emit proper directory name.
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

14 years agomake lookup failures not fatal.
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

14 years agoGrammar
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

14 years agoUpdate tests to not rely on input file's absolute path.
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

14 years agoFix a crash in the dag combiner caused by ConstantFoldBIT_CONVERTofBUILD_VECTOR calli...
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

14 years ago80 column
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

14 years agofix typo
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

14 years agorecommit simplification (r109502, backed out r109509); seems to innocent
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

14 years agoback out this too to restore the bots
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

14 years agoback out r109504, breaks the bots
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

14 years agosimplify: CallSite::get --> CallSite constructor
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

14 years agosimplify
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

14 years agouse ImmutableCallSite for const-corrgoodness
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

14 years agosimplify
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

14 years agoFix silent failure with no input files.
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

14 years agoReturn -1 only on failure to execute a program.
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

14 years agoIn commit 91421, isPod was changed from false to true for these value handles.
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

14 years agoMake coff-dump.py executable and add python as executable for this script.
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

14 years agoRegionInfo: Add getMaxRegionExit()
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

14 years agoAfter updating value handles for RAUW, check that no weak or tracking handles
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

14 years agoMake MC use Windows COFF on Windows and add tests.
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

14 years agoAdd function to query RegionInfo about loops.
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

14 years agoThe isLoadFromStackSlot and isStoreToStackSlot have no way of reporting
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

14 years agoAdd assertions that expose the PR7713 miscompilation: Accessing a stack slot
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

14 years agoIt's better to have the arrays, which would trigger the creation of stack
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

14 years agoUse AssertingVH for InsertedValues and InsertedPostIncValues, to verify
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

14 years ago(Hopefully) One last test.
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

14 years agoAnother test.
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

14 years agoAnother test.
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

14 years agoAdd SplitEditor to SplitKit. This class will be used to edit live intervals and
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

14 years agoFix a use-after-free.
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

14 years agoUsing llvm.eh.catch.all.value instead of .llvm.eh.catch.all.value.
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