| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there
llvm-svn: 96285
|
| |
|
|
| |
llvm-svn: 95871
|
| |
|
|
|
|
| |
the pointer values could be invalid.
llvm-svn: 95813
|
| |
|
|
| |
llvm-svn: 95740
|
| |
|
|
| |
llvm-svn: 95737
|
| |
|
|
| |
llvm-svn: 95707
|
| |
|
|
|
|
|
| |
This allows code gen and the exception table writer to cooperate to make sure
landing pads are associated with the correct invoke locations.
llvm-svn: 94726
|
| |
|
|
|
|
| |
is constified.
llvm-svn: 94613
|
| |
|
|
| |
llvm-svn: 94295
|
| |
|
|
|
|
| |
into a new MCDirectives.h file.
llvm-svn: 94294
|
| |
|
|
| |
llvm-svn: 94290
|
| |
|
|
|
|
|
| |
be careful to add a \0 at the end though, because EmitString didn't
do this.
llvm-svn: 94277
|
| |
|
|
|
|
| |
be completely eliminated, but today is not that day.
llvm-svn: 94253
|
| |
|
|
|
|
| |
cleanup and eliminate a bunch more uses of "EOL".
llvm-svn: 94250
|
| |
|
|
|
|
| |
handle the comment better, MCize the non-.sleb case.
llvm-svn: 94244
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
pretty printing encoding comments and eliminates redundancy on
the client side. We now get pretty dwarf like this again:
.byte 255 ## @LPStart Encoding = omit
.byte 0 ## @TType Encoding = absptr
.byte 0x28 ## @TType base offset
.byte 3 ## Call site Encoding = udata4
.byte 0x1a ## Call site table size
...
llvm-svn: 94239
|
| |
|
|
|
|
| |
and much more accurately describes what it is all about.
llvm-svn: 94233
|
| |
|
|
| |
llvm-svn: 94230
|
| |
|
|
| |
llvm-svn: 94097
|
| |
|
|
|
|
| |
order for SjLj style exception handling.
llvm-svn: 94055
|
| |
|
|
| |
llvm-svn: 93996
|
| |
|
|
|
|
|
|
| |
idea, but unfortunately necessary.
- Default to using 4-bytes for the LSDA pointer encoding to agree with the
encoded value in the CIE.
llvm-svn: 93753
|
| |
|
|
|
|
| |
printing them.
llvm-svn: 93699
|
| |
|
|
|
|
|
| |
remove it and change all the code that prints MCSymbols to use
<< instead, which is much simpler and cleaner.
llvm-svn: 93695
|
| |
|
|
| |
llvm-svn: 93664
|
| |
|
|
|
|
|
|
| |
and add an explicit ForcePrivate argument.
Switch FunctionEHFrameInfo to be MCSymbol based instead of string based.
llvm-svn: 93646
|
| |
|
|
|
|
|
|
| |
The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine,
but we need it to actually be 4-bytes in the FDE for some platforms. Allow
individual platforms to decide for themselves.
llvm-svn: 93616
|
| |
|
|
| |
llvm-svn: 92206
|
| |
|
|
|
|
|
|
| |
$ svn merge -c -91337 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91337 into '.':
U lib/CodeGen/AsmPrinter/DwarfException.cpp
llvm-svn: 91618
|
| |
|
|
|
|
| |
but we need it to actually be 4-bytes in the FDE.
llvm-svn: 91337
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
$ 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
|
| |
|
|
|
|
| |
more than one place. No intended functionality change.
llvm-svn: 89024
|
| |
|
|
| |
llvm-svn: 87040
|
| |
|
|
| |
llvm-svn: 87036
|
| |
|
|
|
|
|
|
|
| |
and don't assume that the call doesn't throw. It would be nice if there were a
way to determine which is the callee and which is a parameter. In practice, the
architecture we care about normally only have one operand for a call instruction
(x86 and arm).
llvm-svn: 87023
|
| |
|
|
|
|
| |
"nounwind" attribute.
llvm-svn: 86897
|
| |
|
|
|
|
| |
function it's generated for.
llvm-svn: 86779
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch forbids implicit conversion of DenseMap::const_iterator to
DenseMap::iterator which was possible because DenseMapIterator inherited
(publicly) from DenseMapConstIterator. Conversion the other way around is now
allowed as one may expect.
The template DenseMapConstIterator is removed and the template parameter
IsConst which specifies whether the iterator is constant is added to
DenseMapIterator.
Actually IsConst parameter is not necessary since the constness can be
determined from KeyT but this is not relevant to the fix and can be addressed
later.
Patch by Victor Zverovich!
llvm-svn: 86636
|
| |
|
|
| |
llvm-svn: 84894
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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: 82282
|
| |
|
|
|
|
|
|
|
| |
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: 81970
|
| |
|
|
|
|
|
|
| |
one implementation into its one caller. This eliminates a totally
awesome and gratuitous hack where we casted a Function* to
GlobalVariable*.
llvm-svn: 81967
|
| |
|
|
|
|
| |
it into all of its call sites and simplifying them.
llvm-svn: 81962
|