oota-llvm.git
12 years agoMake ISelPosition a local variable.
Jakob Stoklund Olesen [Fri, 20 Apr 2012 22:08:50 +0000 (22:08 +0000)]
Make ISelPosition a local variable.

Now that multiple DAGUpdateListeners can be active at the same time,
ISelPosition can become a local variable in DoInstructionSelection.

We simply register an ISelUpdater with CurDAG while ISelPosition exists.

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

12 years agoRegister DAGUpdateListeners with SelectionDAG.
Jakob Stoklund Olesen [Fri, 20 Apr 2012 22:08:46 +0000 (22:08 +0000)]
Register DAGUpdateListeners with SelectionDAG.

Instead of passing listener pointers to RAUW, let SelectionDAG itself
keep a linked list of interested listeners.

This makes it possible to have multiple listeners active at once, like
RAUWUpdateListener was already doing. It also makes it possible to
register listeners up the call stack without controlling all RAUW calls
below.

DAGUpdateListener uses an RAII pattern to add itself to the SelectionDAG
list of active listeners.

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

12 years agoExtraneous semicolon.
Eric Christopher [Fri, 20 Apr 2012 22:07:50 +0000 (22:07 +0000)]
Extraneous semicolon.

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

12 years agoIf we discover all of the named structs in a module, then don't bother to
Bill Wendling [Fri, 20 Apr 2012 21:56:24 +0000 (21:56 +0000)]
If we discover all of the named structs in a module, then don't bother to
process any more Values.

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

12 years agoPrint <def,read-undef> to avoid confusion.
Jakob Stoklund Olesen [Fri, 20 Apr 2012 21:45:33 +0000 (21:45 +0000)]
Print <def,read-undef> to avoid confusion.

The <undef> flag on a def operand only applies to partial register
redefinitions. Only print the flag when relevant, and print it as
<def,read-undef> to make it clearer what it means.

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

12 years agoAdded TargetRegisterInfo::getRegPressureSetName.
Andrew Trick [Fri, 20 Apr 2012 20:45:00 +0000 (20:45 +0000)]
Added TargetRegisterInfo::getRegPressureSetName.

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

12 years agoTableGen'd RegPressure: Added getPressureSetName.
Andrew Trick [Fri, 20 Apr 2012 20:44:58 +0000 (20:44 +0000)]
TableGen'd RegPressure: Added getPressureSetName.

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

12 years agoModify the sh-bang to run out-of-the-box for FreeBSDes.
Bill Wendling [Fri, 20 Apr 2012 20:31:44 +0000 (20:31 +0000)]
Modify the sh-bang to run out-of-the-box for FreeBSDes.

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

12 years agoNew and improved comment.
Andrew Trick [Fri, 20 Apr 2012 20:24:33 +0000 (20:24 +0000)]
New and improved comment.

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

12 years agoSparseSet: Add support for key-derived indexes and arbitrary key types.
Andrew Trick [Fri, 20 Apr 2012 20:05:28 +0000 (20:05 +0000)]
SparseSet: Add support for key-derived indexes and arbitrary key types.

This nicely handles the most common case of virtual register sets, but
also handles anticipated cases where we will map pointers to IDs.

The goal is not to develop a completely generic SparseSet
template. Instead we want to handle the expected uses within llvm
without any template antics in the client code. I'm adding a bit of
template nastiness here, and some assumption about expected usage in
order to make the client code very clean.

The expected common uses cases I'm designing for:
- integer keys that need to be reindexed, and may map to additional
  data
- densely numbered objects where we want pointer keys because no
  number->object map exists.

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

12 years agomisched: initialize BB
Andrew Trick [Fri, 20 Apr 2012 20:05:21 +0000 (20:05 +0000)]
misched: initialize BB

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

12 years agoAllow converting MachineBasicBlock::iterator to const_iterator.
Andrew Trick [Fri, 20 Apr 2012 20:05:19 +0000 (20:05 +0000)]
Allow converting MachineBasicBlock::iterator to const_iterator.

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

