Jim Grosbach [Wed, 21 Oct 2009 22:59:56 +0000 (22:59 +0000)]
The spill restore needs to be resolved to the SP/FP just like the spill
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84792
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 21 Oct 2009 22:59:24 +0000 (22:59 +0000)]
Conditionalize ARM/T2 frame index post-scavenging while working out fixes
for a few bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84791
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 21 Oct 2009 22:55:51 +0000 (22:55 +0000)]
Simplify code. No intended functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84790
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 21 Oct 2009 21:57:13 +0000 (21:57 +0000)]
Use StringRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84786
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 21 Oct 2009 21:36:27 +0000 (21:36 +0000)]
Most of the NEON shuffle instructions do not support 64-bit element types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84785
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 21 Oct 2009 21:25:09 +0000 (21:25 +0000)]
Do not use SmallVector to store MDNode elements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84784
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 21:15:18 +0000 (21:15 +0000)]
Revert r84764, it breaks mingw build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84783
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 21 Oct 2009 21:09:48 +0000 (21:09 +0000)]
XFAIL this test for PPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84782
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 21 Oct 2009 20:44:34 +0000 (20:44 +0000)]
Improve handling of immediates by splitting 32-bit immediates into two 16-bit
immediate operands when they will fit into the using instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84778
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 19:18:28 +0000 (19:18 +0000)]
Add DAG printing for RMW stuff debugging
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84776
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 19:17:55 +0000 (19:17 +0000)]
RMW preprocessing stuff was incorrect. Grab the stuff from x86 backend and disable some tests until it will be clever enough to handle them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84775
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 19:17:18 +0000 (19:17 +0000)]
Implement branch folding
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84774
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 19:16:49 +0000 (19:16 +0000)]
Cosmetic changes, no functionality changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84773
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Wed, 21 Oct 2009 19:11:40 +0000 (19:11 +0000)]
Make changes to rev 84292 as requested by Chris Lattner.
Most changes are cleanup, but there is 1 correctness fix:
I fixed InstCombine so that the icmp is removed only if the malloc call is removed (which requires explicit removal because the Worklist won't DCE any calls since they can have side-effects).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84772
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 21 Oct 2009 17:54:01 +0000 (17:54 +0000)]
Fix NEON VST2LN instruction encoding.
Patch by Johnny Chen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84767
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 21 Oct 2009 17:52:34 +0000 (17:52 +0000)]
Revert 84732. It was the wrong fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84766
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 21 Oct 2009 17:33:41 +0000 (17:33 +0000)]
Incorporate various suggestions Chris gave during metadata review.
- i < getNumElements() instead of getNumElements() > i
- Make setParent() private
- Fix use of resizeOperands
- Reset HasMetadata bit after removing all metadata attached to an instruction
- Efficient use of iterators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84765
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Wed, 21 Oct 2009 17:27:23 +0000 (17:27 +0000)]
Build shared lib instead of an archive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84764
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 21 Oct 2009 15:26:21 +0000 (15:26 +0000)]
Cleanup of frame index scavenging. Better code flow and more accurately
handles T2 and ARM use cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84761
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Wed, 21 Oct 2009 13:22:20 +0000 (13:22 +0000)]
Two corrections for docs/CMake.html.
Patch by Victor Zverovich!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84759
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Wed, 21 Oct 2009 10:49:00 +0000 (10:49 +0000)]
Fix PR5262: when folding select into PHI, make sure all operands are available
in the PHI's Basic Block. This uses a conservative approach, because we don't
have dominator info in instcombine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84754
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Wed, 21 Oct 2009 10:42:44 +0000 (10:42 +0000)]
Add a pass to overlay pic16 data sections for function frame and automatic
variables. This pass can be invoked by llvm-ld or opt to traverse over the call graph
to detect what function frames and their automatic variables can be overlaid.
Currently this builds an archive , but needs to be changed to a loadable module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84753
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Wed, 21 Oct 2009 10:38:59 +0000 (10:38 +0000)]
Added more options to mcc16 driver.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84752
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 21 Oct 2009 08:15:52 +0000 (08:15 +0000)]
Match more patterns to movt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84751
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 21 Oct 2009 07:56:02 +0000 (07:56 +0000)]
Need a comma after imp-use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84749
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 21 Oct 2009 06:01:54 +0000 (06:01 +0000)]
De-bork CMake build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84744
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Oct 2009 05:07:57 +0000 (05:07 +0000)]
Set comment string, patch by Johnny Chen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84743
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Oct 2009 04:11:19 +0000 (04:11 +0000)]
make GVN work better when TD is not around:
"In the existing code, if the load and the value to replace it with are
of different types *and* target data is available, it tries to use the
target data to coerce the replacement value to the type of the load.
Otherwise, it skips all effort to handle the type mismatch and just
feeds the wrongly-typed replacement value to replaceAllUsesWith, which
triggers an assertion.
The patch replaces it with an outer if checking for type mismatch, and
an inner if-else that checks whether target data is available and, if
not, returns false rather than trying to replace the load."
Patch by Kenneth Uildriks!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84739
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Oct 2009 04:10:24 +0000 (04:10 +0000)]
tidy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84738
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 21 Oct 2009 02:27:20 +0000 (02:27 +0000)]
Fix some more NEON instruction encoding problems.
Thanks to Johnny Chen for discovering the problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84732
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 21 Oct 2009 02:21:34 +0000 (02:21 +0000)]
Do not remove dead metadata for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84731
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 21 Oct 2009 02:15:46 +0000 (02:15 +0000)]
Leave some NEON instruction encoding bits unspecified instead of setting
a default value of zero. This is important for decoding the instructions.
Patch by Johnny Chen, with some changes from me, too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84730
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Wed, 21 Oct 2009 02:13:52 +0000 (02:13 +0000)]
Clarify documentation on multi_val options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84729
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Wed, 21 Oct 2009 02:13:13 +0000 (02:13 +0000)]
Implement any_[not_]empty and list versions of switch_on and [not_]empty.
Useful for OptionPreprocessor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84728
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 21 Oct 2009 01:44:44 +0000 (01:44 +0000)]
Revert r84658 and r84691. They were causing llvm-gcc bootstrap to fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84727
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Oct 2009 01:10:37 +0000 (01:10 +0000)]
IPSCCP is missing stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84725
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 21 Oct 2009 00:51:40 +0000 (00:51 +0000)]
This is passing on Darwin PPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84723
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Wed, 21 Oct 2009 00:43:48 +0000 (00:43 +0000)]
Delete the MacOSJITEventListener per echristo's request. It was disabled by
default and didn't work anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84720
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:14:15 +0000 (00:14 +0000)]
Add note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84713
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:13:58 +0000 (00:13 +0000)]
Be crazy and assert in case of unsupported modifier passed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84712
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:13:42 +0000 (00:13 +0000)]
Handle external symbols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84711
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:13:25 +0000 (00:13 +0000)]
Distinguish between pcrel imm operands and 'normal' ones. Fix fixes gross weirdness of asmprinting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84710
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:13:05 +0000 (00:13 +0000)]
Add basic block operands & jump kinds
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84709
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:12:44 +0000 (00:12 +0000)]
Ignore all implicit reg operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84708
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:12:27 +0000 (00:12 +0000)]
Add a workaround for different memops prefixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84707
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:12:08 +0000 (00:12 +0000)]
Checkpoint MCInst printer. We (almostly) able to print global / JT / constpool entries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84706
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:11:44 +0000 (00:11 +0000)]
Add reg-imm tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84705
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:11:27 +0000 (00:11 +0000)]
Add simple operand printing stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84704
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:11:08 +0000 (00:11 +0000)]
Add experimental MSP430 MCInstLowering stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84703
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:10:47 +0000 (00:10 +0000)]
Wire up MSP430 printMCInst() method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84702
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:10:30 +0000 (00:10 +0000)]
Add MSP430 InstPrinter stub
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84701
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 21 Oct 2009 00:10:00 +0000 (00:10 +0000)]
Use proper target data
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84700
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Tue, 20 Oct 2009 22:50:43 +0000 (22:50 +0000)]
Respect src register allocation requirements when breaking anti-dependencies. Remove some dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84691
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 20 Oct 2009 22:50:27 +0000 (22:50 +0000)]
Cosmetic changes.
s/validName/isValidName/g
s/with an Instruction/to an Instruction/g
s/RegisterMDKind/registerMDKind/g
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84689
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 20 Oct 2009 22:10:05 +0000 (22:10 +0000)]
Fix -Asserts warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84687
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 20 Oct 2009 21:37:45 +0000 (21:37 +0000)]
Fix invalid for vector types fneg(bitconvert(x)) => bitconvert(x ^ sign)
transform.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84683
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 20 Oct 2009 21:28:22 +0000 (21:28 +0000)]
Oops. Backing out 84681 - needs to wait for the indexing patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84682
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 20 Oct 2009 21:25:13 +0000 (21:25 +0000)]
Added some debugging output to pre-alloc splitting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84681
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 21:04:26 +0000 (21:04 +0000)]
add a real testcase for PR4313
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84676
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 21:00:47 +0000 (21:00 +0000)]
add a test similar to that needed for PR4313, but that doesn't
fail without the patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84675
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 20:57:58 +0000 (20:57 +0000)]
the date on this testcase is wrong, it is unreduced, and it passes without the fix for PR4313.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84674
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 20 Oct 2009 20:41:13 +0000 (20:41 +0000)]
Fix another place that calls Loop::contains a lot to construct a sorted
container of the blocks and do efficient lookups. This makes
isLoopSimplifyForm much faster on large loops, fixing a significant
compile-time issue in builds with assertions enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84673
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 20:39:43 +0000 (20:39 +0000)]
merge and filecheckize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84672
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 20:33:46 +0000 (20:33 +0000)]
merge two tests and convert to filecheck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84671
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 20 Oct 2009 20:31:31 +0000 (20:31 +0000)]
Disable by default while debugging
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84669
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 20:27:49 +0000 (20:27 +0000)]
alternate fix for PR5258 which avoids worklist problems, with reduced testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84667
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 20 Oct 2009 20:19:50 +0000 (20:19 +0000)]
add cmd line opt to disable frame index reuse for ARM and T2. debug aid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84664
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 20 Oct 2009 20:06:09 +0000 (20:06 +0000)]
Restore LoopUnswitch's block-oriented threshold. LoopUnswitch now checks both
the estimated code size and the number of blocks when deciding whether to
do a non-trivial unswitch. This protects it from some very undesirable
worst-case behavior on large numbers of loop-unswitchable conditions, such
as in the testcase in PR5259.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84661
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Tue, 20 Oct 2009 19:54:44 +0000 (19:54 +0000)]
Checkpoint more aggressive anti-dependency breaking for post-ra scheduler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84658
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 20 Oct 2009 19:52:35 +0000 (19:52 +0000)]
Better handle instructions that re-def a scratch register
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84657
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 20 Oct 2009 18:14:49 +0000 (18:14 +0000)]
Following r84485, add Defs = [EFLAGS] to the 32-bit lock instructions too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84652
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Tue, 20 Oct 2009 18:13:21 +0000 (18:13 +0000)]
Move the Function*->allocated blocks map from the JITMemoryManager to the
JITEmitter.
I'm gradually making Functions auto-remove themselves from the JIT when they're
destroyed. In this case, the Function needs to be removed from the JITEmitter,
but the map recording which Functions need to be removed lived behind the
JITMemoryManager interface, which made things difficult.
This patch replaces the deallocateMemForFunction(Function*) method with a pair
of methods deallocateFunctionBody(void *) and deallocateExceptionTable(void *)
corresponding to the two startFoo/endFoo pairs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84651
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 20 Oct 2009 16:33:57 +0000 (16:33 +0000)]
Register re-use for scavenged frame indices must check for re-deginition
of the register in the instruction which kills the scavenged value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84641
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 20 Oct 2009 16:22:37 +0000 (16:22 +0000)]
Make TranslateX86CC return COND_INVALID instead of aborting when it
encounters an OEQ or UNE comparison, and update its callers to check
for this return status and recover. This fixes a problem resulting from
the LowerOperation hooks being called from LegalizeVectorOps, because
LegalizeVectorOps only lowers vectors, so OEQ and UNE comparisons may
still be at large. This fixes PR5092.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84640
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Tue, 20 Oct 2009 15:42:00 +0000 (15:42 +0000)]
Fix PR5258, jump-threading creating invalid PHIs.
When an incoming value for a PHI is updated, we must also updated all other
incoming values for the same BB to match, otherwise we create invalid PHIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84638
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Tue, 20 Oct 2009 15:15:09 +0000 (15:15 +0000)]
Fix PR4313: IPSCCP was not setting the lattice value for the invoke instruction
when the invoke had multiple return values: it set the lattice value only on the
extractvalue.
This caused the invoke's lattice value to remain the default (undefined), and
later propagated to extractvalue's operand, which incorrectly introduces
undefined behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84637
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 20 Oct 2009 11:44:38 +0000 (11:44 +0000)]
Random #include pruning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84632
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Tue, 20 Oct 2009 09:16:32 +0000 (09:16 +0000)]
This file is replaeced by PIC16Section.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84628
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 20 Oct 2009 07:30:54 +0000 (07:30 +0000)]
NNT: Implement "config mode", use -config path/to/llvm-config
- This runs the nightly test and does all the submission logic, but using the
LLVM build specified by the llvm-config.
- Useful for, among other things, testing NNT itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84620
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 20 Oct 2009 07:30:46 +0000 (07:30 +0000)]
NNT: Remove unused BUILDTYPE argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84619
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 06:22:33 +0000 (06:22 +0000)]
implement some more easy hooks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84614
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 06:15:28 +0000 (06:15 +0000)]
Implement some hooks, make printOperand abort if unknown modifiers are
present.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84613
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 05:58:02 +0000 (05:58 +0000)]
t2MOVi32imm is currently always lowered by the Thumb2ITBlockPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84611
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 20 Oct 2009 05:33:23 +0000 (05:33 +0000)]
PowerPC ifdef'ing considered more complicated than one might like.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84603
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 20 Oct 2009 05:15:36 +0000 (05:15 +0000)]
Wire up the ARM MCInst printer, for llvm-mc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84600
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 20 Oct 2009 04:50:37 +0000 (04:50 +0000)]
Re-apply r84295, with fixes to how the loop "top" and "bottom" blocks are
tracked. Instead of trying to manually keep track of these locations
while doing complex modifications, just recompute them when they're needed.
This fixes a bug in which the TopMBB and BotMBB were not correctly updated,
leading to invalid transformations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84598
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 20 Oct 2009 04:23:20 +0000 (04:23 +0000)]
Trim unnecessary includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84597
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 20 Oct 2009 04:16:37 +0000 (04:16 +0000)]
Add getTopBlock and getBottomBlock member functions to MachineLoopInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84596
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 20 Oct 2009 04:09:50 +0000 (04:09 +0000)]
Correct test for PowerPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84595
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 20 Oct 2009 02:23:13 +0000 (02:23 +0000)]
Revert "Tweak top-level Makefile to facilitate Apple-style build.", this is
breaking Clang's Apple-style build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84592
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 20 Oct 2009 02:23:05 +0000 (02:23 +0000)]
NNT: Remove duplicate verbose print.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84591
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 20 Oct 2009 01:32:47 +0000 (01:32 +0000)]
Now that all ARM subtargets use frame index scavenging, the Thumb1 requires*
functions are not needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84587
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 20 Oct 2009 01:31:09 +0000 (01:31 +0000)]
If the physical register being spilled does not have an interval, spill its sub-registers instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84586
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 20 Oct 2009 01:26:58 +0000 (01:26 +0000)]
Enable post-pass frame index register scavenging for ARM and Thumb2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84585
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 01:11:37 +0000 (01:11 +0000)]
lower ARM::MOVi32imm properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84583
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 00:56:16 +0000 (00:56 +0000)]
add support for external symbols. The mc instprinter can now handle
reasonable code like Codegen/ARM/2009-02-27-SpillerBug.ll, producing
identical output except for superior formatting of constant pool entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84582
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 00:52:47 +0000 (00:52 +0000)]
get fancy: support basic block operands. Yay for jumps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84579
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 00:46:11 +0000 (00:46 +0000)]
add supprort for the 'sbit' operand, MOVi apparently has one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84577
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 00:42:49 +0000 (00:42 +0000)]
add support for instruction predicates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84575
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Oct 2009 00:40:56 +0000 (00:40 +0000)]
implement printSORegOperand, add lowering for the nasty and despicable MOVi2pieces :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84573
91177308-0d34-0410-b5e6-
96231b3b80d8