Chris Lattner
21d272874b
tidy up, no functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119092 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 23:32:42 +00:00
Chris Lattner
749ba48fab
with the picbase nonsense starting to be figured out, implement
...
lowering support for MovePCtoLR[8]. Down to 4 failures again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119090 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 22:56:43 +00:00
Chris Lattner
142b531e02
move the pic base symbol stuff up to MachineFunction
...
since it is trivial and will be shared between ppc and x86.
This substantially simplifies the X86 backend also.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119089 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 22:48:15 +00:00
Chris Lattner
4fd0ea0166
simplify getPICBaseSymbol a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119088 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 22:37:11 +00:00
Chris Lattner
6135a96792
reimplement ppc asmprinter "toc" handling to use a VariantKind
...
on the operand, required for .o file writing and fixing
the PowerPC/mult-alt-generic-powerpc64.ll failure with the new
instprinter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119087 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 22:22:59 +00:00
Chris Lattner
2ead458ae8
lower PPC::MFCRpseud when transforming to MC, avoiding calling
...
the aborting printSpecial() method. This gets us to 8 failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119084 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 22:03:15 +00:00
Chris Lattner
959fb3dd5c
make the stubbed-out printer methods abort instead of
...
printing nothing. This gets us back up to 24 failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119083 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:54:34 +00:00
Chris Lattner
b2e477f546
wire up a few more things, down to 4 test failures, all
...
about handling $stub, lo/hi etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119082 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:51:37 +00:00
Chris Lattner
fd6688f59a
properly wire up the instprinter to the ppc64 backend, down to 5 failures.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119081 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:42:53 +00:00
Chris Lattner
2e35248f14
implement pretty printing support for the various pseudo
...
ops the asmprinter supported, fixing PowerPC/rlwimi2.ll
among others. Down to 20 failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119080 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:39:51 +00:00
Chris Lattner
58d014f603
Wire up symbol hi/lo printing. We don't print hi()/lo(), but this gets
...
us further along. Only 28 failures now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119079 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:33:07 +00:00
Chris Lattner
1520fd6095
implement basic support for symbol operand lowering,
...
and printing support for call operands. Down to 77 failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119078 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:20:46 +00:00
Chris Lattner
77ec256be6
trim #includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119075 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:16:04 +00:00
Chris Lattner
a7217c824d
switch PPC to a simplified MCInstLowering model.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119074 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:12:33 +00:00
Rafael Espindola
55d02f3a13
Fix another case of a .comm directive without a corresponding .type
...
directive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119073 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:11:16 +00:00
Chris Lattner
8d63ba8260
fix PPC.h to not pull in TargetMachine.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119072 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:09:28 +00:00
Chris Lattner
30e2cc254b
rename LowerToMCInst -> LowerARMMachineInstrToMCInst.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119071 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 21:00:02 +00:00
Chris Lattner
1612a619f1
even more simplifications. ARM MCInstLowering is now just
...
a single function instead of a class. It doesn't need the
complexity that X86 does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119070 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 20:58:38 +00:00
Chris Lattner
b16ddb1fb3
more shrinkification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119068 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 20:41:53 +00:00
Chris Lattner
de36af4c15
more simplifications.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119067 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 20:40:08 +00:00
Chris Lattner
112f2390e1
simplify and tidy up
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119066 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 20:31:06 +00:00
Chris Lattner
fdb2ded765
implement basic support for memory operands and crbit operands,
...
this fixes 3 more ppc tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119065 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 20:22:56 +00:00
Chris Lattner
99889132f3
implement several trivial operand printers, reducing
...
failures in CodeGen/PowerPC from 120 -> 117
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119063 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 20:11:21 +00:00
Chris Lattner
0d1b7d9e3d
Implement support for printing register and immediate operands,
...
add support for darwin vs aix syntax. We now can print instructions
like this:
add r3, r3, r4
blr
and (in aix mode):
add 3, 3, 4
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119062 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 20:02:39 +00:00
Chris Lattner
293ef9ae0f
stub out PPCMCInstLowering, add a new option that uses it and the new
...
instprinter when -enable-ppc-inst-printer is passed to llc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119061 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 19:53:02 +00:00
Rafael Espindola
765fb1a446
Fix the type of a symbol created with .comm and no corresponding .type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119060 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 19:40:55 +00:00
Chris Lattner
60d5b5fdee
stub out a powerpc MCInstPrinter implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119059 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 19:40:38 +00:00
Chris Lattner
1139691e3a
move all the target's asmprinters into the main target. The piece
...
that should be split out is the InstPrinter (if a target is mc'ized).
This change makes all the targets be consistent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119056 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:43:56 +00:00
Duncan Sands
eff0581583
If dom tree information is available, make it possible to pass
...
it to get better phi node simplification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119055 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:36:10 +00:00
Chris Lattner
0094345184
move PPCAsmPrinter into the main PPC library, like ARM and X86.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119054 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:33:33 +00:00
Chris Lattner
02bc19438f
fix cmake
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119053 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:27:11 +00:00
Chris Lattner
c476ed93f1
remove JIT support from the Alpha backend. The JIT will be moving to MC,
...
and the Alpha backend isn't MCized yet. Approved by Andrew.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119051 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:24:41 +00:00
Chris Lattner
b0269cd2c8
random acts of tidiness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119049 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 18:09:50 +00:00
Duncan Sands
cd6636c737
Teach InstructionSimplify about phi nodes. I chose to have it simply
...
offload the work to hasConstantValue rather than do something more
complicated (such handling mutually recursive phis) because (1) it is
not clear it is worth it; and (2) if it is worth it, maybe such logic
would be better placed in hasConstantValue. Adjust some GVN tests
which are now cleaned up much further (eg: all phi nodes are removed).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119043 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 13:30:18 +00:00
Duncan Sands
c0362d5c6e
Boost the power of phi node constant folding slightly: if all
...
operands are the phi node itself or undef, then return undef.
This logic already existed at a higher level so in practice it
shouldn't make the slightest difference. Note that this code
could be replaced by a call to PN->hasConstantValue(). However
since we bail out the moment we see a non-constant operand, it
is more efficient to have a specialized version of that logic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119041 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 12:53:18 +00:00
Duncan Sands
12a86f5b31
Strip trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119038 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 11:23:23 +00:00
Owen Anderson
83da6cd5e2
Second attempt at providing correct encodings for Thumb2 binary operators.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119029 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 05:37:38 +00:00
Rafael Espindola
1f4f9e3d35
Handle a peculiar comdat case: Creating a section with an undefined
...
signature symbol causes a local symbol to be created unless there is
some other use of the symbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119026 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 04:17:37 +00:00
Rafael Espindola
ab4a7afe98
Simplify getSymbolIndexInSymbolTable by setting the actual index of
...
the symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119022 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 03:12:24 +00:00
Rafael Espindola
7e528a1724
Fix warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119021 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-14 01:34:31 +00:00
Peter Collingbourne
948cf0289f
Recognise 32-bit ror-based bswap implementation used by uclibc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119007 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 19:54:30 +00:00
Peter Collingbourne
983611836c
Support ; as asm separator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119006 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 19:54:23 +00:00
Duncan Sands
096aa79276
Generalize the reassociation transform in SimplifyCommutative (now renamed to
...
SimplifyAssociativeOrCommutative) "(A op C1) op C2" -> "A op (C1 op C2)",
which previously was only done if C1 and C2 were constants, to occur whenever
"C1 op C2" simplifies (a la InstructionSimplify). Since the simplifying operand
combination can no longer be assumed to be the right-hand terms, consider all of
the possible permutations. When compiling "gcc as one big file", transform 2
(i.e. using right-hand operands) fires about 4000 times but it has to be said
that most of the time the simplifying operands are both constants. Transforms
3, 4 and 5 each fired once. Transform 6, which is an existing transform that
I didn't change, never fired. With this change, the testcase is now optimized
perfectly with one run of instcombine (previously it required instcombine +
reassociate + instcombine, and it may just have been luck that this worked).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119002 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 15:10:37 +00:00
Duncan Sands
768b87c085
Fix typo pointed out by Trevor Harmon.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119001 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 12:16:27 +00:00
Bill Wendling
c93989a060
Comment out the defms until they're activated.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119000 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 11:20:05 +00:00
Bill Wendling
ddc918b379
Add uses of the *_ldst_multi multiclasses. These aren't used yet.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118999 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 10:57:02 +00:00
Bill Wendling
1f4abcfa5c
Convert the modes to lower case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118998 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 10:43:34 +00:00
Bill Wendling
04863d06fb
Minor cleanups:
...
- Get the opcode once.
- Add a ParserMatchClass to reglist.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118997 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 10:40:19 +00:00
Bill Wendling
6c470b806f
Add *_ldst_mult multiclasses to the ARM back-end. These will be used in the
...
future to separate out the ia, ib, da, db variants of the load/store multiple
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118995 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 09:09:38 +00:00
Daniel Dunbar
115a3dd066
MC: Simplify Mach-O and ELF object writer implementations.
...
- What was I thinking?????
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118992 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 07:33:40 +00:00
Wesley Peck
90eff7337d
Fixed error and re-enabled MBlaze MC disassembler tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118987 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 05:48:21 +00:00
Evan Cheng
c47f7d643e
Conditional moves are slightly more expensive than moves.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118985 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 05:14:20 +00:00
Rafael Espindola
e9c0ff2a76
Fix warning and add support for printing gnu_unique_object.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118981 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 04:55:06 +00:00
Rafael Espindola
e13a0ff8ac
Parse and record the gnu_unique_object type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118980 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 04:51:02 +00:00
Rafael Espindola
c50a0fd7cb
Parse and remember discriminators in .loc line. I try to output them with
...
another patch.
This lets us parse a bit more of the gcc 4.5 output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118975 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 03:18:27 +00:00
Daniel Dunbar
48dd875be1
JIT: More nitty style tweakage, aka territory marking.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118973 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 02:48:57 +00:00
Daniel Dunbar
afd693cff3
report_fatal_error: Simplify a possible ambiguity.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118972 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 02:48:51 +00:00
Wesley Peck
ec57d53342
1. Adding test cases for MBlaze MC disassembler.
...
2. Fixing several errors in disassembler uncovered by test cases.
3. Fixing invalid encoding of PCMPEQ and PCMPNE uncovered by test cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118969 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 02:37:59 +00:00
Evan Cheng
63f3544a7f
Add conditional move of large immediate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118968 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 02:25:14 +00:00
Jim Grosbach
df7e0f8d5d
Swap multiclass operand order for consistency with other patterns.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118965 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 01:28:30 +00:00
Jim Grosbach
0f6e33b0c8
Continue ARM indexed load refactoring. Multiclass for LDR{B} pre/post indexed
...
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118963 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 01:07:20 +00:00
Rafael Espindola
64185cc609
Fix the encoding of negative line deltas.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118962 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 01:06:27 +00:00
Daniel Dunbar
32c7a5e08c
Fix some more 80-col violas.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118959 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 00:55:45 +00:00
Daniel Dunbar
ab19da4bc0
Fix 80-col violation / non-sensicalness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118958 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 00:55:42 +00:00
Jim Grosbach
9e0bfb5829
More ARM load/store indexed refactoring. Also fix an incorrect IndexMode
...
flag for the LDRT/STRT family instructions as a side effect.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118955 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 00:35:48 +00:00
Dan Gohman
0e65eb2065
Revert r118917, which is implicated in the llvm-gcc-i386-linux-selfhost failure.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118954 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 00:31:40 +00:00
Evan Cheng
e5e0ef180e
Fix an obvious typo which inverted an immediate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118951 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 00:27:47 +00:00
Wesley Peck
24d06f2be5
1. Adding missing immediate mode asm parser test cases.
...
2. Fixing improper immediate mode reverse subtract.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118948 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 00:03:46 +00:00
Eric Christopher
84e86c0156
Temporarily revert this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118946 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 23:50:48 +00:00
Evan Cheng
11c11f8ab0
For pre-v6t2 targets, only select MOVi32imm if the immediate can be handled with movi + orr.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118945 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 23:46:13 +00:00
Wesley Peck
8bfdd87714
Fixing improperly encoded reverse subtract instructions in MBlaze backend.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118943 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 23:41:10 +00:00
Owen Anderson
b9a643e2cd
Revert r118939 while I work out why it broke some buildbots.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118942 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 23:36:03 +00:00
Wesley Peck
41400da31e
1. Finishing MBlaze MC asm parser test cases
...
2. Parsing .word directive in MBlaze asm parser
3. Fixing hack where memory instructions reversed order of last two parameters
4. Fixing many improperly encoded instructions
5. Support parsing special instructions (MFS,MTS,etc.)
6. Removing unused functions from inst printer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118941 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 23:30:17 +00:00
Devang Patel
522ad74e4b
Remove DW_AT_start_scope support. It is incomplete and superseeded by location entries support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118940 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 23:20:42 +00:00
Owen Anderson
7a6b810dcb
Attemt to provide correct encodings for Thumb2 binary operators.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118939 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 23:18:11 +00:00
Evan Cheng
893d7fe209
Eliminate ARM::MOVi2pieces. Just use MOVi32imm and expand it to either movi+orr or movw+movt depending on the subtarget.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118938 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 23:03:38 +00:00
Eric Christopher
c0394c0b8c
Make this happen for ARM like x86. Don't entirely bail out when
...
an address is in a different block, get it into a register and go
from there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118936 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 22:52:32 +00:00
Evan Cheng
875a6ac09a
Add conditional mvn instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118935 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 22:42:47 +00:00
Jim Grosbach
e1634e9351
Zap a copy/paste-o bit of dead code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118926 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 21:29:10 +00:00
Jim Grosbach
2716e25c2c
Refactor to parameterize some ARM load/store encoding patterns. Preparatory
...
to splitting the load/store pre/post indexed instructions into [r, r] and
[r, imm] forms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118925 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 21:28:15 +00:00
Owen Anderson
5de6d841a5
First stab at providing correct Thumb2 encodings, start with adc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118924 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 21:12:40 +00:00
Duncan Sands
88c3df7afb
Have GVN simplify instructions as it goes. For example, consider
...
"%z = %x and %y". If GVN can prove that %y equals %x, then it turns
this into "%z = %x and %x". With the new code, %z will be replaced
with %x everywhere (and then deleted). Previously %z would be value
numbered too, which is a waste of time. Also, while a clever value
numbering algorithm would give %z the same value number as %x, our
current one doesn't do so (at least I don't think it does). The new
logic has an essentially equivalent effect to what you would get if
%z was given the same value number as %x, i.e. it should make value
numbering smarter. While there, get hold of target data once at the
start rather than a gazillion times all over the place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118923 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 21:10:24 +00:00
Evan Cheng
529916ca4a
Add some missing isel predicates on def : pat patterns to avoid generating VFP vmla / vmls (they cause stalls). Disabling them in isel is properly not a right solution, I'll look into a proper solution next.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118922 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 20:32:20 +00:00
Jim Grosbach
b39e6488ee
Kill more unused stuff.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118921 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 19:27:45 +00:00
Benjamin Kramer
1261a2ff99
MCELF: Copy the symbol name only if we're going to modify it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118920 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 19:26:04 +00:00
Jim Grosbach
a0a6a47c02
Remove unused class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118919 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 19:24:53 +00:00
Dan Gohman
52668c9a30
When the definition of an address value is in a different block
...
from the user of the address, fall back to just using the
address in a register instead of bailing out of fast-isel
altogether.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118917 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 19:14:00 +00:00
Chris Lattner
269f10b316
accept lret as an alias for lretl, fixing the reopened part of PR8592
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118916 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 18:54:56 +00:00
Rafael Espindola
bac0ad9eda
Remove what looks like dead code in the production of debug lines.
...
We only produce debug line information if we have seen a line directive, so
this code is dead. Also, if we want to be bug by bug compatible with
gas and sometimes produce "empty" .debug_line sections, this will
match the content produced by gas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118914 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 18:41:26 +00:00
Andrew Trick
f06202f8e8
typo (4th checkin for one fix)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118913 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 18:36:03 +00:00
Jim Grosbach
d75c3f136b
Fill in the default predication bits for ARM unconditional branch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118907 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 18:13:26 +00:00
Jim Grosbach
80f9e6724f
Encoding for ARM LDRSB instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118905 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 17:52:59 +00:00
Andrew Trick
de91f3c5eb
Fixes PR8287: SD scheduling time. The fix is a failsafe that prevents
...
catastrophic compilation time in the event of unreasonable LLVM
IR. Code quality is a separate issue--someone upstream needs to do a
better job of reducing to llvm.memcpy. If the situation can be reproduced with
any supported frontend, then it will be a separate bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118904 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 17:50:46 +00:00
Chris Lattner
6b5e3978e3
implement PR8592: empirically "lretq" is a "lret" with a rex.w prefix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118903 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 17:41:20 +00:00
Chris Lattner
a29aae7aca
tidy up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118896 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 17:24:29 +00:00
Rafael Espindola
d4a352609f
gnu as support both % and @ before types, do the same.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118893 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 15:47:08 +00:00
Dan Gohman
c9d8a75e44
Re-disable TBAA for now; it broke MultiSource/Applications/JM/lencod,
...
at least.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118890 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 11:21:08 +00:00
Kalle Raiskila
7ea1ab5f41
Fix memory access lowering on SPU, adding
...
support for the case where alignment<value size.
These cases were silently miscompiled before this patch.
Now they are overly verbose -especially storing is- and
any front-end should still avoid misaligned memory
accesses as much as possible. The bit juggling algorithm
added here probably has some room for improvement still.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118889 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 10:14:03 +00:00
Eric Christopher
d0c82a683e
Fix up a few more spots of addrmode2 (or not) changes that were
...
missed. Update some comments accordingly.
Fixes rdar://8652289
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118888 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 09:48:30 +00:00
Dan Gohman
b238536ada
Enable TBAA.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118884 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 06:20:01 +00:00
Lang Hames
5e77f4b1d2
Fix some style issues in PBQP. Patch by David Blaikie.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118883 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 05:47:21 +00:00
Dan Gohman
720a2ed6d9
Enhance DSE to handle the case where a free call makes more than
...
one store dead. This is especially noticeable in
SingleSource/Benchmarks/Shootout/objinst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118875 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 02:19:17 +00:00
Dale Johannesen
0e03456a65
Remove possibly useful info from comment, per Chris.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118865 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 00:43:18 +00:00
Bruno Cardoso Lopes
7d5652dcd5
Enable mips32 mul instruction. Patch by Akira Hatanaka <ahatanaka@mips.com>
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118864 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-12 00:38:32 +00:00
Jim Grosbach
e50e6bcd90
Start of support for binary emit of 16-it Thumb instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118859 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 23:41:09 +00:00
Owen Anderson
8f14391314
Fill out support for Thumb2 encodings of NEON instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118854 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 23:12:55 +00:00
Wesley Peck
48bcda4dd6
The BRK instruction in the MicroBlaze is a branch-and-link.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118848 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 22:21:08 +00:00
Nick Lewycky
67b6464377
Doxygenify
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118846 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 21:51:44 +00:00
Dan Gohman
6d8eb156e6
Add helper functions for computing the Location of load, store,
...
and vaarg instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118845 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 21:50:19 +00:00
Wesley Peck
ef5b390263
Fix tblgen instruction errors exposed by MC asm parser tests
...
Fix minimum 16-bit signed value error exposed by MC asm parser tests
Add initial MC asm parser tests for the MBlaze backend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118844 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 21:40:53 +00:00
Owen Anderson
57dac88f77
Add correct Thumb2 encodings for NEON vst[1,2,3,4] and vld[1,2,3,4].
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118843 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 21:36:43 +00:00
Dan Gohman
888cbda188
Don't forget the TBAA info, if available.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118842 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 21:27:26 +00:00
Dan Gohman
4d70a29490
Factor out Instruction::isSafeToSpeculativelyExecute's code for
...
testing for dereferenceable pointers into a helper function,
isDereferenceablePointer. Teach it how to reason about GEPs
with simple non-zero indices.
Also eliminate ArgumentPromtion's IsAlwaysValidPointer,
which didn't check for weak externals or out of range gep
indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118840 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 21:23:25 +00:00
Eric Christopher
79ab2fe01a
Revert the accidental commit I made reverting the previous commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118835 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 20:50:14 +00:00
Jim Grosbach
3c3849297b
Trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118831 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 20:16:23 +00:00
Jim Grosbach
d1d5a39cad
ARM fixup encoding for direct call instructions (BL).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118829 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 20:05:40 +00:00
Eric Christopher
6c50119ba3
Revert this temporarily.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118827 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 19:47:02 +00:00
Eric Christopher
391f228e7e
Change the prologue and epilogue to use push/pop for the low ARM registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118823 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 19:26:03 +00:00
Dan Gohman
f3b8c76599
Avoid calling alias on non-pointer values.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118822 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 19:23:51 +00:00
Owen Anderson
c7139a6f0d
Add support for Thumb2 encodings of NEON data processing instructions, using the new PostEncoderMethod infrastructure.
...
More tests to come.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118819 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 19:07:48 +00:00
Rafael Espindola
e1a2587ee2
Mark labels declared in tls sections as STT_TLS. This matches the behavior of
...
gas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118818 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 19:04:55 +00:00
Wesley Peck
60f923c5e2
Fixed some bugs in MBlaze asm parser that were introduced when removing OwningPtrs from the code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118807 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 18:41:33 +00:00
Chris Lattner
af510f16ec
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118806 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 18:23:57 +00:00
Rafael Espindola
2ff9e83a82
Initial comdat implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118805 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 18:13:52 +00:00
Dan Gohman
56653f0df8
TBAA-enable ArgumentPromotion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118804 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 18:09:32 +00:00
Dan Gohman
fca0b106f7
Add a FIXME comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118803 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 18:08:43 +00:00
Jim Grosbach
c466b937db
Encoding of destination fixup for ARM branch and conditional branch
...
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118801 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 18:04:49 +00:00
Andrew Trick
8a83d54528
Check TRI->getReservedRegs because other allocators do it. Even though
...
it makes no sense for allocation_order iterators to visit reserved regs.
The inline spiller depends on AliasAnalysis.
Manage the Query state to avoid uninitialized or stale results.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118800 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 17:46:29 +00:00
Rafael Espindola
9302bd664d
Make AliasedSymbol able to handle MCTargetExpr. They can get here if
...
a weakref is used with a VariantKind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118798 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 17:24:43 +00:00
Chris Lattner
1e68fdb946
add pr#
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118797 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 17:17:56 +00:00
Jim Grosbach
7eab97f260
Encoding for ARM LDRSH_POST.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118794 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 16:55:29 +00:00
Rafael Espindola
03f1b74aed
Fix the symbol index of weak references. Also make RecordRelocation a bit
...
easier to read by having const references to the symbol, aliased symbol and
renamed symbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118793 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 16:48:11 +00:00
Dan Gohman
67a84f1ee6
Include ImmutablePass passes in -debug-pass=Arguments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118790 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 16:32:17 +00:00
Dan Gohman
efb8a9d0c2
Remove the memmove->memcpy optimization from CodeGen. MemCpyOpt does this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118789 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 16:24:49 +00:00
Dan Gohman
5aae3dcb53
Make Sink tbaa-aware.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118788 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 16:21:47 +00:00
Dan Gohman
2c71f18ff7
It's safe to sink some instructions which are not safe to speculatively
...
execute. Make Sink's predicate more precise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118787 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 16:20:28 +00:00
Rafael Espindola
3f2d13c98e
Remove some explicit arguments to getELFSection. This is
...
a leftover from the removal of isExplicit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118774 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 03:40:25 +00:00
Jim Grosbach
928f3325a7
Encoding for ARM LDRSH and LDRSH_PRE. Cannonicalize operand names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118767 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 01:55:59 +00:00
Jim Grosbach
d507d1f616
Fix encoding of Ra register for ARM smla* instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118761 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 01:27:41 +00:00
Jim Grosbach
570a922691
ARM STRH encoding information.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118757 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 01:09:40 +00:00
Jakob Stoklund Olesen
a05f60b241
Delete SplittingSpiller. It was not being used by anyone, and it is being
...
superceded by SplitKit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118754 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 00:52:44 +00:00
Dan Gohman
8a66a202f6
It's not necessary to clear out the Size and TBAATag at each of
...
these points.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118752 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 00:42:22 +00:00
Dan Gohman
ec9b4ac914
Set NonLocalDepInfo's Size field to UnknownSize when invalidating
...
it, so that it doesn't appear to be a known size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118748 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 00:20:27 +00:00
Jakob Stoklund Olesen
1e8e72d72a
Insert two blank SlotIndexes between basic blocks instead of just one.
...
This is the first small step towards using closed intervals for liveness instead
of the half-open intervals we're using now.
We want to be able to distinguish between a SlotIndex that represents a variable
being live-out of a basic block, and an index representing a variable live-in to
its successor.
That requires two separate indexes between blocks. One for live-outs and one for
live-ins.
With this change, getMBBEndIdx(MBB).getPrevSlot() becomes stable so it stays
greater than any instructions inserted at the end of MBB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118747 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 00:19:20 +00:00
Jakob Stoklund Olesen
b5f327b30f
No need to add liveness that's already there.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118742 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 23:56:00 +00:00
Jakob Stoklund Olesen
e93198af07
Hook up AliasAnalysis in InlineSpiller. This is used for rematerializing
...
constant loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118741 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 23:55:56 +00:00
Jim Grosbach
954ffff79b
Move LDM predicate operand encoding into base clase. Add STM missing STM
...
encoding bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118738 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 23:44:32 +00:00
Jim Grosbach
5d5eb9e381
ARM LDM encoding for the mode (ia, ib, da, db) operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118736 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 23:38:36 +00:00
Rafael Espindola
c87a94a942
Factor some code into WriteSection.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118733 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 23:36:59 +00:00
Jim Grosbach
c1235e2a4e
Fix ARM encoding of non-return LDM instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118732 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 23:18:49 +00:00
Jim Grosbach
866aa394ca
Fix ARM encoding of LDM+Return instruction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118730 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 23:12:48 +00:00
Dan Gohman
2365f08c7d
When clearing a non-local pointer dependency cache entry, clear
...
the reverse map too. This fixes seflhost build errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118729 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 22:35:02 +00:00
Rafael Espindola
1d739a010d
Update the section index map after we add the medatada sections.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118728 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 22:34:07 +00:00
Devang Patel
62367045a4
Take care of special characters while creating named MDNode name to hold function specific local variable's info.
...
This fixes radar 8653152. I am checking in testcase as a separate check-in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118726 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 22:19:21 +00:00
Rafael Espindola
4beee3d06b
Use SectionIndexMap in WriteSymbolTable to make it a little less brittle.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118725 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 22:16:43 +00:00
Dan Gohman
533c2ad360
Factor out the code for computing an AliasAnalysis::Location
...
for a given instruction into a helper function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118723 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 21:51:35 +00:00
Rafael Espindola
bab2a80525
Factor some code into ComputeIndexMap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118722 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 21:51:05 +00:00
Dan Gohman
733c54da1e
Fully invalidate cached results when a prior query's size or
...
type is insufficient for, or incompatible with, the current query.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118721 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 21:45:11 +00:00
Nate Begeman
bf5be2654e
Fix an issue where we tried to turn a v2f32 build_vector into a v4i32 build vector with 2 elts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118720 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 21:35:41 +00:00
Duncan Sands
bc68d71d2a
Reduce the maximum recursion depth, 5 seems pointlessly too much.
...
Probably it should just be 1, but compromise with 3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118718 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 20:53:24 +00:00
Dan Gohman
075fb5d68f
Enhance GVN to do more precise alias queries for non-local memory
...
references. For example, this allows gvn to eliminate the load in
this example:
void foo(int n, int* p, int *q) {
p[0] = 0;
p[1] = 1;
if (n) {
*q = p[0];
}
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118714 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 20:37:15 +00:00
Rafael Espindola
af3d38f70e
Change the String<size> methods to take a fragment instead of a buffer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118709 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 20:02:59 +00:00
Jakob Stoklund Olesen
cfa7134a9c
Basic rematerialization during splitting.
...
Whenever splitting wants to insert a copy, it checks if the value can be
rematerialized cheaply instead.
Missing features:
- Delete instructions when all uses have been rematerialized.
- Truncate live ranges to the remaining uses after rematerialization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118702 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 19:31:50 +00:00
Andrew Trick
f4baeaf848
RABasic is nearly functionally complete. There are a few remaining
...
benchmarks hitting an assertion.
Adds LiveIntervalUnion::collectInterferingVRegs.
Fixes "late spilling" by checking for any unspillable live vregs among
all physReg aliases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118701 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 19:18:47 +00:00
Rafael Espindola
4283f4b81e
Use MCSectionELF in places we know we have an ELF section.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118699 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 19:05:07 +00:00
Dan Gohman
3355c4e598
Use getValueOperand() and getPointerOperand() on load and store
...
instructions instead of hard-coding operand numbers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118698 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 19:03:33 +00:00
Duncan Sands
a74a58c83b
Teach InstructionSimplify how to look through PHI nodes. Since PHI
...
nodes can be used in loops, this could result in infinite looping
if there is no recursion limit, so add such a limit. It is also
used for the SelectInst case because in theory there could be an
infinite loop there too if the basic block is unreachable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118694 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 18:23:01 +00:00
Dan Gohman
68a6056daf
Add a doesAccessArgPointees helper function, and update code to use
...
it, and to be consistent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118692 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 18:17:28 +00:00
Jim Grosbach
7c7ddb21c3
Simplify and clean up MC symbol lookup for ARM constant pool values. This fixes
...
double quoting of ObjC symbol names in constant pool entries.
rdar://8652107
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118688 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 17:59:10 +00:00
Dan Gohman
432d08cbdb
Factor out the code for testing whether a function accesses
...
arbitrary memory into a helper function, and adjust some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118687 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 17:34:04 +00:00
Michael J. Spencer
6c43de46ff
Fix Whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118683 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 15:06:00 +00:00
Michael J. Spencer
339b9121bd
System/Win32/Path: Implement isSymLink.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118681 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 15:05:39 +00:00
Duncan Sands
b2cbdc35ba
Simplify binary operations where one operand is a select instruction.
...
The simplifications performed here never create new instructions, they
only return existing instructions (or a constant), and so are always a
win. In theory they should transform (for example)
%z = and i32 %x, %y
%s = select i1 %cond, i32 %y, i32 %z
%r = and i32 %x, %s
into
%r = and i32 %x, y
but in practice they get into a fight with instcombine, and lose.
Unfortunately instcombine does a poor job in this case. Nonetheless
I'm committing this transform to make it easier to discuss what to
do to make peace with instcombine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118679 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 13:00:08 +00:00
NAKAMURA Takumi
46cf7c5fd6
Win32/Process.inc: [PR8527] Process::FileDescriptorIsDisplayed(fd) should not check by FILE_TYPE_CHAR. It must be better to check it with Console API.
...
The special file "NUL" is FILE_TYPE_CHAR with GetFileType(h). It was treated as display device and discarding output to NUL had failed. (eg. opt -o nul)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118678 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 08:37:47 +00:00
Jim Grosbach
2c4d5125c7
Update ARMConstantPoolValue to not use a modifier string. Use an explicit
...
VariantKind marker to indicate the additional information necessary. Update
MC to handle the new Kinds. rdar://8647623
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118671 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 03:26:07 +00:00
Bruno Cardoso Lopes
c4bb67c8d9
Add clo instruction. Patch by Akira Hatanaka (ahatanaka@mips.com) with some minor tweaks
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118667 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 02:13:22 +00:00
Dale Johannesen
201ab3acff
When checking that the necessary bits are zero in
...
order to reduce ((x<<30)>>24) to x<<6, check the
correct bits. PR 8547.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118665 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 01:30:56 +00:00
Bill Wendling
8ea974039a
Emit a '!' if this is a "writeback" register or memory address.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118662 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 01:07:54 +00:00
Jakob Stoklund Olesen
b80e973c95
Simplify the LiveRangeEdit::canRematerializeAt() interface a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118661 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 01:05:12 +00:00
Dan Gohman
42c31a7073
Make ModRefBehavior a lattice. Use this to clean up AliasAnalysis
...
chaining and simplify FunctionAttrs' GetModRefBehavior logic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118660 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 01:02:18 +00:00
Matt Beaumont-Gay
cc8d10e1a8
Rename a parameter to avoid confusion with a local variable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118656 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-10 00:08:58 +00:00
Bill Wendling
8e8b18bcfa
Emit the warning about the register list not being in ascending order only once.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118653 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 23:45:59 +00:00
Rafael Espindola
34be396a12
Fixed version of 118639 with an extra assert to catch similar problems
...
earlier. Implicit bool -> int conversions are evil!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118651 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 23:42:07 +00:00
Bill Wendling
5fa22a1975
s/std::vector/SmallVector/
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118648 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 23:28:44 +00:00
Rafael Espindola
037b5be15a
Revert previous patch. Missed a case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118645 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 22:54:38 +00:00
Bill Wendling
c3236753d6
Delete the allocated vector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118644 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 22:51:42 +00:00
Bob Wilson
66f6c79450
Define the subtarget feature for the architecture version,
...
as derived from the target triple. This is important for enabling
features that are implied based on the architecture version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118643 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 22:50:47 +00:00
Bob Wilson
54f9256380
Do not use MEMBARRIER_MCR for any Thumb code.
...
It is only supported for ARM code. Normally Thumb2 code would use DMB instead,
but depending on how the compiler is invoked (e.g., -mattr=-db) that might be
disabled. This prevents a "cannot select MEMBARRIER_MCR" error in that
situation. Radar 8644195
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118642 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 22:50:44 +00:00
Bill Wendling
7729e06c12
Two types of instructions have register lists:
...
* LDM, et al, uses a bit mask to indicate the register list.
* VLDM, et al, uses a base register plus number.
The LDM instructions may be non-contiguous, but the VLDM ones must be
contiguous. Those are semantic checks that should be done later in the
compiler. Also postpone the creation of the bit mask until it's needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118640 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 22:44:22 +00:00
Rafael Espindola
e61a1ac595
Remove IsExplicit. It was always false.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118639 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 22:37:44 +00:00
Jim Grosbach
3a2429a86c
Change the ARMConstantPoolValue modifier string to an enumeration. This will
...
help in MC'izing the references that use them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118633 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 21:36:17 +00:00
Andrew Trick
071d1c063f
Adds RABasic verification and tracing.
...
(retry now that the windows build is green)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118630 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 21:04:34 +00:00
Dan Gohman
4cf0dcfb44
Teach FunctionAttrs about the VAArg instruction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118627 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 20:17:38 +00:00
Dan Gohman
6d44d64f61
Use the AliasAnalysis interface to determine how a Function accesses
...
memory. This isn't a real improvement with present day AliasAnalysis
implementations; it's mainly for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118624 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 20:13:27 +00:00
Dan Gohman
1cdaa3e5b1
VAArg doesn't capture its operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118623 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 20:09:35 +00:00
Dan Gohman
c07661c1fa
Teach AliasAnalysis about AccessesArgumentsReadonly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118621 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 20:06:55 +00:00
Dan Gohman
cd93f3bbb9
Teach LICM and AliasSetTracker about AccessesArgumentsReadonly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118618 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 19:58:21 +00:00
Dan Gohman
40b6a19daa
Teach FunctionAttrs about AccessesArgumentsReadonly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118617 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 19:56:27 +00:00
Matt Beaumont-Gay
e33daaaaf9
Add a trivial virtual dtor to AbstractRegisterDescription to appease
...
-Wnon-virtual-dtor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118616 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 19:56:25 +00:00
Andrew Trick
32d9aeb1df
Reverting r118604. Windows build broke.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118613 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-09 19:47:51 +00:00