12 years ago[docs] Update version number. I suggest that at some point we make the
Michael J. Spencer [Fri, 20 Apr 2012 19:28:40 +0000 (19:28 +0000)]
[docs] Update version number. I suggest that at some point we make the
build system generate this file with the proper version.

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

12 years agoFix broken internal link.
Joel Jones [Fri, 20 Apr 2012 18:20:24 +0000 (18:20 +0000)]
Fix broken internal link.

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

12 years agoKick off 3.2 cycle for LLVM trunk.
Benjamin Kramer [Fri, 20 Apr 2012 18:15:07 +0000 (18:15 +0000)]
Kick off 3.2 cycle for LLVM trunk.

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

12 years agoARM: Update NEON assembly two-operand aliases.
Jim Grosbach [Fri, 20 Apr 2012 18:12:54 +0000 (18:12 +0000)]
ARM: Update NEON assembly two-operand aliases.

Use the new TwoOperandAliasConstraint to handle lots of the two-operand aliases
for NEON instructions. There's still more to go, but this is a good chunk of
them.

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

12 years agoAdd debugging hints for when bugpoint does not suffice, specifically for instcombine...
Joel Jones [Fri, 20 Apr 2012 18:11:07 +0000 (18:11 +0000)]
Add debugging hints for when bugpoint does not suffice, specifically for instcombine and TargetLowering

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

12 years ago[docs] Update Makefile for images removal.
Daniel Dunbar [Fri, 20 Apr 2012 17:27:12 +0000 (17:27 +0000)]
[docs] Update Makefile for images removal.
 - Also, drop the lines.gif background from doxygen, this URL was wrong on the
   llvm.org server anyway.

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

12 years agoLLVM docs no longer contain images, don't try to install them.
Benjamin Kramer [Fri, 20 Apr 2012 17:14:26 +0000 (17:14 +0000)]
LLVM docs no longer contain images, don't try to install them.

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

12 years agoAdd documentation comment.
Jim Grosbach [Fri, 20 Apr 2012 16:29:46 +0000 (16:29 +0000)]
Add documentation comment.

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

12 years agoCorrect spelling, q.v. http://en.wikipedia.org/wiki/Bourne_shell
Joel Jones [Fri, 20 Apr 2012 16:08:56 +0000 (16:08 +0000)]
Correct spelling, q.v. en.wikipedia.org/wiki/Bourne_shell

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

12 years ago[docs] Remove spurious or unused images.
Daniel Dunbar [Fri, 20 Apr 2012 15:06:20 +0000 (15:06 +0000)]
[docs] Remove spurious or unused images.

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

12 years agoRemoves json-bench from the test dependencies.
Manuel Klimek [Fri, 20 Apr 2012 13:45:49 +0000 (13:45 +0000)]
Removes json-bench from the test dependencies.

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

12 years agoeffectively back out my last change (r155190)
Gabor Greif [Fri, 20 Apr 2012 11:41:38 +0000 (11:41 +0000)]
effectively back out my last change (r155190)

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

12 years agofix obviously bogus (IMO) operand index of the load in asserts
Gabor Greif [Fri, 20 Apr 2012 08:58:49 +0000 (08:58 +0000)]
fix obviously bogus (IMO) operand index of the load in asserts
(load only has one operand) and smuggle in some whitespace changes too

NB: I am obviously testing the water here, and believe that the unguarded
    cast is still wrong, but why is the getZExtValue of the load's operand
    tested against zero here? Any review is appreciated.

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

12 years agoConvert more uses of XXXRegisterClass to &XXXRegClass. No functional change since...
Craig Topper [Fri, 20 Apr 2012 07:30:17 +0000 (07:30 +0000)]
Convert more uses of XXXRegisterClass to &XXXRegClass. No functional change since they are equivalent.

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

12 years agoConvert some uses of XXXRegisterClass to &XXXRegClass. No functional change since...
Craig Topper [Fri, 20 Apr 2012 06:31:50 +0000 (06:31 +0000)]
Convert some uses of XXXRegisterClass to &XXXRegClass. No functional change since they are equivalent.

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

