summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Add reload and remat backscheduling. This is disabled by default. UseDavid Greene2009-07-281-26/+150
| | | | | | -schedule-spills=true to enable. llvm-svn: 77327
* Rip all of the global variable lowering logic out of TargetAsmInfo. SinceChris Lattner2009-07-285-25/+43
| | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 77294
* Avoid build warnings.Mike Stump2009-07-271-0/+1
| | | | llvm-svn: 77271
* Move ConstantStruct back to 2.5 API.Owen Anderson2009-07-271-2/+2
| | | | llvm-svn: 77266
* hoist MCContext/MCStreamer up to AsmPrinter since we're going to start creatingChris Lattner2009-07-271-0/+11
| | | | | | | MCSections soon instead of Section for all targets, and we need something to own them. llvm-svn: 77252
* Move ConstantFP construction back to the 2.5-ish API.Owen Anderson2009-07-272-5/+3
| | | | llvm-svn: 77247
* fix commentBruno Cardoso Lopes2009-07-271-1/+1
| | | | llvm-svn: 77239
* add module identifier to the elf object fileBruno Cardoso Lopes2009-07-273-9/+26
| | | | llvm-svn: 77238
* Handle external symbols for ELF and add some static methods to ELFSymBruno Cardoso Lopes2009-07-274-46/+155
| | | | llvm-svn: 77232
* Eliminate SectionFlags, just embed a SectionKind into SectionChris Lattner2009-07-273-18/+19
| | | | | | instead and drive things based off of that. llvm-svn: 77184
* Reorganize code a bit to reduce indentation. No visible functionality Eli Friedman2009-07-261-287/+287
| | | | | | change. llvm-svn: 77171
* Remove Value::getName{Start,End}, the last of the old Name APIs.Daniel Dunbar2009-07-264-8/+7
| | | | llvm-svn: 77152
* Remove Value::getNameLenDaniel Dunbar2009-07-261-18/+6
| | | | llvm-svn: 77148
* remove a densemap from TargetAsmInfo that was uniquing the targetflags strings,Chris Lattner2009-07-261-4/+8
| | | | | | just use a smallstring instead. llvm-svn: 77144
* make SectionKind know whether a symbol is weak or not in additionChris Lattner2009-07-262-14/+18
| | | | | | to its classification. llvm-svn: 77140
* rename Mergable -> Mergeable and Writable -> WriteableChris Lattner2009-07-262-11/+10
| | | | llvm-svn: 77138
* two files I missed in the last commit.Chris Lattner2009-07-262-12/+12
| | | | llvm-svn: 77137
* simplify getSectionForMergableConstant to take a SectionKind.Chris Lattner2009-07-262-9/+30
| | | | llvm-svn: 77134
* Remove Value::{isName, getNameRef}.Daniel Dunbar2009-07-251-1/+1
| | | | | | Also, change MDString to use a StringRef. llvm-svn: 77098
* this is (unfortunately) several changes mixed together:Chris Lattner2009-07-251-1/+1
| | | | | | | | | | | | | | 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. llvm-svn: 77085
* Convert a few more things to use raw_ostream.Dan Gohman2009-07-252-26/+27
| | | | llvm-svn: 77039
* More migration to raw_ostream, the water has dried up around the iostream hole.Daniel Dunbar2009-07-2516-86/+101
| | | | | | | | | | - 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. llvm-svn: 77019
* Revert the ConstantInt constructors back to their 2.5 forms where possible, ↵Owen Anderson2009-07-246-44/+44
| | | | | | thanks to contexts-on-types. More to come. llvm-svn: 77011
* Add support for promoting SETCC operations.Jakob Stoklund Olesen2009-07-244-13/+20
| | | | llvm-svn: 76987
* remove a use of SectionFlagsForGlobal.Chris Lattner2009-07-241-3/+4
| | | | llvm-svn: 76970
* More move to raw_ostream.Daniel Dunbar2009-07-241-4/+3
| | | | llvm-svn: 76966
* Move more to raw_ostream, provide support for writing MachineBasicBlock,Daniel Dunbar2009-07-245-5/+45
| | | | | | LiveInterval, etc to raw_ostream. llvm-svn: 76965
* Move to raw_ostream.Daniel Dunbar2009-07-242-38/+39
| | | | llvm-svn: 76963
* Switch to getNameStr().Daniel Dunbar2009-07-244-13/+13
| | | | llvm-svn: 76962
* document SectionFlags::Named better and make it more easily greppable byChris Lattner2009-07-241-1/+1
| | | | | | eliminating isNamed. llvm-svn: 76946
* "fix" PR4612, which is a crash on:Chris Lattner2009-07-231-1/+5
| | | | | | | | | | %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. llvm-svn: 76899
* Convert StringMap to using StringRef for its APIs.Daniel Dunbar2009-07-231-6/+3
| | | | | | | | | | | | - 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. llvm-svn: 76888
* For real this time: PHI Def & Kill tracking added to PHIElimination.Lang Hames2009-07-231-3/+5
| | | | llvm-svn: 76865
* Added PHI Def & Kill tracking to PHIElimination pass.Lang Hames2009-07-232-4/+56
| | | | llvm-svn: 76849
* Reorder if-else branches as suggested by Bill.David Greene2009-07-221-4/+4
| | | | llvm-svn: 76808
* Constify the key in Mi2IndexMap.David Greene2009-07-221-1/+1
| | | | llvm-svn: 76801
* Ignore undef uses.Evan Cheng2009-07-221-0/+3
| | | | llvm-svn: 76799
* Switch some clients to Value::getName(), and other getName() userDaniel Dunbar2009-07-221-2/+2
| | | | | | | simplification. - NFC llvm-svn: 76789
* Put comment printing under asm-verbose.David Greene2009-07-221-13/+36
| | | | llvm-svn: 76780
* Make some changes suggested by Bill and Evan.David Greene2009-07-222-34/+25
| | | | llvm-svn: 76775
* remove the SelectSectionForMachineConst hook, replacing it withChris Lattner2009-07-222-3/+10
| | | | | | | | 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. llvm-svn: 76705
* Let each target determines whether a machine instruction is dead. If true, ↵Evan Cheng2009-07-222-25/+23
| | | | | | | | 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. llvm-svn: 76703
* Get rid of the Pass+Context magic.Owen Anderson2009-07-227-42/+42
| | | | llvm-svn: 76702
* reimplement Constant::ContainsRelocations as Chris Lattner2009-07-221-13/+1
| | | | | | | | | 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. llvm-svn: 76700
* Exposed PHIElimination pass within CodeGen.Lang Hames2009-07-212-74/+101
| | | | llvm-svn: 76688
* Add some support for iterative coalescers to calculate a joined liveDavid Greene2009-07-212-2/+35
| | | | | | | | | | 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
* no really, I can spell!Chris Lattner2009-07-211-2/+2
| | | | llvm-svn: 76679
* add an API so target-independent codegen can determine if a constantChris Lattner2009-07-211-1/+20
| | | | | | | | 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
* Change ELFCodeEmitter logic to emit the constant pool and jump tables toBruno Cardoso Lopes2009-07-212-27/+29
| | | | | | | | 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
* revert r76602, 76603, and r76615, pending design discussions.Chris Lattner2009-07-213-11/+13
| | | | llvm-svn: 76646
OpenPOWER on IntegriCloud