aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/TargetLoweringObjectFile.cpp
AgeCommit message (Collapse)Author
2009-08-05expose SectionKindForGlobal to curious clients, named asChris Lattner
getKindForGlobal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78156 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-04enhance codegen to put 16-bit character strings into the Chris Lattner
__TEXT,__ustring section on darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78068 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-04fix a fixme: don't create an explicit "CStringSection" for ELF,Chris Lattner
it is just being used as a prefix, so forward substitute it directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78067 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-04Add support emiting for 2/4 byte mergable strings to the ".rodata.str*"Chris Lattner
section on ELF targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78066 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-04make MergeableCString be a SectionKind "abstract class", andChris Lattner
add new concrete versions for 1/2/4-byte mergable strings. These are not actually created yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78055 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03Eliminate textual section switching from the x86 backend, oneChris Lattner
more step towards "semantics sections" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78002 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02move dwarf debug info section selection stuff from TAI toChris Lattner
TLOF, unifying all the dwarf targets at the same time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77889 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02convert EHFrameSection to be managed by TLOF instead of TAI.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77888 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02move getDwarfExceptionSection from TAI to TLOF and rename it to Chris Lattner
getLSDASection() to be more specific. This makes it pretty obvious that the ELF LSDA section is being specified wrong in PIC mode. We're probably getting a lot of startup-time relocations to a readonly page, which is expensive and bad. Someone who cares about ELF C++ should investigate this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77847 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02convert ctors/dtors section to be in TLOF instead ofChris Lattner
TAI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77842 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01(re)introduce new simpler apis for creation sectionkinds.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77834 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01Remove "JumpTableDataSection" from TAI, instead, have AsmPrinterChris Lattner
compute it based on what it knows. As part of this, rename getSectionForMergeableConstant to getSectionForConstant because it works for non-mergable constants also. The only functionality change from this is that Xcore will start dropping its jump tables into readonly section instead of data section in -static mode. This should be fine as the linker resolves the relocations. If this is a problem, let me know and we'll come up with another solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77833 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01fix a fixme by sinking various target-specific directives down into Chris Lattner
the appropriate subclasses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77815 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01coff also doesn't have a ReadOnlySection yet, (!)Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77814 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01coff doesn't set a .bss seciton, so this is dead.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77813 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01it turns out that isWeak() was basically dead anyway. Kill off SectionInfo :-/Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77812 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01don't use isWeak anymore.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77810 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01Change SectionKind to be a property that is true of a *section*, itChris Lattner
should have no state that is specific to particular globals in the section. In this case, it means the removal of the "isWeak" and "ExplicitSection" bits. MCSection uses the new form of SectionKind. To handle isWeak, I introduced a new SectionInfo class, which is SectionKind + isWeak, and it is used by the part of the code generator that does classification of a specific global. The ExplicitSection disappears. It is moved onto MCSection as a new "IsDirective" bit. Since the Name of a section is either a section or directive, it makes sense to keep this bit in MCSection. Ultimately the creator of MCSection should canonicalize (e.g.) .text to whatever the actual section is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77803 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01All MCSections are now required to have a SectionKind.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77787 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-31move emitUsedDirectiveFor to TargetLoweringObjectFile and rename it toChris Lattner
indicate that it is a predicate, not an emitter. This eliminates TAI dependencies on Mangler and GlobalValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77726 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-31switch off of 'Section' onto MCSection. We're not properly usingChris Lattner
MCSection subclasses yet, but this is a step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77708 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-31refactor section construction in TLOF to be through an explicitChris Lattner
initialize method, which can be called when an MCContext is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77687 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-31fix PR4650: we only track sizes for certain objects, so only put somethingChris Lattner
into the mergable section if it is one of our special cases. This could obviously be improved, but this is the minimal fix and restores us to the previous behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77679 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29mingw uses .data and .text, not _data and _text.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77435 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29fix PR4584 with a trivial patch now that the pieces are in place.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77434 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29pass the mangler down into the various SectionForGlobal methods.Chris Lattner
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77432 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29constant prop a utostr.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77430 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29remove some completely wrong code. 1 is never < 16. It turns out that GCC ↵Chris Lattner
appears to put strings of any length into the ELF cstring equivalent, so just rip out the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77429 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28Fix PR4639, a ELF-TLS regression from some of my refactoring.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77336 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28the apple "ld_classic" linker doesn't support .literal16 in 32-bitChris Lattner
mode, and "ld64" (the default linker) falls back to it in -static mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77334 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28fix unused variable warningChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77326 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28Rip all of the global variable lowering logic out of TargetAsmInfo. SinceChris Lattner
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