|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| | llvm-svn: 93628 | 
| | 
| 
| 
| | llvm-svn: 93627 | 
| | 
| 
| 
| 
| 
| | obsolete Mangler interfaces.
llvm-svn: 93356 | 
| | 
| 
| 
| 
| 
| | SelectSectionForGlobal, unbreaking weak globals with no-name.
llvm-svn: 93336 | 
| | 
| 
| 
| 
| 
| | on linux (even though they are pointless, they shouldn't ICE).
llvm-svn: 93308 | 
| | 
| 
| 
| | llvm-svn: 93305 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | instead of returning it in an std::string.  Based on this change:
1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef
2. Change a bunch of targets to call makeNameProper with a smallstring,
   making several of them *much* more efficient.
3. Rewrite Mangler::makeNameProper to not build names and then prepend
   prefixes, not use temporary std::strings, and to avoid other crimes.
llvm-svn: 93298 | 
| | 
| 
| 
| 
| 
| | not-readonly segment on darwin.
llvm-svn: 92933 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | $ svn merge -c -89279 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r89279 into '.':
U    lib/CodeGen/AsmPrinter/DwarfException.cpp
U    lib/Target/TargetLoweringObjectFile.cpp
$ svn merge -c -89270 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r89270 into '.':
G    lib/CodeGen/AsmPrinter/DwarfException.cpp
G    lib/Target/TargetLoweringObjectFile.cpp
llvm-svn: 89379 | 
| | 
| 
| 
| 
| 
| | exception table than DataRel.
llvm-svn: 89279 | 
| | 
| 
| 
| 
| 
| | Place the EH table in the __TEXT section on MachO. It saves space.
llvm-svn: 89270 | 
| | 
| 
| 
| | llvm-svn: 86367 | 
| | 
| 
| 
| | llvm-svn: 86251 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | U    lib/CodeGen/AsmPrinter/DwarfException.cpp
U    lib/CodeGen/AsmPrinter/DwarfException.h
--- Reverse-merging r82274 into '.':
U    lib/Target/TargetLoweringObjectFile.cpp
G    lib/CodeGen/AsmPrinter/DwarfException.cpp
These revisions were breaking everything.
llvm-svn: 82396 | 
| | 
| 
| 
| | llvm-svn: 82356 | 
| | 
| 
| 
| 
| 
| 
| 
| | internal, they shouldn't use the indirect pointer stuff. In the case of
throw_rethrow_test, it was marked as 'internal' and calculated its own offset to
its contents.
llvm-svn: 82354 | 
| | 
| 
| 
| | llvm-svn: 82336 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | into the __DATA section. At launch time, dyld has to update most of the section
to fix up the type info pointers. It's better to place it into the __TEXT
section and use pc-rel indirect pointer encodings. Similar to the personality
routine.
llvm-svn: 82274 | 
| | 
| 
| 
| 
| 
| | currently unused.
llvm-svn: 82157 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding
fields from MAI: they aren't part of the asm syntax, they are
related to the structure of the object file.
To replace their functionality, add a new 
TLOF::getSymbolForDwarfGlobalReference method which asks targets
to decide how to reference a global from EH in a pc-relative way.
The default implementation just returns the symbol.  The default
darwin implementation references the symbol through an indirect
$non_lazy_ptr stub.  The bizarro x86-64 darwin specialization
handles the weird "foo@GOTPCREL+4" hack.
DwarfException.cpp now uses this to emit the reference to the
symbol in the right way, and this also eliminates another 
horrible hack from DwarfException.cpp:
-    if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL"))
-      O << "-" << MAI->getPCSymbol();
llvm-svn: 81991 | 
| | 
| 
| 
| | llvm-svn: 81322 | 
| | 
| 
| 
| | llvm-svn: 81321 | 
| | 
| 
| 
| | llvm-svn: 80176 | 
| | 
| 
| 
| | llvm-svn: 79346 | 
| | 
| 
| 
| 
| 
| 
| 
| | on linux.
Patch by Dmitry Gorbachev!
llvm-svn: 79334 | 
| | 
| 
| 
| 
| 
| | TLOF is reinitialized with a different MCContext.
llvm-svn: 79253 | 
| | 
| 
| 
| 
| 
| | if not supported by the ELF subtarget.
llvm-svn: 79249 | 
| | 
| 
| 
| 
| 
| 
| | is why they are datarel).  This should fix PR4724, and is fallout
from r78890.
llvm-svn: 79111 | 
| | 
| 
| 
| 
| 
| | them to null out the default section pointers.
llvm-svn: 79078 | 
| | 
| 
| 
| 
| 
| | accidentally match unrelated things.
llvm-svn: 78966 | 
| | 
| 
| 
| 
| 
| | must be emitted for PowerPC-Linux '.bss' section
llvm-svn: 78958 | 
| | 
| 
| 
| 
| 
| 
| | syntactically as a string, very similiar to what Chris did with MachO.
The parsing support and validation is not introduced yet.
llvm-svn: 78890 | 
| | 
| 
| 
| 
| 
| 
| 
| | implementations.
MCContext no longer maintains a string -> section map.
llvm-svn: 78874 | 
| | 
| 
| 
| 
| 
| | them, so it doesn't have to explicitly free them.
llvm-svn: 78870 | 
| | 
| 
| 
| 
| 
| 
| | int x __attribute__((section("_foo, _bar"))) = 4;
int y __attribute__((section("_foo, _bar, 4byte_literals"))) = 1;
llvm-svn: 78867 | 
| | 
| 
| 
| | llvm-svn: 78866 | 
| | 
| 
| 
| | llvm-svn: 78860 | 
| | 
| 
| 
| | llvm-svn: 78677 | 
| | 
| 
| 
| | llvm-svn: 78576 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | instead of syntactically as a string.  This means that it keeps track of the 
segment, section, flags, etc directly and asmprints them in the right format.
This also includes parsing and validation support for llvm-mc and 
"attribute(section)", so we should now start getting errors about invalid 
section attributes from the compiler instead of the assembler on darwin.
Still todo: 
1) Uniquing of darwin mcsections
2) Move all the Darwin stuff out to MCSectionMachO.[cpp|h]
3) there are a few FIXMEs, for example what is the syntax to get the
   S_GB_ZEROFILL segment type?