12 years agoRevert r155136 "Defer some shl transforms to DAGCombine."
Jakob Stoklund Olesen [Fri, 20 Apr 2012 00:38:45 +0000 (00:38 +0000)]
Revert r155136 "Defer some shl transforms to DAGCombine."

While the patch was perfect and defect free, it exposed a really nasty
bug in X86 SelectionDAG that caused an llc crash when compiling lencod.

I'll put the patch back in after fixing the SelectionDAG problem.

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

12 years agoARM some VFP tblgen'erated two-operand aliases.
Jim Grosbach [Fri, 20 Apr 2012 00:15:00 +0000 (00:15 +0000)]
ARM some VFP tblgen'erated two-operand aliases.

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

12 years agoTidy up. Formatting.
Jim Grosbach [Fri, 20 Apr 2012 00:14:57 +0000 (00:14 +0000)]
Tidy up. Formatting.

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

12 years agoARM let TableGen handle a few two-operand aliases.
Jim Grosbach [Thu, 19 Apr 2012 23:59:26 +0000 (23:59 +0000)]
ARM let TableGen handle a few two-operand aliases.

No need for these explicit aliases anymore. Nuke 'em.

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

12 years agoTableGen support for auto-generating assembly two-operand aliases.
Jim Grosbach [Thu, 19 Apr 2012 23:59:23 +0000 (23:59 +0000)]
TableGen support for auto-generating assembly two-operand aliases.

Assembly matchers for instructions with a two-operand form. ARM is full
of these, for example:
  add {Rd}, Rn, Rm  // Rd is optional and is the same as Rn if omitted.

The property TwoOperandAliasConstraint on the instruction definition controls
when, and if, an alias will be formed. No explicit InstAlias definitions
are required.

rdar://11255754

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

12 years agoPut this expensive check below the less expensive ones.
Bill Wendling [Thu, 19 Apr 2012 23:31:07 +0000 (23:31 +0000)]
Put this expensive check below the less expensive ones.

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

12 years agoWhen cross compiling, install a host version of llvm-config. <rdar://11187889>
Bob Wilson [Thu, 19 Apr 2012 23:19:55 +0000 (23:19 +0000)]
When cross compiling, install a host version of llvm-config. <rdar://11187889>

Now that llvm-config is a binary instead of a script the version installed
during a cross compiled build cannot be run from the host.  When cross
compiling, install a separate llvm-config-host that will run on the host.

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

12 years agoAvoid a bug in the path count computation, preventing an infinite
Dan Gohman [Thu, 19 Apr 2012 21:50:46 +0000 (21:50 +0000)]
Avoid a bug in the path count computation, preventing an infinite
loop repeatedlt making the same change. This is for rdar://11256239.

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

12 years agoTest for the the problem with xors being changed into ands
Joel Jones [Thu, 19 Apr 2012 20:54:44 +0000 (20:54 +0000)]
Test for the the problem with xors being changed into ands
when the set bits aren't the same for both args of the xor.
This transformation is in the function TargetLowering::SimplifyDemandedBits
in the file lib/CodeGen/SelectionDAG/TargetLowering.cpp.

I have tested this test using a previous version of llc which the defect and
the a version of llc which does not. I got the expected fail and pass,
respectively.

This test goes with rdar://11195364 and the check in with the fix: svn r154955

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

12 years ago[docs] Update HTML pages to refer to CSS in a way that works locally and with Sphinx.
Daniel Dunbar [Thu, 19 Apr 2012 20:20:34 +0000 (20:20 +0000)]
[docs] Update HTML pages to refer to CSS in a way that works locally and with Sphinx.

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

12 years ago[docs] Remove index.html, I am flipping the switch on llvm.org.
Daniel Dunbar [Thu, 19 Apr 2012 20:06:39 +0000 (20:06 +0000)]
[docs] Remove index.html, I am flipping the switch on llvm.org.

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

12 years agoRemove llvm-ld and llvm-stub (which is only used by llvm-ld).
Michael J. Spencer [Thu, 19 Apr 2012 19:27:54 +0000 (19:27 +0000)]
Remove llvm-ld and llvm-stub (which is only used by llvm-ld).

