oota-llvm.git
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

12 years agoDelete latter half of CMakeLists.txt.
Akira Hatanaka [Tue, 17 Apr 2012 18:18:09 +0000 (18:18 +0000)]
Delete latter half of CMakeLists.txt.

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

12 years agoAdd disassembler to MIPS.
Akira Hatanaka [Tue, 17 Apr 2012 18:03:21 +0000 (18:03 +0000)]
Add disassembler to MIPS.

Patch by Vladimir Medic.

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

12 years agoGoodbye, JSONParser...
Manuel Klimek [Tue, 17 Apr 2012 17:21:17 +0000 (17:21 +0000)]
Goodbye, JSONParser...

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

12 years agoAdding operator== for document_iterator.
Manuel Klimek [Tue, 17 Apr 2012 16:38:41 +0000 (16:38 +0000)]
Adding operator== for document_iterator.

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

12 years agoForce cmov on test so block placement doesn't shuffle the code around.
Benjamin Kramer [Tue, 17 Apr 2012 13:55:23 +0000 (13:55 +0000)]
Force cmov on test so block placement doesn't shuffle the code around.

This made the test fail with -mcpu=generic (when building on a non-x86 host).

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

12 years agoRemove unused CCIfSubtarget.
Jay Foad [Tue, 17 Apr 2012 11:29:05 +0000 (11:29 +0000)]
Remove unused CCIfSubtarget.

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

12 years agoUnbreak the MSVC build, that next() thing again.
Francois Pichet [Tue, 17 Apr 2012 09:37:32 +0000 (09:37 +0000)]
Unbreak the MSVC build, that next() thing again.

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

12 years agoFix bad EXTRACT_SUBREG in instruction selection for extending-loads on NEON.
James Molloy [Tue, 17 Apr 2012 08:18:00 +0000 (08:18 +0000)]
Fix bad EXTRACT_SUBREG in instruction selection for extending-loads on NEON.

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

12 years agoRevert "SCEV: When expanding a GEP the final addition to the base pointer has NUW...
Benjamin Kramer [Tue, 17 Apr 2012 06:33:57 +0000 (06:33 +0000)]
Revert "SCEV: When expanding a GEP the final addition to the base pointer has NUW but not NSW."

This isn't right either, reverting for now.

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

12 years agoTest cases that assume layout should use -disable-code-place.
Andrew Trick [Tue, 17 Apr 2012 06:20:42 +0000 (06:20 +0000)]
Test cases that assume layout should use -disable-code-place.

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

12 years agoDon't decode vperm2i128 or vperm2f128 into a shuffle if bit 3 or 7 of the immediate...
Craig Topper [Tue, 17 Apr 2012 05:54:54 +0000 (05:54 +0000)]
Don't decode vperm2i128 or vperm2f128 into a shuffle if bit 3 or 7 of the immediate is set.

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

12 years agoDownload and build the compiler-rt project.
Bill Wendling [Tue, 17 Apr 2012 05:11:51 +0000 (05:11 +0000)]
Download and build the compiler-rt project.

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

12 years agoSlotIndexes used to store the index list in a crufty custom linked-list. I can't
Lang Hames [Tue, 17 Apr 2012 04:15:51 +0000 (04:15 +0000)]
SlotIndexes used to store the index list in a crufty custom linked-list. I can't
for the life of me remember why I wrote it this way, but I can't see any good
reason for it now. This patch replaces the custom linked list with an ilist.

This change should preserve the existing numberings exactly, so no generated code
should change (if it does, file a bug!).

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

12 years agoTypo in an unused field.
Andrew Trick [Tue, 17 Apr 2012 01:22:58 +0000 (01:22 +0000)]
Typo in an unused field.

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

12 years agoUpdate woefully stale credits entry. Everything listed there had been
Chandler Carruth [Tue, 17 Apr 2012 01:19:37 +0000 (01:19 +0000)]
Update woefully stale credits entry. Everything listed there had been
re-done by wiser souls.

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

12 years agoAdd a stub about the inline cost rewrite.
Chandler Carruth [Tue, 17 Apr 2012 01:13:53 +0000 (01:13 +0000)]
Add a stub about the inline cost rewrite.

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

