Chris Lattner
cb778a8634
1. Introduce a new TargetOperandInfo::getRegClass() helper method
...
and convert code to using it, instead of having lots of things
poke the isLookupPtrRegClass() method directly.
2. Make PointerLikeRegClass contain a 'kind' int, and store it in
the existing regclass field of TargetOperandInfo when the
isLookupPtrRegClass() predicate is set. Make getRegClass pass
this into TargetRegisterInfo::getPointerRegClass(), allowing
targets to have multiple ptr_rc things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77504 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 21:10:12 +00:00
Benjamin Kramer
6c1e983a17
Remove now unused Context variables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77495 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 19:14:17 +00:00
Owen Anderson
baf3c40440
Move ConstantExpr to 2.5 API.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77494 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 18:55:55 +00:00
Chris Lattner
e53a600f06
pass the mangler down into the various SectionForGlobal methods.
...
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77432 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 05:09:30 +00:00
Bill Wendling
0dafca9076
Move comment to above method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77412 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 00:50:05 +00:00
Bill Wendling
ade025c65c
- Temporarily unbreak the build by forcing the TType "absptr", which isn't
...
correct. But what are you going to do? I'll fix this in the future.
- Move another large loop into its own method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77408 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 00:31:35 +00:00
Bill Wendling
5cff487665
Cleanup code to use iterators instead of ".size()".
...
Does any one else hate the name "const_reverse_iterator" as much as I do?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77399 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 23:44:43 +00:00
Bill Wendling
d4609622ad
Doxygenify comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77394 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 23:23:00 +00:00
Bill Wendling
5e953ddfa3
Split out large loop into it's very own method. No intended functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77393 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 23:22:13 +00:00
Bill Wendling
b0d9c3e7fd
Output the EH TType format and base offset only if there are types that we're
...
going to emit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77382 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 22:23:45 +00:00
Bill Wendling
c5800a809f
Use the preferred EH data format for the preferred EH data format.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77373 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 21:54:03 +00:00
Evan Cheng
7cc2c406d0
Fix a typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77369 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 21:49:18 +00:00
Owen Anderson
af7ec97587
Return ConstantVector to 2.5 API.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77366 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 21:19:26 +00:00
Bruno Cardoso Lopes
50bc204291
Handle null and file symbol on doInitialization
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77354 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 19:25:33 +00:00
Owen Anderson
1fd7096407
Change ConstantArray to 2.5 API.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77347 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 18:32:17 +00:00
David Greene
2d4e6d3f12
Add reload and remat backscheduling. This is disabled by default. Use
...
-schedule-spills=true to enable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77327 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 16:49:24 +00:00
Chris Lattner
f0144127b9
Rip all of the global variable lowering logic out of TargetAsmInfo. Since
...
it is highly specific to the object file that will be generated in the end,
this introduces a new TargetLoweringObjectFile interface that is implemented
for each of ELF/MachO/COFF/Alpha/PIC16 and XCore.
Though still is still a brutal and ugly refactoring, this is a major step
towards goodness.
This patch also:
1. fixes a bunch of dangling pointer problems in the PIC16 backend.
2. disables the TargetLowering copy ctor which PIC16 was accidentally using.
3. gets us closer to xcore having its own crazy target section flags and
pic16 not having to shadow sections with its own objects.
4. fixes wierdness where ELF targets would set CStringSection but not
CStringSection_. Factor the code better.
5. fixes some bugs in string lowering on ELF targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77294 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 03:13:23 +00:00
Mike Stump
02efa786d4
Avoid build warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77271 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-27 23:14:11 +00:00
Owen Anderson
8fa3338ed2
Move ConstantStruct back to 2.5 API.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77266 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-27 22:29:26 +00:00
Chris Lattner
2b2954f00b
hoist MCContext/MCStreamer up to AsmPrinter since we're going to start creating
...
MCSections soon instead of Section for all targets, and we need something to
own them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77252 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-27 21:28:04 +00:00
Owen Anderson
6f83c9c6ef
Move ConstantFP construction back to the 2.5-ish API.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77247 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-27 20:59:43 +00:00
Bruno Cardoso Lopes
42286562ef
fix comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77239 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-27 19:38:38 +00:00
Bruno Cardoso Lopes
df0b6503d6
add module identifier to the elf object file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77238 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-27 19:32:57 +00:00
Bruno Cardoso Lopes
746e3bb354
Handle external symbols for ELF and add some static methods to ELFSym
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77232 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-27 18:54:47 +00:00
Chris Lattner
5fe575ff4f
Eliminate SectionFlags, just embed a SectionKind into Section
...
instead and drive things based off of that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77184 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-27 05:32:16 +00:00
Eli Friedman
b101b0bdbd
Reorganize code a bit to reduce indentation. No visible functionality
...
change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77171 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 23:47:17 +00:00
Daniel Dunbar
460f656475
Remove Value::getName{Start,End}, the last of the old Name APIs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77152 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 09:48:23 +00:00
Daniel Dunbar
f0443c1eb4
Remove Value::getNameLen
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77148 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 08:34:35 +00:00
Chris Lattner
f40761d522
remove a densemap from TargetAsmInfo that was uniquing the targetflags strings,
...
just use a smallstring instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77144 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 07:33:58 +00:00
Chris Lattner
4c50922f6b
make SectionKind know whether a symbol is weak or not in addition
...
to its classification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77140 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 07:00:12 +00:00
Chris Lattner
2ceb60a677
rename Mergable -> Mergeable and Writable -> Writeable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77138 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 06:48:26 +00:00
Chris Lattner
94809c3b10
two files I missed in the last commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77137 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 06:36:20 +00:00
Chris Lattner
5c2f789952
simplify getSectionForMergableConstant to take a SectionKind.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77134 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-26 06:26:55 +00:00
Daniel Dunbar
03d7651c36
Remove Value::{isName, getNameRef}.
...
Also, change MDString to use a StringRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77098 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-25 23:55:21 +00:00
Chris Lattner
b4fc419d83
this is (unfortunately) several changes mixed together:
...
1. Spell SectionFlags::Writeable as "Writable".
2. Add predicates for deriving SectionFlags from SectionKinds.
3. Sink ELF-specific getSectionPrefixForUniqueGlobal impl into
ELFTargetAsmInfo.
4. Fix SectionFlagsForGlobal to know that BSS/ThreadBSS has the
BSS bit set (the real fix for PR4619).
5. Fix isSuitableForBSS to not put globals with explicit sections
set in BSS (which was the reason #4 wasn't fixed earlier).
6. Remove my previous hack for PR4619.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77085 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-25 18:57:34 +00:00
Dan Gohman
fd87a544c0
Convert a few more things to use raw_ostream.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77039 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-25 01:43:01 +00:00
Daniel Dunbar
ce63ffb52f
More migration to raw_ostream, the water has dried up around the iostream hole.
...
- Some clients which used DOUT have moved to DEBUG. We are deprecating the
"magic" DOUT behavior which avoided calling printing functions when the
statement was disabled. In addition to being unnecessary magic, it had the
downside of leaving code in -Asserts builds, and of hiding potentially
unnecessary computations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77019 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-25 00:23:56 +00:00
Owen Anderson
eed707b1e6
Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77011 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 23:12:02 +00:00
Jakob Stoklund Olesen
78d12644b9
Add support for promoting SETCC operations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76987 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 18:22:59 +00:00
Chris Lattner
d0418ce890
remove a use of SectionFlagsForGlobal.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76970 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 16:40:09 +00:00
Daniel Dunbar
a717b7be88
More move to raw_ostream.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76966 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 10:47:20 +00:00
Daniel Dunbar
1cd1d98232
Move more to raw_ostream, provide support for writing MachineBasicBlock,
...
LiveInterval, etc to raw_ostream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76965 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 10:36:58 +00:00
Daniel Dunbar
3f0e83067d
Move to raw_ostream.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76963 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 09:53:24 +00:00
Daniel Dunbar
f6ccee5a9d
Switch to getNameStr().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76962 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 08:24:36 +00:00
Chris Lattner
837f332372
document SectionFlags::Named better and make it more easily greppable by
...
eliminating isNamed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76946 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 04:26:19 +00:00
Chris Lattner
50340f666b
"fix" PR4612, which is a crash on:
...
%0 = malloc [3758096384 x i32]
The "malloc" instruction doesn't support 64-bits correctly (see PR715),
and should be removed. Victor is actively working on fixing this, in
the meantime just don't crash.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76899 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 21:26:18 +00:00
Daniel Dunbar
6316fbcb04
Convert StringMap to using StringRef for its APIs.
...
- Yay for '-'s and simplifications!
- I kept StringMap::GetOrCreateValue for compatibility purposes, this can
eventually go away. Likewise the StringMapEntry Create functions still follow
the old style.
- NIFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76888 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 18:17:34 +00:00
Lang Hames
20354634eb
For real this time: PHI Def & Kill tracking added to PHIElimination.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76865 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 05:44:24 +00:00
Lang Hames
287b8b0301
Added PHI Def & Kill tracking to PHIElimination pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76849 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 04:34:03 +00:00
David Greene
92b78bbc7f
Reorder if-else branches as suggested by Bill.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76808 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 22:32:19 +00:00
David Greene
340482dcc0
Constify the key in Mi2IndexMap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76801 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 21:56:14 +00:00
Evan Cheng
1e0c1588b1
Ignore undef uses.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76799 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 21:51:42 +00:00
Daniel Dunbar
3d5126fbad
Switch some clients to Value::getName(), and other getName() user
...
simplification.
- NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 21:33:09 +00:00
David Greene
67e59834fc
Put comment printing under asm-verbose.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76780 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 20:33:26 +00:00
David Greene
29ff37f39c
Make some changes suggested by Bill and Evan.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76775 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 20:08:25 +00:00
Chris Lattner
298414ec18
remove the SelectSectionForMachineConst hook, replacing it with
...
a new getSectionForMergableConstant hook. This removes one dependence
of TAI on Type, and provides the hook with enough info to make the
right decision based on whether the global has relocations etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76705 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 00:28:43 +00:00
Evan Cheng
fc6ad402fb
Let each target determines whether a machine instruction is dead. If true, that allows late codeine passes to delete it.
...
This is considered a workaround. The problem is some targets are not modeling side effects correctly. PPC is apparently one of those. This patch allows ppc llvm-gcc to bootstrap on Darwin. Once we find out which instruction definitions are wrong, we can remove the PPCInstrInfo workaround.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76703 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 00:25:27 +00:00
Owen Anderson
e922c02019
Get rid of the Pass+Context magic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 00:24:57 +00:00
Chris Lattner
7cf12c7efd
reimplement Constant::ContainsRelocations as
...
Constant::getRelocationInfo(), which has a much simpler
to use API. It still should not be part of libvmcore, but
is better than it was. Also teach it to be smart about
hidden visibility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76700 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 00:05:44 +00:00
Lang Hames
fae02a2ab1
Exposed PHIElimination pass within CodeGen.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76688 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 23:47:33 +00:00
David Greene
80607c9b2b
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76680 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 23:36:14 +00:00
Chris Lattner
354c0165e7
no really, I can spell!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76679 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 23:36:01 +00:00
Chris Lattner
cb45963643
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76678 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 23:34:23 +00:00
Bruno Cardoso Lopes
82a70ccb24
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76672 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 23:13:26 +00:00
Chris Lattner
3380d5c4aa
revert r76602, 76603, and r76615, pending design discussions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76646 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 21:12:58 +00:00
Eli Friedman
b3e7171926
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.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76633 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 20:12:16 +00:00
David Greene
a358c1db5c
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76615 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 18:56:32 +00:00
Chris Lattner
40bbebde9d
make AsmPrinter::doFinalization iterate over the global variables
...
and call PrintGlobalVariable, allowing elimination and simplification
of various targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76604 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 18:38:57 +00:00
David Greene
4b938958bc
Add PrefixPrinter arguments to the dump routines for MachineFunction and
...
MachineBasicBlock. We'll use these shortly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76603 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 18:27:05 +00:00
Owen Anderson
b3056faa55
Rename getConstantInt{True|False} to get{True|False} at Chris' behest.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76598 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 18:03:38 +00:00
Chris Lattner
90f8b7073d
Rename LessPrivateGlobalPrefix -> LinkerPrivateGlobalPrefix to match the
...
LLVM IR concept.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76590 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 17:30:51 +00:00
Evan Cheng
5d885023fe
Another rewriter bug exposed by recent coalescer changes. ReuseInfo::GetRegForReload() should make sure the "switched" register is in the desired register class. I'm surprised this hasn't caused more failures in the past.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76558 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 09:15:00 +00:00
Daniel Dunbar
fbee579ed4
Simplify / normalize some uses of Value::getName.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76553 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 08:54:24 +00:00
Bruno Cardoso Lopes
68491c1217
Support adding relocations for data sections, handling the cases where
...
global declared symbols are initialized with references from other global
symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76540 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 06:51:32 +00:00
Evan Cheng
d101a72d79
Fix a dagga combiner bug: avoid creating illegal constant.
...
Is this really a winning transformation?
fold (shl (srl x, c1), c2) -> (shl (and x, (shl -1, c1)), (sub c2, c1)) or
(srl (and x, (shl -1, c1)), (sub c1, c2))
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76535 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 05:40:15 +00:00
Owen Anderson
f53c371983
Move a bit more state over to the LLVMContext.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76533 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 02:47:59 +00:00
Evan Cheng
c95be59371
Cross RC coalescing is now on by default.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76519 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 00:22:59 +00:00
Dale Johannesen
5339c551b5
Move stripping of bitcasts in inline asm arguments
...
to a place where it affects everything. Occurs
only on calls AFAIK.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76502 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 23:27:39 +00:00
Bill Wendling
ecc2da8efd
Simplify the code in DarwinTargetAsmInfo::emitUsedDirectiveFor so that humans can understand it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76480 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 21:38:26 +00:00
Bill Wendling
4cef584860
Pass in the unfortunately named "LessPrivatePrefix" for the
...
"LinkerPrivatePrefix". It seems to have been used in only one place before I
started this "linker_private" business. I'm thinking that a rename is in
order...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76479 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 21:30:28 +00:00
Evan Cheng
33d0474bf5
Use TII->findCommutedOpIndices to find the commute operands (rather than guessing).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76472 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 21:16:08 +00:00
Evan Cheng
753480ad20
Fix some sub-reg coalescing bugs where the coalescer wasn't updating the resulting interval's register class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76458 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 19:47:55 +00:00
Bruno Cardoso Lopes
0a38dc5fda
For PC relative relocations where symbols are defined in the same section they
...
are referenced, ignore the relocation entry and patch the relocatable field with
the computed symbol offset directly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76414 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 08:52:02 +00:00
Chris Lattner
401e10c4fb
implement a new magic global "llvm.compiler.used" which is like llvm.used, but
...
doesn't cause ".no_dead_strip" to be emitted on darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76399 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 06:14:25 +00:00
Chris Lattner
1d5c49327b
use stripPointerCasts to simplify some code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76397 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 06:05:50 +00:00
Bill Wendling
3d10a5a757
Add plumbing for the `linker_private' linkage type. This type is meant for
...
"private" symbols which the assember shouldn't strip, but which the linker may
remove after evaluation. This is mostly useful for Objective-C metadata.
This is plumbing, so we don't have a use of it yet. More to come, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76385 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 01:03:30 +00:00
Jakob Stoklund Olesen
45d34fe358
Fix http://llvm.org/bugs/show_bug.cgi?id=4583
...
Inline asm instructions may have additional <imp-def,kill> register operands.
These operands are not marked with a flag like the normal asm operands, so we
must not assert that there is a flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76373 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-19 19:09:59 +00:00
Daniel Dunbar
cfb8a1bea1
Fix some minor MSVC compiler warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76356 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-19 01:38:38 +00:00
Bruno Cardoso Lopes
e2b0ecd8be
Use R_X86_64_32S to handle Jump Table Index relocation entries. Hide TAI usage inside getSection* functions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76347 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 23:24:01 +00:00
Bruno Cardoso Lopes
617dd7baa6
Use a better name for the label relocations while emitting them for Jump Tables
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76334 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 20:52:11 +00:00
Bruno Cardoso Lopes
171375f73a
Add support to properly reference private symbols on relocation entries.
...
Use proper relocation type to build relocations for JumpTables (rodata
sections).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76326 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 19:30:09 +00:00
Evan Cheng
438d9900c0
Catch more coalescing opportunities.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76282 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 04:52:23 +00:00
Evan Cheng
5248468473
Enable cross register class coalescing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76281 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 02:10:10 +00:00
Evan Cheng
59959cd966
Fix pr4552. Stack slot coloring with register must take care not to generate illegal ams.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76258 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 22:42:51 +00:00
Chris Lattner
16fe990e56
remove AsmPrinter::findGlobalValue, just use Value::stripPointerCasts instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76246 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 22:00:23 +00:00
Evan Cheng
0768f0eb7f
Simplify some more.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76239 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 21:06:58 +00:00
Chris Lattner
3e0f60be46
Use more terse and precise linkage checks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76237 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 21:00:50 +00:00
Dan Gohman
8906f95006
Eliminate yet another copy of getOpcode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76236 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 20:58:59 +00:00
Chris Lattner
a4ff5e48fc
these two pieces of code are the same because we always
...
emit the EHFrame label next to the section_eh_frame and
eh_frame_common labels.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76234 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 20:53:51 +00:00
Chris Lattner
e2cf37b88c
Untangle a snarl that I discovered when updating the mangler,
...
starting in getCurrentFunctionEHName. Among other problems,
we would try to privative a "foo.eh" label, but end up emitting
the label as _Lfoo.eh instead of L_foo.eh on darwin. This is really
bad, and the linker has always tolerated these labels existing.
For now, just emit them as _foo.eh.
This patch also fixes problems with ".eh" labels on unnamed
functions and eliminates two strangely defined TargetAsmInfo
hooks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76231 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 20:46:40 +00:00