llvm-svn: 78547 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | 2. Move section switch printing to MCSection virtual method which takes a
   TAI.  This eliminates textual formatting stuff from TLOF.
3. Eliminate SwitchToSectionDirective, getSectionFlagsAsString, and 
   TLOFELF::AtIsCommentChar.
llvm-svn: 78510 | 
| | 
| 
| 
| 
| 
| | MCSection instances.
llvm-svn: 78500 | 
| | 
| 
| 
| 
| 
| 
| 
| | A TAI hook is appropriate in this case because this is just an
asm syntax issue, not a semantic difference. TLOF should model
the semantics of the section.
llvm-svn: 78498 | 
| | 
| 
| 
| 
| 
| 
| | give the impls an object-file-specific name.  In the future
they can take different arguments etc.
llvm-svn: 78495 | 
| | 
| 
| 
| 
| 
| | now that they create *all* the sections.
llvm-svn: 78494 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | creation activity into the target-specific subclasses of TLOF.
Before this, globals with explicit sections could be created by
the base class.
1. make getOrCreateSection protected, add a new getExplicitSectionGlobal
   pure virtual method to assign sections to globals with a specified
   section.
2. eliminate getSpecialCasedSectionGlobals, which is now PIC specific.
3. eliminate the getKindForNamedSection virtual method, which is
   now just a static method for ELF.
4. Add implementions of getExplicitSectionGlobal for ELF/PECOFF/Darwin/PIC16.
   They are now all detangled and understandable, woo! :)
llvm-svn: 78319 | 
| | 
| 
| 
| 
| 
| | getKindForGlobal.
llvm-svn: 78156 | 
| | 
| 
| 
| 
| 
| | __TEXT,__ustring section on darwin.
llvm-svn: 78068 | 
| | 
| 
| 
| 
| 
| | it is just being used as a prefix, so forward substitute it directly.
llvm-svn: 78067 | 
| | 
| 
| 
| 
| 
| | section on ELF targets.
llvm-svn: 78066 |