| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 81942
|
|
|
|
| |
llvm-svn: 81454
|
|
|
|
| |
llvm-svn: 81436
|
|
|
|
|
|
|
|
| |
from the exception tables. However, Duncan explained why it's a can of worms to
do it the GCC way. I went back to doing it the LLVM way and added Duncan's
explanation so that I don't do this again in the future.
llvm-svn: 81434
|
|
|
|
|
|
|
|
| |
like what GCC outputs. The mysterious code to insert padding wasn't in GCC at
all. I modified the TType base offset code to calculate the offset like GCC
does, though.
llvm-svn: 81424
|
|
|
|
|
|
|
|
| |
code within it was the same inside and out. There's still a problem of the
TypeInfoSize should be the size of the TType format encoding (at least that's
what GCC thinks it should be).
llvm-svn: 81417
|
|
|
|
| |
llvm-svn: 81409
|
|
|
|
|
|
| |
sizeof(DW_EH_PE_udata4).
llvm-svn: 81408
|
|
|
|
| |
llvm-svn: 81406
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Basically, this patch is working towards removing the hard-coded values that are
output for the CIE. In particular, the CIE augmentation and the CIE augmentation
size. Both of these should be calculated. In the process, I was able to make a
bunch of code simpler.
The encodings for the personality, LSDA, and FDE in the CIE are still not
correct. They should be generated either from target-specific callbacks (blech!)
or grokked from first-principles.
llvm-svn: 81404
|
|
|
|
| |
llvm-svn: 81382
|
|
|
|
| |
llvm-svn: 81381
|
|
|
|
| |
llvm-svn: 81380
|