llvm-ld is no longer useful and causes confusion and so it is being removed.

* Does not work very well on Windows because it must call a gcc like driver to
  assemble and link.
* Has lots of hard coded paths which are wrong on many systems.
* Does not understand most of ld's options.
* Can be partially replaced by llvm-link | opt | {llc | as, llc -filetype=obj} |
  ld, or fully replaced by Clang.

I know of no production use of llvm-ld, and hacking use should be
replaced by Clang's driver.

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

12 years agoUse a SmallVector instead of std::vector for ResOperands.
Jim Grosbach [Thu, 19 Apr 2012 17:52:34 +0000 (17:52 +0000)]
Use a SmallVector instead of std::vector for ResOperands.

There's almost always a small number of instruction operands, so
use a SmallVector and save on heap allocations.

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

12 years agoUpdate some internal naming conventions to modern style.
Jim Grosbach [Thu, 19 Apr 2012 17:52:32 +0000 (17:52 +0000)]
Update some internal naming conventions to modern style.

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

12 years agoDefer some shl transforms to DAGCombine.
Jakob Stoklund Olesen [Thu, 19 Apr 2012 16:46:26 +0000 (16:46 +0000)]
Defer some shl transforms to DAGCombine.

The shl instruction is used to represent multiplication by a constant
power of two as well as bitwise left shifts. Some InstCombine
transformations would turn an shl instruction into a bit mask operation,
making it difficult for later analysis passes to recognize the
constsnt multiplication.

Disable those shl transformations, deferring them to DAGCombine time.
An 'shl X, C' instruction is now treated mostly the same was as 'mul X, C'.

These transformations are deferred:

  (X >>? C) << C   --> X & (-1 << C)  (When X >> C has multiple uses)
  (X >>? C1) << C2 --> X << (C2-C1) & (-1 << C2)   (When C2 > C1)
  (X >>? C1) << C2 --> X >>? (C1-C2) & (-1 << C2)  (When C1 > C2)

The corresponding exact transformations are preserved, just like
div-exact + mul:

  (X >>?,exact C) << C   --> X
  (X >>?,exact C1) << C2 --> X << (C2-C1)
  (X >>?,exact C1) << C2 --> X >>?,exact (C1-C2)

The disabled transformations could also prevent the instruction selector
from recognizing rotate patterns in hash functions and cryptographic
primitives. I have a test case for that, but it is too fragile.

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

12 years ago[docs] Add back old index.html until I get llvm.org work done to support Sphinx docs.
Daniel Dunbar [Thu, 19 Apr 2012 16:37:30 +0000 (16:37 +0000)]
[docs] Add back old index.html until I get llvm.org work done to support Sphinx docs.

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

12 years ago[docs] Convert docs index page into Sphinx.
Daniel Dunbar [Thu, 19 Apr 2012 16:31:37 +0000 (16:31 +0000)]
[docs] Convert docs index page into Sphinx.
 - Work in progress, this is mostly important because it lets us incrementally migrate the remaining documentation.
 - Lots of styling, editing, and integration work yet to come…
 - PR12589

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

12 years ago[docs] Stub out structure for Sphinx-based docs.
Daniel Dunbar [Thu, 19 Apr 2012 16:31:19 +0000 (16:31 +0000)]
[docs] Stub out structure for Sphinx-based docs.
 - Work in progress, this is just the basic structure.

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

12 years agollvm-lit: Inject the lit module path at the beginning of sys.path, just in case
Daniel Dunbar [Thu, 19 Apr 2012 16:31:08 +0000 (16:31 +0000)]
llvm-lit: Inject the lit module path at the beginning of sys.path, just in case
the user has another lit somewhere.

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

12 years agozap tabs
Gabor Greif [Thu, 19 Apr 2012 15:16:31 +0000 (15:16 +0000)]
zap tabs

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

12 years agoMake fast isel use &XXXRegClass instead of XXXRegisterClass. Not a functional change...
Craig Topper [Thu, 19 Apr 2012 06:52:06 +0000 (06:52 +0000)]
Make fast isel use &XXXRegClass instead of XXXRegisterClass. Not a functional change since XXXRegisterClass is just a constant alias of &XXXRegClass, but should probably go away.

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

