Chandler Carruth [Sun, 22 Apr 2012 10:11:26 +0000 (10:11 +0000)]
Tidy up this test more:
1) Make the checked assertions a bit more precise. We really want the
canonical forms coming out of reassociate to be exactly what is
expected.
2) Remove other passes, and switch the test to actually directly check
that reassociate makes the important transforms and
canonicalizations.
3) Fold in a related test case now that we're using FileCheck. Make the
same tidying changes to it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155311
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 22 Apr 2012 10:11:23 +0000 (10:11 +0000)]
FileCheck-ize a test, and tidy it up a touch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155310
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Sun, 22 Apr 2012 09:39:03 +0000 (09:39 +0000)]
ZERO_EXTEND/SIGN_EXTEND/TRUNCATE optimization for AVX2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155309
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 22 Apr 2012 07:23:04 +0000 (07:23 +0000)]
Remove some potential warnings about variables used uninitialized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155307
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 21 Apr 2012 23:59:16 +0000 (23:59 +0000)]
Add a flag to the struct type finder to collect only those types which have
names. This saves collecting types we normally don't care about.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155300
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 21 Apr 2012 22:03:05 +0000 (22:03 +0000)]
No need for "else if" after a return. Autosense "0o123" as octal in
StringRef::getAsInteger
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155298
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 21 Apr 2012 21:02:03 +0000 (21:02 +0000)]
stop hiding SmallVector's append that takes a count + element.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155297
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Sat, 21 Apr 2012 20:08:32 +0000 (20:08 +0000)]
Teach getVectorTypeBreakdown about promotion of vectors in addition to widening of vectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155296
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 21 Apr 2012 18:58:38 +0000 (18:58 +0000)]
Make some fixed arrays const. Use array_lengthof in a couple places instead of a hardcoded number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155294
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 21 Apr 2012 18:13:35 +0000 (18:13 +0000)]
Tidy up. 80 columns and some other spacing issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155291
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 21 Apr 2012 16:05:27 +0000 (16:05 +0000)]
Remove unused PointerLikeTypeTraits for IndexListEntry.
It set NumLowBitAvailable = 3 which may not be true on all platforms. We only
ever use 2 bits (the default) so this assumption can be safely removed
Should fix PR12612.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155288
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sat, 21 Apr 2012 15:31:45 +0000 (15:31 +0000)]
llvm/lib/Target: [PR12611] Add "llvm/Support/raw_ostream.h" for Debug build on MSVC.
Thanks to Andy Gibbs, to report the issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155287
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sat, 21 Apr 2012 15:31:36 +0000 (15:31 +0000)]
HexagonISelLowering.cpp: Reorder #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155286
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sat, 21 Apr 2012 14:51:02 +0000 (14:51 +0000)]
CMake: Enable LLVM_COMPILER_JOBS on all MS IDEs. We don't support older environments than VS9.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155285
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sat, 21 Apr 2012 14:50:56 +0000 (14:50 +0000)]
CMake: Prune redundant LLVM_COMPILER_JOBS from llvm/CMakeLists.txt. HandleLLVMOptions.cmake has it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155284
91177308-0d34-0410-b5e6-
96231b3b80d8
Nuno Lopes [Sat, 21 Apr 2012 14:45:37 +0000 (14:45 +0000)]
move Signals to .rodata
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155283
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sat, 21 Apr 2012 11:24:55 +0000 (11:24 +0000)]
HexagonInstPrinter.cpp: Suppress -Wunused-variable warnings with -Asserts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155281
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 21 Apr 2012 10:51:42 +0000 (10:51 +0000)]
YAMLParser: silence warning about tautological comparison on unsigned-char platforms.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155280
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 21 Apr 2012 01:49:25 +0000 (01:49 +0000)]
Remove 'XXXRegisterClass' from tablegen output. Targets should use '&XXXRegClass' instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155270
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 20 Apr 2012 23:46:33 +0000 (23:46 +0000)]
ARM: tblgen'erate more NEON two-operand aliases.
VMUL and VEXT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155258
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 20 Apr 2012 23:36:09 +0000 (23:36 +0000)]
Fix PR12599.
The X86 target is editing the selection DAG while isel is selecting
nodes following a topological ordering. When the DAG hacking triggers
CSE, nodes can be deleted and bad things happen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155257
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 20 Apr 2012 23:30:14 +0000 (23:30 +0000)]
ARM: tblgen'erate more NEON two-operand aliases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155254
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 20 Apr 2012 23:11:38 +0000 (23:11 +0000)]
Revert r155241, which is causing some breakage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155253
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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