Owen Anderson [Tue, 30 Aug 2011 22:03:20 +0000 (22:03 +0000)]
Fix encoding of Thumb1 B instructions with immediate offsets, which is necessary for round-tripping.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138834
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 30 Aug 2011 21:58:18 +0000 (21:58 +0000)]
Clean up whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138833
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 30 Aug 2011 21:23:24 +0000 (21:23 +0000)]
Fix off-by-one error Benjamin noticed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138832
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 30 Aug 2011 21:19:37 +0000 (21:19 +0000)]
Add a triple.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138831
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 30 Aug 2011 21:17:20 +0000 (21:17 +0000)]
Remove empty file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138830
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 30 Aug 2011 21:11:06 +0000 (21:11 +0000)]
Speculatively revert r138809 in an attempt to fix DragonEgg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138829
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 30 Aug 2011 20:54:11 +0000 (20:54 +0000)]
Enable compact unwind info by default. This only applies to Darwin when CFI is
disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138826
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Tue, 30 Aug 2011 20:53:29 +0000 (20:53 +0000)]
Fix C++0x narrowing errors when char is unsigned.
In the case of EDInstInfo, this would actually cause a bug when -1 became 255
and was then compared >=0 in llvm-mc/Disassembler.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138825
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 30 Aug 2011 20:25:49 +0000 (20:25 +0000)]
Preliminary documentation in docs/SegmentedStacks.html.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138823
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 30 Aug 2011 20:03:11 +0000 (20:03 +0000)]
Port Thumb2 assembler tests over to disassembler tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138822
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 30 Aug 2011 19:51:29 +0000 (19:51 +0000)]
Some test code to check if correct code is being generated.
Patch by Sanjoy Das.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138820
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolas Geoffray [Tue, 30 Aug 2011 19:50:33 +0000 (19:50 +0000)]
The code model of JIT should default to JITDefault.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138819
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 30 Aug 2011 19:47:04 +0000 (19:47 +0000)]
Adds support for variable sized allocas. For a variable sized alloca,
code is inserted to first check if the current stacklet has enough
space. If so, space is allocated by simply decrementing the stack
pointer. Otherwise a runtime routine (__morestack_allocate_stack_space
in libgcc) is called which allocates the required memory from the
heap.
Patch by Sanjoy Das.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138818
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 30 Aug 2011 19:43:21 +0000 (19:43 +0000)]
Adds a SelectionDAG node X86SegAlloca which will be custom lowered
from DYNAMIC_STACKALLOC.
Two new pseudo instructions (SEG_ALLOCA_32 and SEG_ALLOCA_64) which
will match X86SegAlloca (based on word size) are also added. They
will be custom emitted to inject the actual stack handling code.
Patch by Sanjoy Das.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138814
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 30 Aug 2011 19:39:58 +0000 (19:39 +0000)]
Emit segmented-stack specific code into function prologues for
X86. Modify the pass added in the previous patch to call this new
code.
This new prologues generated will call a libgcc routine (__morestack)
to allocate more stack space from the heap when required
Patch by Sanjoy Das.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138812
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 30 Aug 2011 19:29:02 +0000 (19:29 +0000)]
Command line option to enable support for segmented stacks:
-segmented-stacks.
Patch by Sanjoy Das!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138811
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 30 Aug 2011 19:09:48 +0000 (19:09 +0000)]
Follow up to r138791.
Add a instruction flag: hasPostISelHook which tells the pre-RA scheduler to
call a target hook to adjust the instruction. For ARM, this is used to
adjust instructions which may be setting the 's' flag. ADC, SBC, RSB, and RSC
instructions have implicit def of CPSR (required since it now uses CPSR physical
register dependency rather than "glue"). If the carry flag is used, then the
target hook will *fill in* the optional operand with CPSR. Otherwise, the hook
will remove the CPSR implicit def from the MachineInstr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138810
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 30 Aug 2011 18:51:55 +0000 (18:51 +0000)]
When walking backwards to eliminate final stores to allocas at the end of a function, encountering an unrelated store should not cause us to give up like encountering a load does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138809
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 30 Aug 2011 18:33:37 +0000 (18:33 +0000)]
Teach macho-dump how to dump linkedit_data load commands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138807
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 30 Aug 2011 18:33:34 +0000 (18:33 +0000)]
Add load commands from Lion to Macho.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138806
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Tue, 30 Aug 2011 18:26:11 +0000 (18:26 +0000)]
Update docs: Bugpoint understands -O[123]
Eli added this in revision 132695.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138805
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 30 Aug 2011 17:42:33 +0000 (17:42 +0000)]
Lit option for ignoring stderr output.
This is useful for testing a build a temporarily hand instrumented
build.
Patch by arrowdodger!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138804
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Divacky [Tue, 30 Aug 2011 17:04:16 +0000 (17:04 +0000)]
Set CR1EQ only when lowering vararg floating arguments (not any vararg
arguments as before), unset CR1EQ otherwise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138802
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Tue, 30 Aug 2011 07:27:02 +0000 (07:27 +0000)]
Fix typos in SPUMCTargetDesc.h
Patch supplied by Liu (projlc@gmail.com)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138799
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Tue, 30 Aug 2011 07:26:11 +0000 (07:26 +0000)]
Fix typo in BlackfinFrameLowering.h
Patch supplied by Liu (projlc@gmail.com)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138798
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Tue, 30 Aug 2011 07:24:47 +0000 (07:24 +0000)]
Fix typo in MSP430MCTargetDesc.h.
Patch supplied by Liu (projlc@gmail.com)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138797
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Tue, 30 Aug 2011 07:23:29 +0000 (07:23 +0000)]
Fix typo in MipsMCTargetDesc.h; Patch supplied by Liu (proljc@gmail.com)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138796
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 30 Aug 2011 07:09:35 +0000 (07:09 +0000)]
Add vvvv support to disassembling of instructions with MRMDestMem and MRMDestReg form. Needed to support mem dest form of vmaskmovps/d. Fixes PR10807.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138795
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 30 Aug 2011 05:36:02 +0000 (05:36 +0000)]
Do not try to rematerialize a value from a partial definition.
I don't currently have a good testcase for this; will try to get one
tomorrow. <rdar://problem/
10032939>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138794
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 30 Aug 2011 01:34:54 +0000 (01:34 +0000)]
Change ARM / Thumb2 addc / adde and subc / sube modeling to use physical
register dependency (rather than glue them together). This is general
goodness as it gives scheduler more freedom. However it is motivated by
a nasty bug in isel.
When a i64 sub is expanded to subc + sube.
libcall #1
\
\ subc
\ / \
\ / \
\ / libcall #2
sube
If the libcalls are not serialized (i.e. both have chains which are dag
entry), legalizer can serialize them in arbitrary orders. If it's
unlucky, it can force libcall #2 before libcall #1 in the above case.
subc
|
libcall #2
|
libcall #1
|
sube
However since subc and sube are "glued" together, this ends up being a
cycle when the scheduler combine subc and sube as a single scheduling
unit.
The right solution is to fix LegalizeType too chains the libcalls together.
However, LegalizeType is not processing nodes in order so that's harder than
it should be. For now, the move to physical register dependency will do.
rdar://
10019576
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138791
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 29 Aug 2011 23:24:15 +0000 (23:24 +0000)]
Revert 138781. It's not playing nicely with the immediate forms for ADC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138782
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 29 Aug 2011 23:20:54 +0000 (23:20 +0000)]
Thumb2 assembler aliases for ADC/SBC w/o the .w suffix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138781
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 29 Aug 2011 23:15:25 +0000 (23:15 +0000)]
Add missing encoding information for some of the GPR<->FP register moves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138780
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 29 Aug 2011 23:04:04 +0000 (23:04 +0000)]
Remove redundant tests from XFAIL'ed test file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138779
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 29 Aug 2011 23:01:38 +0000 (23:01 +0000)]
Thumb2 assembly parsing and encoding support for ADC(immediate).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138778
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 29 Aug 2011 23:00:19 +0000 (23:00 +0000)]
Remove test file. Superceded by other more exhaustive tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138777
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 29 Aug 2011 22:24:09 +0000 (22:24 +0000)]
Thumb2 parsing and encoding for IT blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138773
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Mon, 29 Aug 2011 22:06:28 +0000 (22:06 +0000)]
Fix the disassembly of the X86 crc32 instruction. Bug 10702 and rdar://
8795217
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138771
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 29 Aug 2011 21:15:46 +0000 (21:15 +0000)]
Explicitly zero out parts of a vector which are required to be zero by the algorithm in LowerUINT_TO_FP_i32. This only has a substantial effect on the generated code when the input is extracted from a vector register; other ways of loading an i32 do the appropriate zeroing implicitly. Fixes PR10802.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138768
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 29 Aug 2011 21:15:20 +0000 (21:15 +0000)]
Tidy up. Whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138767
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 29 Aug 2011 21:14:19 +0000 (21:14 +0000)]
Apply the same fix for the change in LDR_PRE_IMM/LDRB_PRE_IMM operand encodings to the load-store optimizer that I applied to the instruction selector in r138758. Fixes ary3 from the nightly test suite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138766
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 29 Aug 2011 21:03:12 +0000 (21:03 +0000)]
Fix grammar, noticed by Duncan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138764
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 29 Aug 2011 20:42:00 +0000 (20:42 +0000)]
Specify an additional fixed bit in the PLD/PLDW/PLI register-register encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138760
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 29 Aug 2011 20:39:23 +0000 (20:39 +0000)]
Update tests to new EH model. Add landingpad instructions to landing pads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138759
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 29 Aug 2011 20:16:50 +0000 (20:16 +0000)]
addrmode_imm12 and addrmode2_offset encode their immediate values differently. Update the manual instruction selection code that was encoding them the addrmode2 way even though LDR_PRE_IMM/LDRB_PRE_IMM had switched to addrmode_imm12. Should fix a number of nightly test failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138758
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Mon, 29 Aug 2011 19:58:36 +0000 (19:58 +0000)]
Fixes following the CR by Chris and Duncan:
Optimize chained bitcasts of the form A->B->A.
Undo r138722 and change isEliminableCastPair to allow this case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138756
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 29 Aug 2011 19:36:44 +0000 (19:36 +0000)]
Improve handling of #-0 offsets for many more pre-indexed addressing modes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138754
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 29 Aug 2011 18:25:59 +0000 (18:25 +0000)]
Initialize CompactUnwindSection so that other targets won't use an uninitialized value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138752
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 29 Aug 2011 18:23:02 +0000 (18:23 +0000)]
Expand ATOMIC_LOAD and ATOMIC_STORE for architectures I don't know well enough to fix properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138751
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 29 Aug 2011 18:22:04 +0000 (18:22 +0000)]
Tidy up. 80 columns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138750
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 29 Aug 2011 18:14:17 +0000 (18:14 +0000)]
Dump with dbgs() instead of printf.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138749
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 29 Aug 2011 18:14:15 +0000 (18:14 +0000)]
Make GCC happy by adding parens.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138748
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 29 Aug 2011 18:02:40 +0000 (18:02 +0000)]
Add testcase for r138746.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138747
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 29 Aug 2011 17:59:41 +0000 (17:59 +0000)]
Update the load-store optimizer for changes to the operands on LDR_PRE_IMM and LDRB_PRE_IMM in r138653.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138746
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Beaumont-Gay [Mon, 29 Aug 2011 17:54:20 +0000 (17:54 +0000)]
Fix a test that wasn't testing the right thing.
The APFloat "Zero" test was actually calling the
APFloat(const fltSemantics &, integerPart) constructor, and EXPECT_EQ was
treating 0 and -0 as equal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138745
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Mon, 29 Aug 2011 17:51:24 +0000 (17:51 +0000)]
Move non-intruction patterns to a more appropriate place!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138744
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 29 Aug 2011 17:17:09 +0000 (17:17 +0000)]
Add support for parsing #-0 on non-memory-operand immediate values, and add a testcase that necessitates it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138739
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 29 Aug 2011 17:07:00 +0000 (17:07 +0000)]
Reapply r138695. Fix PassManager stack depths.
Patch by Xiaoyi Guo!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138737
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Mon, 29 Aug 2011 15:44:55 +0000 (15:44 +0000)]
Add AMDIL as valid target triple to LLVM.
Submitted by: Villmow, Micah <Micah.Villmow@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138734
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolas Geoffray [Sun, 28 Aug 2011 14:52:51 +0000 (14:52 +0000)]
Remove premature previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138725
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Sun, 28 Aug 2011 13:17:22 +0000 (13:17 +0000)]
Fix PR5329: pay attention to constructor/destructor priority
when outputting them. With this, the entire LLVM testsuite
passes when built with dragonegg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138724
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolas Geoffray [Sun, 28 Aug 2011 13:07:57 +0000 (13:07 +0000)]
Encoding of instructions referencing segments has changed. Do what X86MCCodeEmitter does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138723
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Sun, 28 Aug 2011 11:51:08 +0000 (11:51 +0000)]
Bitcasts are transitive. Bitcast-Bitcast-X becomes Bitcast-X.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138722
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 28 Aug 2011 03:30:02 +0000 (03:30 +0000)]
Fix integer overflow bug in raw_ostream::write. This showed up as a
non-deterministic crash in the test suite. Fixes PR10055!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138717
91177308-0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 27 Aug 2011 19:23:22 +0000 (19:23 +0000)]
The 'expected' argument to EXPECT_EQ is actually the first one;
flip these tests around.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138708
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 27 Aug 2011 17:36:14 +0000 (17:36 +0000)]
Silence GCC warnings and make an array const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138706
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 27 Aug 2011 07:45:46 +0000 (07:45 +0000)]
Report failure if there are less bytes than requested in a MemoryObject.
Before we just left the remaining bytes uninitialized. This is another step in making llvm valgrind-clean again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138705
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Sat, 27 Aug 2011 06:17:30 +0000 (06:17 +0000)]
Reverted r138652, valgrind doesn't understand obj:*/tblgen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138703
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 27 Aug 2011 06:11:03 +0000 (06:11 +0000)]
Auto upgrade the old EH scheme to use the new one. This is on a trial basis. If
things to disasterously over night, this can be reverted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138702
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Sat, 27 Aug 2011 06:10:16 +0000 (06:10 +0000)]
Reverting r138695 to see if it fixes clang self host.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138701
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 27 Aug 2011 06:10:02 +0000 (06:10 +0000)]
Only delete instructions once.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138700
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 27 Aug 2011 04:53:41 +0000 (04:53 +0000)]
Update to new EH scheme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138699
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 27 Aug 2011 04:53:28 +0000 (04:53 +0000)]
Cannot have an llvm.eh.exception call in a non-landing pad block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138698
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 27 Aug 2011 04:40:37 +0000 (04:40 +0000)]
These splits should be done whether they are critical edges or not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138697
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Sat, 27 Aug 2011 02:11:03 +0000 (02:11 +0000)]
Fix PassManager stack depths.
Patch by Xiaoyi Guo!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138695
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Fri, 26 Aug 2011 23:39:30 +0000 (23:39 +0000)]
Excluding ARM JIT tests until someone can fix this compilation path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138676
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 Aug 2011 23:32:08 +0000 (23:32 +0000)]
Improve encoding support for BLX with immediat eoperands, and fix a BLX decoding bug this uncovered.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138675
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 Aug 2011 22:54:51 +0000 (22:54 +0000)]
Correct encoding of BL with immediate offset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138673
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 26 Aug 2011 22:21:51 +0000 (22:21 +0000)]
ARM assembly parsing tweak for pldw.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138669
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 Aug 2011 21:47:57 +0000 (21:47 +0000)]
Spelling fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138667
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 26 Aug 2011 21:43:41 +0000 (21:43 +0000)]
Thumb2 assembler parsing and encoding of IT instruction.
This handles only the handling of the IT instruction itself, not the
processing and validation of the instructions in the IT block. That's next,
and will include encoding tests for IT itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138665
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 26 Aug 2011 21:36:12 +0000 (21:36 +0000)]
Update the dominator tree with the correct dominator for the new 'unwind' block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138664
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 26 Aug 2011 21:21:21 +0000 (21:21 +0000)]
Add support for generating CMPXCHG16B on x86-64 for the cmpxchg IR instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138660
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 26 Aug 2011 21:18:55 +0000 (21:18 +0000)]
Split the landing pad block only if it's a critical edge. Also intelligently
split it in the other place where we're splitting critical edges.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138658
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 Aug 2011 21:12:37 +0000 (21:12 +0000)]
Fix ARM codegen breakage caused by r138653.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138657
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 26 Aug 2011 21:11:23 +0000 (21:11 +0000)]
Revert r138606 until LowerInvoke has been converted to the new EH scheme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138656
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 26 Aug 2011 21:02:40 +0000 (21:02 +0000)]
Whitespace and 80-col.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138654
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 Aug 2011 20:43:14 +0000 (20:43 +0000)]
invalid-LDR_PRE-arm.txt was already passing, but for the wrong reasons. We were failing to specify enough fixed bits of LDR_PRE/LDRB_PRE, resulting in decoding conflicts. Separate them into immediate vs. register versions, allowing us to specify the necessary fixed bits. This in turn results in the test being decoded properly, and being rejected as UNPREDICTABLE rather than a hard failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138653
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Fri, 26 Aug 2011 20:41:20 +0000 (20:41 +0000)]
valgrind: Always suppress tblgen leaks.
I'll clean up the rest of the XFAIL: vg_leak lines if this works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138652
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 26 Aug 2011 20:40:15 +0000 (20:40 +0000)]
Don't sink landingpad instructions during ind-var simplification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138651
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Fri, 26 Aug 2011 20:09:48 +0000 (20:09 +0000)]
Use %% for literals in RUN lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138647
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 Aug 2011 19:39:26 +0000 (19:39 +0000)]
Update for feedback from Jim.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138642
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 26 Aug 2011 19:05:18 +0000 (19:05 +0000)]
lit: Add %T as a replacement for the output directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138640
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 26 Aug 2011 18:21:36 +0000 (18:21 +0000)]
ARMDisassembler: Always return a size, even when disassembling fails.
This should fix PR10772.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138636
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 Aug 2011 18:09:22 +0000 (18:09 +0000)]
Support an extension of ARM asm syntax to allow immediate operands to ADR instructions. This is helpful for disassembler testing, and indeed exposed a disassembler bug that is also fixed here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138635
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 26 Aug 2011 17:00:30 +0000 (17:00 +0000)]
We don't care if TableGen leaks memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138634
91177308-0d34-0410-b5e6-
96231b3b80d8
Kalle Raiskila [Fri, 26 Aug 2011 10:14:56 +0000 (10:14 +0000)]
Don't insert branch hint lables that are never used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138630
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 Aug 2011 06:45:08 +0000 (06:45 +0000)]
Add a testcase for r138625.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138626
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 Aug 2011 06:19:51 +0000 (06:19 +0000)]
Fix PR10755 by checking for invalid predicate codes from UNPREDICTABLE t2IT instructions when decoding their successors.
This is the last disassembly crash detected by exhaustive Thumb2 instruction space. Major thanks to Chandler Carruth for making this kind of exhaustive testing possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138625
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 26 Aug 2011 04:49:29 +0000 (04:49 +0000)]
Fix disassembling of VCVTSD2SI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138623
91177308-0d34-0410-b5e6-
96231b3b80d8