12 years agoAllow targets to select the default scheduler by name.
Andrew Trick [Thu, 19 Apr 2012 01:34:10 +0000 (01:34 +0000)]
Allow targets to select the default scheduler by name.

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

12 years agowhitespace
Andrew Trick [Thu, 19 Apr 2012 01:34:06 +0000 (01:34 +0000)]
whitespace

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

12 years agoExtract the broken part of XFAILed test into its own file.
Jakob Stoklund Olesen [Thu, 19 Apr 2012 00:20:38 +0000 (00:20 +0000)]
Extract the broken part of XFAILed test into its own file.

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

12 years agoFix typo.
Jim Grosbach [Wed, 18 Apr 2012 23:46:25 +0000 (23:46 +0000)]
Fix typo.

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

12 years agoFixed the llvm-mv X86 disassembler so the 'C' API gets jumps properly
Kevin Enderby [Wed, 18 Apr 2012 23:12:11 +0000 (23:12 +0000)]
Fixed the llvm-mv X86 disassembler so the 'C' API gets jumps properly
symbolicated.  These have and operand type of TYPE_RELv which was not handled
as isBranch in translateImmediate() in X86Disassembler.cpp.  rdar://11268426

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

12 years agoDon't crash on code where the user put __attribute__((constructor)) on
Dan Gohman [Wed, 18 Apr 2012 22:24:33 +0000 (22:24 +0000)]
Don't crash on code where the user put __attribute__((constructor)) on
a function with arguments. This fixes rdar://11265785.

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

12 years agoAdd a flag to rebranch if we need to.
Bill Wendling [Wed, 18 Apr 2012 21:38:12 +0000 (21:38 +0000)]
Add a flag to rebranch if we need to.

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

12 years agoThis reverts a long string of commits to the Hexagon backend. These
Chandler Carruth [Wed, 18 Apr 2012 21:31:19 +0000 (21:31 +0000)]
This reverts a long string of commits to the Hexagon backend. These
commits have had several major issues pointed out in review, and those
issues are not being addressed in a timely fashion. Furthermore, this
was all committed leading up to the v3.1 branch, and we don't need piles
of code with outstanding issues in the branch.

It is possible that not all of these commits were necessary to revert to
get us back to a green state, but I'm going to let the Hexagon
maintainer sort that out. They can recommit, in order, after addressing
the feedback.

Reverted commits, with some notes:

Primary commit r154616: HexagonPacketizer
  - There are lots of review comments here. This is the primary reason
    for reverting. In particular, it introduced large amount of warnings
    due to a bad construct in tablegen.
  - Follow-up commits that should be folded back into this when
    reposting:
    - r154622: CMake fixes
    - r154660: Fix numerous build warnings in release builds.
  - Please don't resubmit this until the three commits above are
    included, and the issues in review addressed.

Primary commit r154695: Pass to replace transfer/copy ...
  - Reverted to minimize merge conflicts. I'm not aware of specific
    issues with this patch.

Primary commit r154703: New Value Jump.
  - Primarily reverted due to merge conflicts.
  - Follow-up commits that should be folded back into this when
    reposting:
    - r154703: Remove iostream usage
    - r154758: Fix CMake builds
    - r154759: Fix build warnings in release builds
  - Please incorporate these fixes and and review feedback before
    resubmitting.

Primary commit r154829: Hexagon V5 (floating point) support.
  - Primarily reverted due to merge conflicts.
  - Follow-up commits that should be folded back into this when
    reposting:
    - r154841: Remove unused variable (fixing build warnings)

There are also accompanying Clang commits that will be reverted for
consistency.

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

12 years agoLiveIntervalUpdate validators weren't recorded after the calls to std::for_each....
Pete Cooper [Wed, 18 Apr 2012 20:29:17 +0000 (20:29 +0000)]
LiveIntervalUpdate validators weren't recorded after the calls to std::for_each.  Turns out std::for_each doesn't update the variable passed in for the functor but instead copy constructs a new one.

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