12 years agoAdd a stub for block placement pass. This needs fleshing out w/ details
Chandler Carruth [Tue, 17 Apr 2012 01:10:35 +0000 (01:10 +0000)]
Add a stub for block placement pass. This needs fleshing out w/ details
about what folks should expect w.r.t. the new algorithm.

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

12 years agoDon't tag libcxx and libcxxabi since we don't release them just yet.
Bill Wendling [Tue, 17 Apr 2012 01:01:55 +0000 (01:01 +0000)]
Don't tag libcxx and libcxxabi since we don't release them just yet.

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

12 years agoFix ARM disassembly of VLD2 (single 2-element structure to all lanes)
Kevin Enderby [Tue, 17 Apr 2012 00:49:27 +0000 (00:49 +0000)]
Fix ARM disassembly of VLD2 (single 2-element structure to all lanes)
instructions with writebacks. And add test a case for all opcodes handed by
DecodeVLD2DupInstruction() in ARMDisassembler.cpp .

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

12 years agotemporarily XFAIL this test until post RA
Preston Gurd [Tue, 17 Apr 2012 00:21:35 +0000 (00:21 +0000)]
temporarily XFAIL this test until post RA
live-ins is properly enabled.

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

12 years agoTidy up. 80 columns.
Jim Grosbach [Tue, 17 Apr 2012 00:01:04 +0000 (00:01 +0000)]
Tidy up. 80 columns.

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

12 years agoTypo.
Eric Christopher [Mon, 16 Apr 2012 23:54:31 +0000 (23:54 +0000)]
Typo.

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

12 years agoMake comment here more clear.
Eric Christopher [Mon, 16 Apr 2012 23:54:23 +0000 (23:54 +0000)]
Make comment here more clear.

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

12 years agoDisable the atom scheduling test after r154874 broke it.
Chandler Carruth [Mon, 16 Apr 2012 23:11:39 +0000 (23:11 +0000)]
Disable the atom scheduling test after r154874 broke it.

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

12 years agoARM two-operand forms for vhadd and vhsub instructions.
Jim Grosbach [Mon, 16 Apr 2012 23:00:25 +0000 (23:00 +0000)]
ARM two-operand forms for vhadd and vhsub instructions.

rdar://11252521

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

12 years agoTemporarily turn off anti-dependency checking
Preston Gurd [Mon, 16 Apr 2012 22:52:28 +0000 (22:52 +0000)]
Temporarily turn off anti-dependency checking
during Post RA scheduling in X86,
until the X86 target is changed to properly set up
post RA liveness.

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

12 years agoAdd files which were not included by commit 154868.
Preston Gurd [Mon, 16 Apr 2012 22:26:48 +0000 (22:26 +0000)]
Add files which were not included by commit 154868.

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

12 years agoRelax this test a touch to cope with different assembly variants.
Chandler Carruth [Mon, 16 Apr 2012 22:20:48 +0000 (22:20 +0000)]
Relax this test a touch to cope with different assembly variants.

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

12 years agoImplement GDB integration for source level debugging of code JITed using
Preston Gurd [Mon, 16 Apr 2012 22:12:58 +0000 (22:12 +0000)]
Implement GDB integration for source level debugging of code JITed using
the MCJIT execution engine.

The GDB JIT debugging integration support works by registering a loaded
object image with a pre-defined function that GDB will monitor if GDB
is attached. GDB integration support is implemented for ELF only at this
time. This integration requires GDB version 7.0 or newer.

Patch by Andy Kaylor!

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

12 years agoFix updateTerminator to be resiliant to degenerate terminators where
Chandler Carruth [Mon, 16 Apr 2012 22:03:00 +0000 (22:03 +0000)]
Fix updateTerminator to be resiliant to degenerate terminators where
both fallthrough and a conditional branch target the same successor.
Gracefully delete the conditional branch and introduce any unconditional
branch needed to reach the actual successor. This fixes memory
corruption in 2009-06-15-RegScavengerAssert.ll and possibly other tests.

Also, while I'm here fix a latent bug I spotted by inspection. I never
applied the same fundamental fix to this fallthrough successor finding
logic that I did to the logic used when there are no conditional
branches. As a consequence it would have selected landing pads had they
be aligned in just the right way here. I don't have a test case as
I spotted this by inspection, and the previous time I found this
required have of TableGen's source code to produce it. =/ I hate backend
bugs. ;]

