Jim Grosbach [Wed, 20 Jul 2011 18:48:53 +0000 (18:48 +0000)]
Add parsing/encoding tests for ARM ORR instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135602
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 20 Jul 2011 18:39:38 +0000 (18:39 +0000)]
Consolidate ARM NOP encoding test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135600
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 20 Jul 2011 18:37:08 +0000 (18:37 +0000)]
ARM parsing and encoding tests for MVN
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135599
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 20 Jul 2011 18:20:31 +0000 (18:20 +0000)]
ARM assembly parsing of MUL instruction.
Correctly handle 's' bit and predication suffices. Add parsing and encoding
tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135596
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 20 Jul 2011 18:14:33 +0000 (18:14 +0000)]
PR10421: Fix a straightforward bug in the widening logic for CONCAT_VECTORS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135595
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 20 Jul 2011 18:13:23 +0000 (18:13 +0000)]
Initialize the EHFrameSection pointer to zero.
This should fix the spurious buildbot errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135594
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 20 Jul 2011 17:04:49 +0000 (17:04 +0000)]
Regenerate configure and friends for Chad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135592
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Wed, 20 Jul 2011 08:15:21 +0000 (08:15 +0000)]
Fix a GCC warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135581
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 20 Jul 2011 07:51:56 +0000 (07:51 +0000)]
- Move CodeModel from a TargetMachine global option to MCCodeGenInfo.
- Introduce JITDefault code model. This tells targets to set different default
code model for JIT. This eliminates the ugly hack in TargetMachine where
code model is changed after construction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135580
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 20 Jul 2011 06:54:19 +0000 (06:54 +0000)]
Include MCRegisterInfo to eliminate a compilation warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135575
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Wed, 20 Jul 2011 06:35:24 +0000 (06:35 +0000)]
Fix the CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135573
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 20 Jul 2011 05:58:47 +0000 (05:58 +0000)]
Add MCObjectFileInfo and sink the MCSections initialization code from
TargetLoweringObjectFileImpl down to MCObjectFileInfo.
TargetAsmInfo is done to one last method. It's *almost* gone!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135569
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 20 Jul 2011 05:32:06 +0000 (05:32 +0000)]
indvars: Added getInsertPointForUses to find a valid place to truncate the IV.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135568
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 20 Jul 2011 04:39:24 +0000 (04:39 +0000)]
indvars -disable-iv-rewrite: Add NarrowIVDefUse to cache def-use
info. Holding Use* pointers is bad form even though it happened to
work in this case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135566
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 20 Jul 2011 04:02:20 +0000 (04:02 +0000)]
X86Subtarget.h: Assume "x86_64-cygwin", though it has not been released yet, to appease test/CodeGen/X86 on cygwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135564
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 20 Jul 2011 03:09:11 +0000 (03:09 +0000)]
New pointer rotate test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135562
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 20 Jul 2011 02:44:39 +0000 (02:44 +0000)]
Extra semi-colon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135561
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 20 Jul 2011 02:14:37 +0000 (02:14 +0000)]
indvars test case for r135558.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135559
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 20 Jul 2011 02:08:58 +0000 (02:08 +0000)]
indvars -disable-iv-rewrite fix: derived GEP IVs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135558
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 20 Jul 2011 01:27:58 +0000 (01:27 +0000)]
Don't leak CodeGenInfos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135555
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Wed, 20 Jul 2011 00:53:09 +0000 (00:53 +0000)]
Change name of class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135550
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Wed, 20 Jul 2011 00:23:01 +0000 (00:23 +0000)]
Define classes for definitions of atomic instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135546
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 23:33:42 +0000 (23:33 +0000)]
Build and install the archive when building the Apple way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135538
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 19 Jul 2011 23:30:50 +0000 (23:30 +0000)]
Lower memory barriers to sync instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135537
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 19 Jul 2011 23:14:32 +0000 (23:14 +0000)]
Fix an obvious typo that's preventing x86 (32-bit) from using .literal16.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135535
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 19 Jul 2011 22:59:41 +0000 (22:59 +0000)]
PR10386: Don't try to split an edge from an indirectbr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135534
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 19 Jul 2011 22:59:25 +0000 (22:59 +0000)]
Fix off-by-one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135533
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 22:45:10 +0000 (22:45 +0000)]
Tweak ARM assembly parsing and printing of MSR instruction.
The system register spec should be case insensitive. The preferred form for
output with mask values of 4, 8, and 12 references APSR rather than CPSR.
Update and tidy up tests accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135532
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 19 Jul 2011 22:31:15 +0000 (22:31 +0000)]
Distinguish between two copies of one inlined variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135528
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 21:59:29 +0000 (21:59 +0000)]
ARM assembly parsing of MRS instruction.
Teach the parser to recognize the APSR and SPSR system register names. Add
and update tests accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135527
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 19 Jul 2011 21:06:00 +0000 (21:06 +0000)]
Enhance the FixedLengthDecoder to be able to generate plausible-looking decoders for ARM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135524
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 19 Jul 2011 20:56:53 +0000 (20:56 +0000)]
Change variable name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135522
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 20:35:35 +0000 (20:35 +0000)]
ARM assembly parsing for MRC/MRC2/MRRC/MRRC2.
Add range checking to the immediate operands. Update tests accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135521
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 19 Jul 2011 20:34:00 +0000 (20:34 +0000)]
Use the correct opcodes: SLLV/SRLV or AND must be used instead of SLL/SRL or
ANDi, when the instruction does not have any immediate operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135520
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 20:28:56 +0000 (20:28 +0000)]
Move mr[r]c[2] ARM tests and tidy up a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135517
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 20:23:25 +0000 (20:23 +0000)]
ARM testcases for MOVT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135516
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 19 Jul 2011 20:11:17 +0000 (20:11 +0000)]
Use descriptive variable names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135514
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 20:10:31 +0000 (20:10 +0000)]
ARM assembly parsing for MOV (register).
Correct the handling of the 's' suffix when parsing ARM mode. It's only a
truly separate opcode in Thumb. Add test cases to make sure we handle
the s and condition suffices correctly, including diagnostics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135513
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 19:47:11 +0000 (19:47 +0000)]
Tidy up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135507
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 19:45:44 +0000 (19:45 +0000)]
Tighten conditional for 'mov' cc_out.
Make sure we only clobber the cc_out operand if it is indeed a default
non-setting operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135506
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 19 Jul 2011 19:41:54 +0000 (19:41 +0000)]
Reapply r135457. This needs llvm-gcc change, that I forgot to check-in yesterday.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135504
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 19:13:28 +0000 (19:13 +0000)]
ARM assembly parsing for MOV (immediate).
Add range checking for the immediate operand and handle the "mov" mnemonic
choosing between encodings based on the value of the immediate. Add tests
for fixups, encoding choice and values, and diagnostic for out of range values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135500
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 19:02:39 +0000 (19:02 +0000)]
Whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135499
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 18:32:48 +0000 (18:32 +0000)]
Remove unused code.
cc_out and pred operands are added during parsing via custom C++ now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135497
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 19 Jul 2011 18:19:40 +0000 (18:19 +0000)]
Fix comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135496
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 19 Jul 2011 18:14:26 +0000 (18:14 +0000)]
Remove redundant instructions.
- In EmitAtomicBinaryPartword, mask incr in loopMBB only if atomic.swap is the
instruction being expanded, instead of masking it in thisMBB.
- Remove redundant Or in EmitAtomicCmpSwap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135495
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 19 Jul 2011 17:09:53 +0000 (17:09 +0000)]
Separate code that modifies control flow from code that adds instruction to
basic blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135490
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Jul 2011 16:50:30 +0000 (16:50 +0000)]
ARM range checking for so_imm operands in assembly parsing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135489
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 19 Jul 2011 16:32:50 +0000 (16:32 +0000)]
Revert "Make a provision to encode inline location in a variable. This will enable dwarf writer to easily distinguish between two instances of a inlined variable in one basic block."
This reverts commit
9fec5e346efdf744b151ae6604f912908315fa7a.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135486
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 19 Jul 2011 16:31:58 +0000 (16:31 +0000)]
Revert "Update docs to reflect r135457."
This reverts commit
ba034c0a2e71303c7cf3f43ca8e69dc8436b32e2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135485
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Tue, 19 Jul 2011 15:30:30 +0000 (15:30 +0000)]
Convert ConstantFoldGetElementPtr to use ArrayRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135483
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Tue, 19 Jul 2011 15:07:52 +0000 (15:07 +0000)]
Convert SimplifyGEPInst to use ArrayRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135482
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Tue, 19 Jul 2011 14:42:50 +0000 (14:42 +0000)]
Convert gep_type_begin and gep_type_end to use ArrayRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135481
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Tue, 19 Jul 2011 14:01:37 +0000 (14:01 +0000)]
Convert TargetData::getIndexedOffset to use ArrayRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135478
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Tue, 19 Jul 2011 13:32:40 +0000 (13:32 +0000)]
Use ArrayRef in ConstantFoldInstOperands and ConstantFoldCall.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135477
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Osborne [Tue, 19 Jul 2011 13:28:50 +0000 (13:28 +0000)]
Add intrinsics for the zext / sext instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135476
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Osborne [Tue, 19 Jul 2011 13:00:40 +0000 (13:00 +0000)]
Add intrinsics for the testct, testwct instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135475
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Osborne [Tue, 19 Jul 2011 12:50:25 +0000 (12:50 +0000)]
Add intrinsics for the peek and endin instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135474
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 19 Jul 2011 08:22:57 +0000 (08:22 +0000)]
Remove bogus test: for all possible inputs of %X, the 'sub nsw' is guaranteed
to perform a signed wrap. Don't rely on any particular handling of that case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135471
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 19 Jul 2011 06:37:02 +0000 (06:37 +0000)]
Introduce MCCodeGenInfo, which keeps information that can affect codegen
(including compilation, assembly). Move relocation model Reloc::Model from
TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135468
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 19 Jul 2011 03:42:13 +0000 (03:42 +0000)]
Make EmitAtomic functions return the correct MachineBasicBlocks so that
ExpandISelPseudos::runOnMachineFunction does not visit instructions that have
just been added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135465
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 19 Jul 2011 03:14:58 +0000 (03:14 +0000)]
Do not insert instructions in reverse order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135464
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 19 Jul 2011 02:24:07 +0000 (02:24 +0000)]
Make isLoadExtLegal and isTruncStoreLegal check what the name says. :) This might have some minor effect on CellSPU, but all other targets should be unaffected. Fixing per report from Damien Vincent on llvmdev.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135462
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 19 Jul 2011 01:04:39 +0000 (01:04 +0000)]
Update docs to reflect r135457.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135458
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 19 Jul 2011 01:03:32 +0000 (01:03 +0000)]
Make a provision to encode inline location in a variable. This will enable dwarf writer to easily distinguish between two instances of a inlined variable in one basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135457
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 19 Jul 2011 00:28:24 +0000 (00:28 +0000)]
Revert r135423.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135454
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Tue, 19 Jul 2011 00:20:54 +0000 (00:20 +0000)]
Document how to maintain a git-svn clone of the LLVM git repositories.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135453
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:09:25 +0000 (00:09 +0000)]
Micro-opt: Only emit compact unwind if there is a compact unwind encoding to emit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135452
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:06:12 +0000 (00:06 +0000)]
Use the CompactUnwindEncoding from the Frame, if it's defined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135451
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:02:51 +0000 (00:02 +0000)]
Add a frame with the compact unwind encoding if it exists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135450
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:01:42 +0000 (00:01 +0000)]
Add a method to set compact unwind encoding information in a frame.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135449
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:00:58 +0000 (00:00 +0000)]
Rename CompactEncoding to CompactUnwindEncoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135448
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Tue, 19 Jul 2011 00:00:41 +0000 (00:00 +0000)]
Fixed a bug where the MC subtarget information
wasn't being initialized by the enhanced disassembler,
leading to assertion failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135447
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:00:05 +0000 (00:00 +0000)]
Add a field for the compact unwind encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135446
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 18 Jul 2011 23:38:40 +0000 (23:38 +0000)]
Move the compact encoding from the target-specific library to the code-gen
library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135443
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 18 Jul 2011 23:25:34 +0000 (23:25 +0000)]
Revamp our handling of tLDMIA[_UPD] and tSTMIA[_UPD] to avoid having multiple instructions with the same encoding. This resolves another conflict when bringing up the new-style disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135442
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 18 Jul 2011 22:32:12 +0000 (22:32 +0000)]
Eliminate TargetAsmInfo::getCompactUnwindEncoding. This get rid of the
use of TargetFrameLowering in TargetAsmInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135439
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 18 Jul 2011 22:29:13 +0000 (22:29 +0000)]
Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions for
better location welcome).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135438
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 18 Jul 2011 22:14:02 +0000 (22:14 +0000)]
Mark the Darwin assembler workout as isCodeGenOnly, so that it doesn't cause decoding conflicts in the new-style disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135434
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Mon, 18 Jul 2011 21:45:40 +0000 (21:45 +0000)]
Add APInt(numBits, ArrayRef<uint64_t> bigVal) constructor to prevent future ambiguity
errors like the one corrected by r135261. Migrate all LLVM callers of the old
constructor to the new one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135431
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 18 Jul 2011 21:23:42 +0000 (21:23 +0000)]
FileCheck-ize a couple tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135427
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 18 Jul 2011 21:15:03 +0000 (21:15 +0000)]
Compiler warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135426
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 18 Jul 2011 20:57:22 +0000 (20:57 +0000)]
Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo down
to MCRegisterInfo. Also initialize the mapping at construction time.
This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step
towards fixing the layering violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135424
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 18 Jul 2011 20:55:23 +0000 (20:55 +0000)]
During bottom up fast-isel, instructions emitted to materalize registers are at top of basic block and do not have debug location. This may misguide debugger while entering the basic block and sometimes debugger provides semi useful view of current location to developer by picking up previous known location as current location. Assign a sensible location to the first instruction in a basic block, if it does not have one location derived from source file, so that debugger can provide meaningful user experience to developers in edge cases.
[take 2]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135423
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 18 Jul 2011 20:32:31 +0000 (20:32 +0000)]
indvars: LinearFunctionTestReplace for non-canonical IVs.
For -disable-iv-rewrite, perform LFTR without generating a new
"canonical" induction variable. Instead find the "best" existing
induction variable for use in the loop exit test and compute the final
value of that IV for use in the new loop exit test. In short,
convert to a simple eq/ne exit test as long as it's cheap to do so.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135420
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 18 Jul 2011 19:58:59 +0000 (19:58 +0000)]
Do not treat atomic.load.sub differently than other atomic binary intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135418
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 18 Jul 2011 18:52:12 +0000 (18:52 +0000)]
Set mayLoad or mayStore flags for SC and LL in order to prevent LICM from
moving them out of the loop. Previously, stores and loads to a stack frame
object were inserted to accomplish this. Remove the code that was needed to do
this. Patch by Sasa Stankovic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135415
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 18 Jul 2011 18:50:52 +0000 (18:50 +0000)]
Re-apply r135319 with a fix for the constant island pass.
Original Log: Get rid of the separate opcodes for the Darwin versions of tBL, tBLXi, and tBLXr, using pseudo-instructions to lower to the single final opcode. Update the ARM disassembler for this change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135414
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 18 Jul 2011 18:47:13 +0000 (18:47 +0000)]
Fix a crash when building 177.mesa for armv6.
When splitting a live range immediately before an LDR_POST instruction
that redefines the address register, make sure to use the correct value
number in leaveIntvBefore.
We need the value number entering the instruction.
<rdar://problem/
9793765>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135413
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 18 Jul 2011 18:44:20 +0000 (18:44 +0000)]
indvars: Added verification that LFTR and other indvars goodness does
not interfere with BackedgeTakenCount computation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135412
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 18 Jul 2011 18:21:35 +0000 (18:21 +0000)]
indvars: Added isHighCostExpansion. Avoid generating extra ops in the
preheader for the sole purpose of LFTR, since LFTR itself is usually not
a clear optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135409
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Mon, 18 Jul 2011 18:11:25 +0000 (18:11 +0000)]
Be more smart with VCVTSS2SD. Also place the patterns close to the
definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135407
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Mon, 18 Jul 2011 17:51:40 +0000 (17:51 +0000)]
Add AVX 128-bit sqrt versions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135404
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 18 Jul 2011 17:44:27 +0000 (17:44 +0000)]
Change destination register operands of SC instructions so that unique
virtual registers are used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135403
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 18 Jul 2011 17:02:57 +0000 (17:02 +0000)]
Intern all RecTy subclass instances to avoid duplicates.
Make all of the RecTy constructors private, and use get() factory
methods instead. Return singleton instances when it makes sense.
ListTy instance pointers are stored in the element RecTy instance.
BitsRecTy instance pointers, one per length, are stored in a static vector.
Also unique DefInit instances. A Record has a unique DefInit which
has a unique RecordRecTy instance.
This saves some 200k-300k RecTy allocations when parsing ARM.td. It
reduces TableGen's heap usage by almost 50%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135399
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Jul 2011 16:35:57 +0000 (16:35 +0000)]
various cleanups noticed by Frits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135396
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Jul 2011 16:04:11 +0000 (16:04 +0000)]
remove pasto
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135394
91177308-0d34-0410-b5e6-
96231b3b80d8
Frits van Bommel [Mon, 18 Jul 2011 12:31:03 +0000 (12:31 +0000)]
Hopefully fix some GCC-based buildbots. GCC apparently decays the array to a pointer here before overload resolution, so construct with an explicit length instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135391
91177308-0d34-0410-b5e6-
96231b3b80d8
Frits van Bommel [Mon, 18 Jul 2011 12:00:32 +0000 (12:00 +0000)]
Migrate LLVM and Clang to use the new makeArrayRef(...) functions where previously explicit non-default constructors were used.
Mostly mechanical with some manual reformatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135390
91177308-0d34-0410-b5e6-
96231b3b80d8
Frits van Bommel [Mon, 18 Jul 2011 11:58:53 +0000 (11:58 +0000)]
Introduce the 'makeArrayRef(...)' family of functions, which fills a similar role for ArrayRef<> as std::make_pair() fills for std::pair<>: they return the right instantiation of ArrayRef<T> based on the types of the parameters.
They mostly mirror the ArrayRef constructors, with two exceptions:
* There's no function mirroring the default constructor because it wouldn't have any parameters to deduce the right ArrayRef<T> from.
* There's an explicit SmallVector<T> overload in addition to the SmallVectorImpl<T> overload. Without it, the single-element overload would try to create an ArrayRef<Smallvector<T> > because it's a better match according to the overloading rules. (And both overloads are used in the current tree, so neither is redundant)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135389
91177308-0d34-0410-b5e6-
96231b3b80d8