12 years agoDocument that StringMap iteration order is non-deterministic.
Jim Grosbach [Wed, 18 Apr 2012 20:28:55 +0000 (20:28 +0000)]
Document that StringMap iteration order is non-deterministic.

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

12 years agoRevert "Replace some uses of std:map<std::string,...> with StringMap."
Jim Grosbach [Wed, 18 Apr 2012 20:24:49 +0000 (20:24 +0000)]
Revert "Replace some uses of std:map<std::string,...> with StringMap."

StringMap iterators are not deterministic, and that's more important
here than speed or memory.

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

12 years agotblgen: remove duplicated newlines.
Benjamin Kramer [Wed, 18 Apr 2012 19:22:47 +0000 (19:22 +0000)]
tblgen: remove duplicated newlines.

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

12 years agoReplace some uses of std:map<std::string,...> with StringMap.
Jim Grosbach [Wed, 18 Apr 2012 19:13:59 +0000 (19:13 +0000)]
Replace some uses of std:map<std::string,...> with StringMap.

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

12 years agoSourceMgr: Colorize diagnostics.
Benjamin Kramer [Wed, 18 Apr 2012 19:04:15 +0000 (19:04 +0000)]
SourceMgr: Colorize diagnostics.

Same color scheme as clang uses. The colors are only enabled if the output is a tty.

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

12 years agoUse SmallVector for the requirements on an InstAlias.
Jim Grosbach [Wed, 18 Apr 2012 19:02:43 +0000 (19:02 +0000)]
Use SmallVector for the requirements on an InstAlias.

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

12 years agoTidy up. Formatting.
Jim Grosbach [Wed, 18 Apr 2012 18:56:33 +0000 (18:56 +0000)]
Tidy up. Formatting.

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

12 years agoMark instruction classes ArithLogicR, ArithLogicI and LoadUpper as isRematerializable.
Akira Hatanaka [Wed, 18 Apr 2012 18:52:10 +0000 (18:52 +0000)]
Mark instruction classes ArithLogicR, ArithLogicI and LoadUpper as isRematerializable.

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

12 years agoDelete blank line.
Akira Hatanaka [Wed, 18 Apr 2012 18:47:17 +0000 (18:47 +0000)]
Delete blank line.

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

12 years agoMove a few more warnings to use PrintWarning().
Jim Grosbach [Wed, 18 Apr 2012 18:39:31 +0000 (18:39 +0000)]
Move a few more warnings to use PrintWarning().

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

12 years agoTidy up. No need for a Twine here, as it's just constants.
Jim Grosbach [Wed, 18 Apr 2012 18:39:27 +0000 (18:39 +0000)]
Tidy up. No need for a Twine here, as it's just constants.

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

12 years agoFormatting.
Jim Grosbach [Wed, 18 Apr 2012 18:39:23 +0000 (18:39 +0000)]
Formatting.

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

12 years agoTidy up. Add a '.' at the end of the sentence.
Jim Grosbach [Wed, 18 Apr 2012 18:39:19 +0000 (18:39 +0000)]
Tidy up. Add a '.' at the end of the sentence.

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

12 years agoFix copy/paste-o.
Jim Grosbach [Wed, 18 Apr 2012 18:09:53 +0000 (18:09 +0000)]
Fix copy/paste-o.

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

12 years agoClean up warning text. Remove extraneous prefix.
Jim Grosbach [Wed, 18 Apr 2012 18:09:50 +0000 (18:09 +0000)]
Clean up warning text.  Remove extraneous prefix.

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

12 years agoTableGen use PrintWarning rather than fprintf(stderr,...) for warnings.
Jim Grosbach [Wed, 18 Apr 2012 17:46:41 +0000 (17:46 +0000)]
TableGen use PrintWarning rather than fprintf(stderr,...) for warnings.

That way we get source line number information from the diagnostics.

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

12 years agoTidy up. Trailing whitespace.
Jim Grosbach [Wed, 18 Apr 2012 17:46:37 +0000 (17:46 +0000)]
Tidy up. Trailing whitespace.

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