Thanks to Jim Grosbach for helping me reason through this and reviewing
the fix.

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

12 years agoMC assembly parser handling for trailing comma in macro instantiation.
Jim Grosbach [Mon, 16 Apr 2012 21:18:49 +0000 (21:18 +0000)]
MC assembly parser handling for trailing comma in macro instantiation.

A trailing comma means no argument at all (i.e., as if the comma were not
present), not an empty argument to the invokee.

rdar://11252521

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

12 years agoARM handle :lower16: and :upper16: after a '#' prefix.
Jim Grosbach [Mon, 16 Apr 2012 21:18:46 +0000 (21:18 +0000)]
ARM handle :lower16: and :upper16: after a '#' prefix.

rdar://11252521

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

12 years agoFileCheckize these tests.
Jakob Stoklund Olesen [Mon, 16 Apr 2012 20:56:42 +0000 (20:56 +0000)]
FileCheckize these tests.

Add an extra test to ldr_post with an immediate increment.

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

12 years agoForgot to remove fast math metadata from the release notes.
Duncan Sands [Mon, 16 Apr 2012 20:51:39 +0000 (20:51 +0000)]
Forgot to remove fast math metadata from the release notes.

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

12 years agoDisable code placement for this test.
Jakob Stoklund Olesen [Mon, 16 Apr 2012 20:49:06 +0000 (20:49 +0000)]
Disable code placement for this test.

It makes it less sensitive to small changes in heuristics.

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

12 years agoRemove support for the special 'fast' value for fpmath accuracy for the moment.
Duncan Sands [Mon, 16 Apr 2012 19:39:33 +0000 (19:39 +0000)]
Remove support for the special 'fast' value for fpmath accuracy for the moment.

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

12 years agoFix incorrect atomics codegen introduced in r154705, and extend test to catch it.
Richard Smith [Mon, 16 Apr 2012 18:43:53 +0000 (18:43 +0000)]
Fix incorrect atomics codegen introduced in r154705, and extend test to catch it.

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

12 years agoThis patch fixes 3 problems:
Akira Hatanaka [Mon, 16 Apr 2012 18:20:26 +0000 (18:20 +0000)]
This patch fixes 3 problems:

1. CHECKNEXT was used instead of CHECK-NEXT which caused the line to be
   ignored which in turn hid the next 2 problems:
