| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
This create a MCSymbolELF class and moves SymbolSize since only ELF
needs a size expression.
This reduces the size of MCSymbol from 56 to 48 bytes.
llvm-svn: 238801
|
|
|
|
| |
llvm-svn: 238800
|
|
|
|
|
|
| |
This reduces MCSymbol from 64 to 56 bytes on x86_64.
llvm-svn: 238747
|
|
|
|
|
|
|
| |
We don't want to bother with creating .sxdata sections on Win64; all the
relevant information is already in the .pdata section.
llvm-svn: 238730
|
|
|
|
|
|
|
|
|
| |
There is no MCSectionData, so the old name is now meaningless.
Also remove some asserts/checks that were there just because the information
they used was in MCSectionData.
llvm-svn: 238708
|
|
|
|
| |
llvm-svn: 238707
|
|
|
|
|
|
| |
With this we can replace a SetVector with a plain std::vector.
llvm-svn: 238706
|
|
|
|
| |
llvm-svn: 238705
|
|
|
|
| |
llvm-svn: 238676
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D8217
llvm-svn: 238659
|
|
|
|
|
|
|
|
|
| |
.safeseh adds an entry to the .sxdata section to register all the
appropriate functions which may handle an exception. This entry is not
a relocation to the symbol but instead the symbol table index of the
function.
llvm-svn: 238641
|
|
|
|
| |
llvm-svn: 238634
|
|
|
|
|
|
| |
This completes the mechanical part of merging MCSymbol and MCSymbolData.
llvm-svn: 238617
|
|
|
|
|
|
| |
The getData member function is next.
llvm-svn: 238611
|
|
|
|
|
|
|
| |
As a transition hack leave MCSymbolData as a typedef of MCSymbol. I will be
removing that in a second.
llvm-svn: 238609
|
|
|
|
|
|
| |
Another step in merging MCSymbol and MCSymbolData.
llvm-svn: 238607
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the type isn't trivially moveable emplace can skip a potentially
expensive move. It also saves a couple of characters.
Call sites were found with the ASTMatcher + some semi-automated cleanup.
memberCallExpr(
argumentCountIs(1), callee(methodDecl(hasName("push_back"))),
on(hasType(recordDecl(has(namedDecl(hasName("emplace_back")))))),
hasArgument(0, bindTemporaryExpr(
hasType(recordDecl(hasNonTrivialDestructor())),
has(constructExpr()))),
unless(isInTemplateInstantiation()))
No functional change intended.
llvm-svn: 238602
|
|
|
|
| |
llvm-svn: 238598
|
|
|
|
| |
llvm-svn: 238597
|
|
|
|
| |
llvm-svn: 238596
|
|
|
|
| |
llvm-svn: 238589
|
|
|
|
| |
llvm-svn: 238583
|
|
|
|
| |
llvm-svn: 238582
|
|
|
|
| |
llvm-svn: 238580
|
|
|
|
|
|
|
|
|
|
|
|
| |
Symbols are no longer required to be named, but this leads to a crash here if an
unnamed symbol checks that its first character is '$'.
Change the code to first check for a name, then check its first character.
No test case i'm afraid as this is debugging code, but any test case with temp labels
and 'llc --debug --filetype=obj' would have crashed.
llvm-svn: 238579
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Small (really small!) C++ exception handling examples work on 32-bit x86
now.
This change disables the use of .seh_* directives in WinException when
CFI is not in use. It also uses absolute symbol references in the tables
instead of imagerel32 relocations.
Also fixes a cache invalidation bug in MMI personality classification.
llvm-svn: 238575
|
|
|
|
|
|
|
| |
The complexity in here was because before r233995 variable symbols would report
the incorrect section.
llvm-svn: 238559
|
|
|
|
|
|
|
|
|
| |
And with that simplify the logic for inserting them in ExternalSymbolData or
LocalSymbolData.
No functionality change overall since the old code avoided the isLocal bug.
llvm-svn: 238555
|
|
|
|
|
|
|
|
|
| |
ELF has no restrictions on where undefined symbols go relative to other defined
symbols. In fact, gas just sorts them together. Do the same.
This was there since r111174 probably just because the MachO writer has it.
llvm-svn: 238513
|
|
|
|
| |
llvm-svn: 238506
|
|
|
|
| |
llvm-svn: 238492
|
|
|
|
|
|
|
|
| |
read-only.
It caused a smaller number of failures than the previous attempt at committing but still caused a couple on the llvm-linux-mips builder. Reverting while I investigate the remainder.
llvm-svn: 238483
|
|
|
|
| |
llvm-svn: 238480
|
|
|
|
| |
llvm-svn: 238479
|
|
|
|
| |
llvm-svn: 238477
|
|
|
|
| |
llvm-svn: 238471
|
|
|
|
| |
llvm-svn: 238465
|
|
|
|
| |
llvm-svn: 238463
|
|
|
|
| |
llvm-svn: 238461
|
|
|
|
|
|
| |
directly to stream.
llvm-svn: 238453
|
|
|
|
| |
llvm-svn: 238446
|
|
|
|
|
|
|
| |
For now this just saves a few loops, but it will allow more simplifications
in the future.
llvm-svn: 238444
|
|
|
|
|
|
|
|
| |
This was a bug for bug compatibility with gas that is completely unnecessary.
If a _GLOBAL_OFFSET_TABLE_ symbol is used, it will already be created by
the time we get to the ELF writer.
llvm-svn: 238432
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Following on from r209907 which made personality encodings indirect, do the
same for TType encodings. This fixes the case where a try/catch block needs
to generate references to, for example, std::exception in the
.gcc_except_table.
Reviewers: petarj
Reviewed By: petarj
Subscribers: srhines, joerg, tberghammer, llvm-commits
Differential Revision: http://reviews.llvm.org/D9669
llvm-svn: 238427
|
|
|
|
|
|
| |
NFC.
llvm-svn: 238414
|
|
|
|
|
|
| |
Creating temporary std::strings there is unnecessary.
llvm-svn: 238412
|
|
|
|
|
|
| |
I think this concludes the merge of MCSectionData and MCSection.
llvm-svn: 238358
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Both MCStreamer and MCObjectStreamer were maintaining a current section
variable and they were slightly out of sync. I don't think this was observable,
but was inefficient and error prone.
Changing this requires a few cascading changes:
* SwitchSection has to call ChangeSection earlier for ChangeSection to see
the old section.
* With that change, ChangeSection cannot call EmitLabel, since during
ChangeSection we are still in the old section.
* When the object streamer requires a begin label, just reused the existing
generic support for begin labels instead of calling EmitLabel directly.
llvm-svn: 238357
|
|
|
|
| |
llvm-svn: 238332
|
|
|
|
| |
llvm-svn: 238331
|