12 years agoTableGen add warning diagnostic helper functions.
Jim Grosbach [Wed, 18 Apr 2012 17:46:31 +0000 (17:46 +0000)]
TableGen add warning diagnostic helper functions.

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

12 years agoFileCheckize
Jakob Stoklund Olesen [Wed, 18 Apr 2012 17:01:26 +0000 (17:01 +0000)]
FileCheckize

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

12 years agoNobody likes shifty instructions, but that was a bit strong.
Jakob Stoklund Olesen [Wed, 18 Apr 2012 16:44:44 +0000 (16:44 +0000)]
Nobody likes shifty instructions, but that was a bit strong.

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

12 years agoAdded support for disassembling unpredictable swp/swpb ARM instructions.
Silviu Baranga [Wed, 18 Apr 2012 14:18:57 +0000 (14:18 +0000)]
Added support for disassembling unpredictable swp/swpb ARM instructions.

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

12 years agoFix the bahavior of the disassembler when decoding unpredictable mrs instructions...
Silviu Baranga [Wed, 18 Apr 2012 14:09:07 +0000 (14:09 +0000)]
Fix the bahavior of the disassembler when decoding unpredictable mrs instructions on ARM. Now the diasassembler emmits warnings instead of errors.

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

12 years agoAdded support for unpredictable mcrr/mcrr2/mrrc/mrrc2 ARM instruction in the disassem...
Silviu Baranga [Wed, 18 Apr 2012 13:12:50 +0000 (13:12 +0000)]
Added support for unpredictable mcrr/mcrr2/mrrc/mrrc2 ARM instruction in the disassembler. Since the upredicability conditions are complex, C++ code was added to handle them.

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

12 years agoFixed decoding for the ARM cdp2 instruction. The restriction on the coprocessor numbe...
Silviu Baranga [Wed, 18 Apr 2012 13:02:55 +0000 (13:02 +0000)]
Fixed decoding for the ARM cdp2 instruction. The restriction on the coprocessor number was removed for this instruction.

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

12 years agoAdd suport for unpredicatble cases of the cmp, tst, teq and cmnz ARM instructions...
Silviu Baranga [Wed, 18 Apr 2012 12:48:43 +0000 (12:48 +0000)]
Add suport for unpredicatble cases of the cmp, tst, teq and cmnz ARM instructions in the disassembler.

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

12 years agoSmallPtrSet: Reuse DenseMapInfo's pointer hash function instead of inventing a bad...
Benjamin Kramer [Wed, 18 Apr 2012 10:37:32 +0000 (10:37 +0000)]
SmallPtrSet: Reuse DenseMapInfo's pointer hash function instead of inventing a bad one ourselves.

DenseMap's hash function uses slightly more entropy and reduces hash collisions
significantly.  I also experimented with Hashing.h, but it didn't gave a lot of
improvement while being much more expensive to compute.

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

12 years agoMove the JIT flags from llc to lli. These flags showed up as part of moving
Nick Lewycky [Wed, 18 Apr 2012 08:34:12 +0000 (08:34 +0000)]
Move the JIT flags from llc to lli. These flags showed up as part of moving
backend flags in TargetOptions.h into their own class in r145714.

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

12 years agoA bit of cleanup in the TestingGuide doc - dg.exp files no longer exist
Eli Bendersky [Wed, 18 Apr 2012 08:02:25 +0000 (08:02 +0000)]
A bit of cleanup in the TestingGuide doc - dg.exp files no longer exist

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

12 years agoSome formatting and grammar fixes in the FileCheck documentation
Eli Bendersky [Wed, 18 Apr 2012 07:44:03 +0000 (07:44 +0000)]
Some formatting and grammar fixes in the FileCheck documentation

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

12 years agoUse a heavy hammer to fix PR12573.
Bill Wendling [Wed, 18 Apr 2012 06:00:09 +0000 (06:00 +0000)]
Use a heavy hammer to fix PR12573.

