Evan Cheng
b639684766
Fixing cp island pass. Step 1: Determine whether the constant pool offset can be
...
negative on an individual bases rather than basing on whether it's in thumb
mode.
llvm-svn: 76698
2009-07-21 23:56:01 +00:00
Evan Cheng
149b0d4cf1
Fix comment.
...
llvm-svn: 76693
2009-07-21 23:54:22 +00:00
Chris Lattner
4d3b78e0f5
simplify code now that it is inlined.
...
llvm-svn: 76689
2009-07-21 23:49:55 +00:00
Lang Hames
0e61f87ea3
Exposed PHIElimination pass within CodeGen.
...
llvm-svn: 76688
2009-07-21 23:47:33 +00:00
Chris Lattner
b9332126cc
Now that RelocBehaviour() is never overloaded, it doesn't need to be
...
virtual. Just inline it into its two current call sites in preparation
for simplifying the code.
llvm-svn: 76686
2009-07-21 23:47:11 +00:00
Eric Christopher
626e2c87ee
Add intrinsic for __builtin_ia32_vec_set_v4si which turns out to be
...
pinsrd in sse4.1.
llvm-svn: 76684
2009-07-21 23:43:14 +00:00
Chris Lattner
c1c5dab4c4
this doesn't break any of the 4 ia64 tests.
...
llvm-svn: 76683
2009-07-21 23:42:24 +00:00
Chris Lattner
5c144a5948
alpha doesn't need to redefine this: it only supports PIC codegen anyway.
...
llvm-svn: 76682
2009-07-21 23:41:35 +00:00
David Greene
ddaf106a0c
Add some support for iterative coalescers to calculate a joined live
...
range's weight properly. This is turned off right now in the sense that
you'll get an assert if you get into a situation that can only be caused
by an iterative coalescer. All other code paths operate exactly as
before so there is no functional change with this patch. The asserts
should be disabled if/when an iterative coalescer gets added to trunk.
llvm-svn: 76680
2009-07-21 23:36:14 +00:00
Chris Lattner
fb908d7671
no really, I can spell!
...
llvm-svn: 76679
2009-07-21 23:36:01 +00:00
Chris Lattner
11b49ed2ce
add an API so target-independent codegen can determine if a constant
...
pool entry will require relocations against it. I implemented this
conservatively for ARM, someone who is knowledgable about it should
see if this can be improved.
llvm-svn: 76678
2009-07-21 23:34:23 +00:00
Dan Gohman
b45091f0f9
Convert instcombine from using using getAnalysis<TargetData> to
...
getAnalysisIfAvailable<TargetData>.
llvm-svn: 76676
2009-07-21 23:21:54 +00:00
Dan Gohman
8577dd4cca
Permit the IntPtrTy argument to isEliminableCastPair to be null,
...
to help support use when TargetData is not available.
llvm-svn: 76675
2009-07-21 23:19:40 +00:00
Chris Lattner
bead0c90ea
fix typo
...
llvm-svn: 76674
2009-07-21 23:17:26 +00:00
Bruno Cardoso Lopes
3483574772
Change ELFCodeEmitter logic to emit the constant pool and jump tables to
...
their appropriate sections before the code itself. They need to be emitted
before the function because on some targets (x86 but not x86_64) the later
may reference a JT or CP entry address
llvm-svn: 76672
2009-07-21 23:13:26 +00:00
Dan Gohman
190d29cb5c
Replace the original ad-hoc code for determining whether (v pred w) implies
...
(x pred y) with more thorough code that does more complete canonicalization
before resorting to range checks. This helps it find more cases where
the canonicalized expressions match.
llvm-svn: 76671
2009-07-21 23:03:19 +00:00
Evan Cheng
e0f52b2bf3
Remove a big test case.
...
llvm-svn: 76669
2009-07-21 22:52:04 +00:00
Chris Lattner
5646affa23
Various doc updates from Edward O'Callaghan!
...
llvm-svn: 76668
2009-07-21 22:47:03 +00:00
Chris Lattner
fb3e6ae8b2
remove the last bits of SectionFlagsForGlobal. There is some flag here that
...
depends on XS1A, but I think the ReadOnlySection is already set up for this
and there is no testcase that this breaks. If this is really needed, we can
add the appropriate parameterization to TargetAsmInfo in the future to support
this.
llvm-svn: 76667
2009-07-21 22:42:37 +00:00
Chris Lattner
bca235c1d3
don't mask out the small flag and then reapply it later.
...
llvm-svn: 76666
2009-07-21 22:39:28 +00:00
Chris Lattner
34ba5422cd
if Xcore doesn't support TLS, it doesn't have to worry about thread local LLVM IR, it should be rejected by a front-end.
...
llvm-svn: 76665
2009-07-21 22:37:38 +00:00
Chris Lattner
aa793632ff
remove the Xcore implementation of SelectSectionForGlobal. While you have
...
to twist your brain to see it, I believe it is the same as ELFTargetAsmInfo::SelectSectionForGlobal.
llvm-svn: 76664
2009-07-21 22:36:53 +00:00
Chris Lattner
8a24ab398f
simplify based on the fact that darwin always uses L/l.
...
llvm-svn: 76662
2009-07-21 22:32:55 +00:00
Chris Lattner
b52c8153f3
make some stuff private.
...
llvm-svn: 76661
2009-07-21 22:30:39 +00:00
Chris Lattner
8e84f6e70e
improve comments.
...
llvm-svn: 76660
2009-07-21 22:30:25 +00:00
Chris Lattner
0a3a6f2ceb
Remove the XCore custom implementation of MergeableConstSection, relying on
...
the generic ELF version instead. This will result in its mergable constant
sections getting named ".rodata.cst4" instead of ".cp.const4", but the
linker looks at the section flags, not the name of the section AFAICT.
llvm-svn: 76659
2009-07-21 22:25:52 +00:00
Bob Wilson
2a2501eca4
Fix ocaml tests for 64-bit MacOS systems. LLVM is currently built
...
as 32-bit code by default, and if gcc defaults to 64-bit code then ocamlc
requires a -cc "gcc -arch i386" option. We were hardcoding -cc g++
and throwing away any other compiler options that were determined when
ocamlc was configured and built.
llvm-svn: 76658
2009-07-21 21:56:46 +00:00
Bob Wilson
7f3ffe1e45
Reorder the "Metadata" entry to match the C bindings.
...
This fixes a regression in the vmcore.ml dejagnu test.
llvm-svn: 76657
2009-07-21 21:52:57 +00:00
Daniel Dunbar
338e478c65
Add missing include
...
llvm-svn: 76655
2009-07-21 21:33:58 +00:00
Chris Lattner
8d061f011b
inline a trivial method into its only call site and fix indentation of cases
...
llvm-svn: 76654
2009-07-21 21:29:08 +00:00
Chris Lattner
4815d4919c
Remove some overridden functions in XCoreTargetAsmInfo that are
...
implemented exactly the same way as its ELFTargetAsmInfo subclass
has them.
llvm-svn: 76653
2009-07-21 21:26:32 +00:00
Chris Lattner
135caf1a2b
revert r76602, 76603, and r76615, pending design discussions.
...
llvm-svn: 76646
2009-07-21 21:12:58 +00:00
Chris Lattner
589a37a068
minor cleanups.
...
llvm-svn: 76645
2009-07-21 21:09:35 +00:00
Owen Anderson
a8637e9824
Privatize the ConstantArray table.
...
llvm-svn: 76639
2009-07-21 20:55:28 +00:00
Torok Edwin
f1dd3f766b
Add a few fairly obvious API changes I noticed while porting some old code.
...
llvm-svn: 76636
2009-07-21 20:27:10 +00:00
Eli Friedman
a78b44069b
Missed a piece of the commit to remove the shift flavor.
...
llvm-svn: 76635
2009-07-21 20:15:24 +00:00
Owen Anderson
bdcb99324a
Privatize the first of the value maps.
...
llvm-svn: 76634
2009-07-21 20:13:12 +00:00
Eli Friedman
45160af6bd
Remove shift amount flavor. It isn't actually complete enough to
...
be useful, and it's currently unused. (Some issues: it isn't actually
rich enough to capture the semantics on many architectures, and
semantics can vary depending on the type being shifted.)
llvm-svn: 76633
2009-07-21 20:12:16 +00:00
Eli Friedman
a62553ec99
Remove a couple of already-implemented notes.
...
llvm-svn: 76631
2009-07-21 20:05:43 +00:00
Evan Cheng
64b75885a0
80 col violation.
...
llvm-svn: 76629
2009-07-21 19:25:09 +00:00
David Greene
94bfedaf40
Prefix IR dumps with LiveInterval indices when possible. This turns
...
this:
%ESI<def> = MOV32rr %EDI<kill>
ADJCALLSTACKDOWN64 0, %RSP<imp-def>, %EFLAGS<imp-def,dead>, %RSP<imp-use>
%reg1027<def> = MOVZX64rr32 %ESI
%reg1027<def> = ADD64ri8 %reg1027, 15, %EFLAGS<imp-def,dead>
%reg1027<def> = AND64ri8 %reg1027, -16, %EFLAGS<imp-def,dead>
%RDI<def> = MOV64rr %RSP
%RDI<def> = SUB64rr %RDI, %reg1027<kill>, %EFLAGS<imp-def,dead>
%RSP<def> = MOV64rr %RDI
into this:
4 %reg1024<def> = MOV32rr %EDI<kill>
12 ADJCALLSTACKDOWN64 0, %RSP<imp-def>, %EFLAGS<imp-def,dead>, %RSP<imp-use>
20 %reg1025<def> = MOVZX64rr32 %reg1024
28 %reg1026<def> = MOV64rr %reg1025<kill>
36 %reg1026<def> = ADD64ri8 %reg1026, 15, %EFLAGS<imp-def,dead>
44 %reg1027<def> = MOV64rr %reg1026<kill>
52 %reg1027<def> = AND64ri8 %reg1027, -16, %EFLAGS<imp-def,dead>
60 %reg1028<def> = MOV64rr %RSP
68 %reg1029<def> = MOV64rr %reg1028<kill>
76 %reg1029<def> = SUB64rr %reg1029, %reg1027<kill>, %EFLAGS<imp-def,dead>
84 %RSP<def> = MOV64rr %reg1029
This helps greatly when debugging register allocation and coalescing
problems.
llvm-svn: 76615
2009-07-21 18:56:32 +00:00
Evan Cheng
66f1d7a0e1
Add fake v7 itineraries for now.
...
llvm-svn: 76612
2009-07-21 18:54:14 +00:00
Chris Lattner
3d4ab7a231
make AsmPrinter::doFinalization iterate over the global variables
...
and call PrintGlobalVariable, allowing elimination and simplification
of various targets.
llvm-svn: 76604
2009-07-21 18:38:57 +00:00
David Greene
979d7aa03a
Add PrefixPrinter arguments to the dump routines for MachineFunction and
...
MachineBasicBlock. We'll use these shortly.
llvm-svn: 76603
2009-07-21 18:27:05 +00:00
David Greene
710a405072
Add a small utility class to configure IR printers. This will allow
...
printers to do neat and wonderful things when printing debug
information. The ideas is to allow passes to configer printers to emit
pass-specific information when dumping IR.
llvm-svn: 76602
2009-07-21 18:21:46 +00:00
David Greene
68fb6cde54
Make a bunch of changes suggested by Chris and others to improve
...
efficiency. Fix a few formatting bugs along the way.
llvm-svn: 76601
2009-07-21 18:16:24 +00:00
Evan Cheng
192fc19379
Do not select tSXTB / tSXTH in thumb2 mode.
...
llvm-svn: 76600
2009-07-21 18:15:26 +00:00
Owen Anderson
7f61f8dc30
Rename getConstantInt{True|False} to get{True|False} at Chris' behest.
...
llvm-svn: 76598
2009-07-21 18:03:38 +00:00
Torok Edwin
4d8202474c
Add freed memory poisoning in !NDEBUG mode for DenseMap.
...
llvm-svn: 76597
2009-07-21 18:01:37 +00:00
Chris Lattner
89785b23b8
reduce indentation by using an early exit.
...
llvm-svn: 76596
2009-07-21 17:59:36 +00:00