2. ('sh_offset', 0x{{{[0-9,a-f]+}}) had one too many leading curly braces and
   failed to do it's job of accepting all hex digits and:
3. The check for the hex values for the code instructions didn't account for
   blank separators.

Patch by Jack Carter.

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

12 years agoRemove unused variable
David Blaikie [Mon, 16 Apr 2012 18:10:13 +0000 (18:10 +0000)]
Remove unused variable

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

12 years agoARM assembly two-operand forms for VRSHL.
Jim Grosbach [Mon, 16 Apr 2012 18:03:16 +0000 (18:03 +0000)]
ARM assembly two-operand forms for VRSHL.

rdar://11252521

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

12 years agoTidy up. Test formatting.
Jim Grosbach [Mon, 16 Apr 2012 18:03:14 +0000 (18:03 +0000)]
Tidy up. Test formatting.

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

12 years agoDo not add offset in applyFixup. This has already been accounted for in Value.
Akira Hatanaka [Mon, 16 Apr 2012 18:00:19 +0000 (18:00 +0000)]
Do not add offset in applyFixup. This has already been accounted for in Value.

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

12 years agoDescribe Polly as a 'Polyhedral Optimizer'
Tobias Grosser [Mon, 16 Apr 2012 17:18:49 +0000 (17:18 +0000)]
Describe Polly as a 'Polyhedral Optimizer'

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

12 years agoAdd Polly news to the release notes
Tobias Grosser [Mon, 16 Apr 2012 17:17:00 +0000 (17:17 +0000)]
Add Polly news to the release notes

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

12 years agoARM two-operand aliases for VRHADD instructions.
Jim Grosbach [Mon, 16 Apr 2012 17:14:11 +0000 (17:14 +0000)]
ARM two-operand aliases for VRHADD instructions.

rdar://11252521

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

12 years agoTidy up. Testcase formatting.
Jim Grosbach [Mon, 16 Apr 2012 17:14:07 +0000 (17:14 +0000)]
Tidy up. Testcase formatting.

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

12 years agoLink to the autovectorization EuroLLVM slides in the release notes.
Hal Finkel [Mon, 16 Apr 2012 17:06:49 +0000 (17:06 +0000)]
Link to the autovectorization EuroLLVM slides in the release notes.

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

12 years agoHexagon V5 (Floating Point) Support.
Sirish Pande [Mon, 16 Apr 2012 17:05:06 +0000 (17:05 +0000)]
Hexagon V5 (Floating Point) Support.

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

12 years agoMove to X86 directory because this fails on non-X86 platforms.
Bill Wendling [Mon, 16 Apr 2012 16:38:48 +0000 (16:38 +0000)]
Move to X86 directory because this fails on non-X86 platforms.

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

12 years agoMake it possible to indicate relaxed floating point requirements at the IR level
Duncan Sands [Mon, 16 Apr 2012 16:28:59 +0000 (16:28 +0000)]
Make it possible to indicate relaxed floating point requirements at the IR level
through the use of 'fpmath' metadata.  Currently this only provides a 'fpaccuracy'
value, which may be a number in ULPs or the keyword 'fast', however the intent is
that this will be extended with additional information about NaN's, infinities
etc later.  No optimizations have been hooked up to this so far.

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

12 years agoFlip the new block-placement pass to be on by default.
Chandler Carruth [Mon, 16 Apr 2012 13:49:17 +0000 (13:49 +0000)]
Flip the new block-placement pass to be on by default.

This is mostly to test the waters. I'd like to get results from FNT
build bots and other bots running on non-x86 platforms.

This feature has been pretty heavily tested over the last few months by
me, and it fixes several of the execution time regressions caused by the
inlining work by preventing inlining decisions from radically impacting
block layout.

I've seen very large improvements in yacr2 and ackermann benchmarks,
along with the expected noise across all of the benchmark suite whenever
code layout changes. I've analyzed all of the regressions and fixed
them, or found them to be impossible to fix. See my email to llvmdev for
more details.

I'd like for this to be in 3.1 as it complements the inliner changes,
but if any failures are showing up or anyone has concerns, it is just
a flag flip and so can be easily turned off.

I'm switching it on tonight to try and get at least one run through
various folks' performance suites in case SPEC or something else has
serious issues with it. I'll watch bots and revert if anything shows up.

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

12 years agoRemove an overly brittle test. This test will no longer be interesting
Chandler Carruth [Mon, 16 Apr 2012 13:49:09 +0000 (13:49 +0000)]
Remove an overly brittle test. This test will no longer be interesting
once we start changing the block layout, so just nuke it. If anyone has
ideas about how to craft a code layout agnostic form of the test please
let me know.

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

12 years agoRemove the methods for attaching metadata to instructions/retrieving metadata
Duncan Sands [Mon, 16 Apr 2012 13:44:35 +0000 (13:44 +0000)]
Remove the methods for attaching metadata to instructions/retrieving metadata
from instructions.  Chandler doesn't like them being here.

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

12 years agoAdd a somewhat hacky heuristic to do something different from whole-loop
Chandler Carruth [Mon, 16 Apr 2012 13:33:36 +0000 (13:33 +0000)]
Add a somewhat hacky heuristic to do something different from whole-loop
rotation. When there is a loop backedge which is an unconditional
branch, we will end up with a branch somewhere no matter what. Try
placing this backedge in a fallthrough position above the loop header as
that will definitely remove at least one branch from the loop iteration,
where whole loop rotation may not.

I haven't seen any benchmarks where this is important but loop-blocks.ll
tests for it, and so this will be covered when I flip the default.

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

12 years agoAdd convenience methods to MDBuilder for attaching metadata to instructions,
Duncan Sands [Mon, 16 Apr 2012 13:21:26 +0000 (13:21 +0000)]
Add convenience methods to MDBuilder for attaching metadata to instructions,
and retrieving it from instructions.  I don't have a use for this but is seems
logical for it to exist.  While there, remove some 'const' markings from methods
which are in fact 'const' in practice, but aren't logically 'const'.

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