If the loop contains invoke instructions, whose unwind edge escapes the loop,
then don't try to unswitch the loop. Doing so may cause the unwind edge to be
split, which not only is non-trivial but doesn't preserve loop simplify
information.

Fixes PR12573

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

12 years agoRemove AVX vpermil intrinsics. I removed their uses from clang headers and builtins...
Craig Topper [Wed, 18 Apr 2012 05:24:00 +0000 (05:24 +0000)]
Remove AVX vpermil intrinsics. I removed their uses from clang headers and builtins a while back.

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

12 years agoloop-reduce: Add an early bailout to catch extremely large loops.
Andrew Trick [Wed, 18 Apr 2012 04:00:10 +0000 (04:00 +0000)]
loop-reduce: Add an early bailout to catch extremely large loops.

This introduces a threshold of 200 IV Users, which is very
conservative but should be sufficient to avoid serious compile time
sink or stack overflow. The llvm test-suite with LTO never exceeds 190
users per loop.

The bug doesn't relate to a specific type of loop. Checking in an
arbitrary giant loop as a unit test would be silly.

Fixes rdar://11262507.

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

12 years agofix error check in assert
Seth Cantrell [Wed, 18 Apr 2012 00:40:23 +0000 (00:40 +0000)]
fix error check in assert

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

12 years agoFileCheckify, un-XFAIL SimplifyLibCalls/floor test
Joe Groff [Wed, 18 Apr 2012 00:36:07 +0000 (00:36 +0000)]
FileCheckify, un-XFAIL SimplifyLibCalls/floor test
Fixes build on MSVC

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

12 years agoMove win32 SimplifyLibcall test under Transforms
Joe Groff [Wed, 18 Apr 2012 00:07:45 +0000 (00:07 +0000)]
Move win32 SimplifyLibcall test under Transforms

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

12 years agoC++ has newlines at the end of files (including include files).
David Blaikie [Tue, 17 Apr 2012 23:46:51 +0000 (23:46 +0000)]
C++ has newlines at the end of files (including include files).

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

12 years agofix pr12559: mark unavailable win32 math libcalls
Joe Groff [Tue, 17 Apr 2012 23:05:54 +0000 (23:05 +0000)]
fix pr12559: mark unavailable win32 math libcalls
also fix SimplifyLibCalls to use TLI rather than compile-time conditionals to enable optimizations on floor, ceil, round, rint, and nearbyint

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

12 years agoallow opt to take a -mtriple option
Joe Groff [Tue, 17 Apr 2012 23:05:48 +0000 (23:05 +0000)]
allow opt to take a -mtriple option

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

12 years agoFixes a problem in instruction selection with testing whether or not the
Joel Jones [Tue, 17 Apr 2012 22:23:10 +0000 (22:23 +0000)]
Fixes a problem in instruction selection with testing whether or not the
transformation:

(X op C1) ^ C2 --> (X op C1) & ~C2 iff (C1&C2) == C2

should be done.

This change has been tested:
 Using a debug+asserts build:
   on the specific test case that brought this bug to light
   make check-all
   lnt nt
   using this clang to build a release version of clang
 Using the release+asserts clang-with-clang build:
   on the specific test case that brought this bug to light
   make check-all
   lnt nt

Checking in because Evan wants it checked in.  Test case forthcoming after
scrubbing.

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

12 years agoTypo.
Chad Rosier [Tue, 17 Apr 2012 21:48:36 +0000 (21:48 +0000)]
Typo.

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

12 years agoSanity check error handling for TokenAlias.
Jim Grosbach [Tue, 17 Apr 2012 21:23:52 +0000 (21:23 +0000)]
Sanity check error handling for TokenAlias.

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

12 years agoFix incorrect call of resolveRelocation() for ARM ELF stub relocations.
Danil Malyshev [Tue, 17 Apr 2012 20:10:16 +0000 (20:10 +0000)]
Fix incorrect call of resolveRelocation() for ARM ELF stub relocations.

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

12 years agoplatform support for counting column widths and checking isprint
Seth Cantrell [Tue, 17 Apr 2012 20:03:03 +0000 (20:03 +0000)]
platform support for counting column widths and checking isprint

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