| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 241284
|
|
|
|
|
|
|
|
|
|
|
|
| |
We already disallowed
.global .Lfoo
so this is reasonable.
This is a small cherry pick from r240130.
llvm-svn: 240681
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This causes errors like:
ld: error: blah.o: requires dynamic R_X86_64_PC32 reloc against '' which
may overflow at runtime; recompile with -fPIC
blah.cc:function f(): error: undefined reference to ''
blah.o:g(): error: undefined reference to ''
I have not yet come up with an appropriate reproduction.
llvm-svn: 240394
|
|
|
|
|
|
| |
Apparently, the style needs to be agreed upon first.
llvm-svn: 240390
|
|
|
|
|
|
|
| |
r226830 moved the declaration of Buf to a nested scope, resulting
in a dangling reference (in StringRef Name), and a use-after-free.
llvm-svn: 240357
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that pr23900 is fixed, we can bring it back with no changes.
Original message:
Make all temporary symbols unnamed.
What this does is make all symbols that would otherwise start with a .L
(or L on MachO) unnamed.
Some of these symbols still show up in the symbol table, but we can just
make them unnamed.
In order to make sure we produce identical results when going thought assembly,
all .L (not just the compiler produced ones), are now unnamed.
Running llc on llvm-as.opt.bc, the peak memory usage goes from 208.24MB to
205.57MB.
llvm-svn: 240302
|
|
|
|
| |
llvm-svn: 240218
|
|
|
|
| |
llvm-svn: 240193
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patch is generated using this command:
tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \
-checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \
llvm/lib/
Thanks to Eugene Kosov for the original patch!
llvm-svn: 240137
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
What this does is make all symbols that would otherwise start with a .L
(or L on MachO) unnamed.
Some of these symbols still show up in the symbol table, but we can just
make them unnamed.
In order to make sure we produce identical results when going thought assembly,
all .L (not just the compiler produced ones), are now unnamed.
Running llc on llvm-as.opt.bc, the peak memory usage goes from 208.24MB to
205.57MB.
llvm-svn: 240130
|
|
|
|
| |
llvm-svn: 239174
|
|
|
|
| |
llvm-svn: 239168
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
s/ExecutePostLayoutBinding/executePostLayoutBinding/
s/ComputeSymbolTable/computeSymbolTable/
s/BindIndirectSymbols/bindIndirectSymbols/
s/RecordTLVPRelocation/recordTLVPRelocation/
s/RecordScatteredRelocation/recordScatteredRelocation/
s/WriteLinkerOptionsLoadCommand/writeLinkerOptionsLoadCommand/
s/WriteLinkeditLoadCommand/writeLinkeditLoadCommand/
s/WriteNlist/writeNlist/
s/WriteDysymtabLoadCommand/writeDysymtabLoadCommand/
s/WriteSymtabLoadCommand/writeSymtabLoadCommand/
s/WriteSection/writeSection/
s/WriteSegmentLoadCommand/writeSegmentLoadCommand/
s/WriteHeader/writeHeader/
llvm-svn: 239119
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
s/WriteObject/writeObject/
s/RecordRelocation/recordRelocation/
s/IsSymbolRefDifferenceFullyResolved/isSymbolRefDifferenceFullyResolved/
s/Write8/write8/
s/WriteLE16/writeLE16/
s/WriteLE32/writeLE32/
s/WriteLE64/writeLE64/
s/WriteBE16/writeBE16/
s/WriteBE32/writeBE32/
s/WriteBE64/writeBE64/
s/Write16/write16/
s/Write32/write32/
s/Write64/write64/
s/WriteZeroes/writeZeroes/
s/WriteBytes/writeBytes/
llvm-svn: 239108
|
|
|
|
| |
llvm-svn: 239092
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Section symbols exist as an optimization: instead of having multiple relocations
point to different symbols, many of them can point to a single section symbol.
When that optimization is unused, a section symbol is also unused and adds no
extra information to the object file.
This saves a bit of space on the object files and makes the output of
llvm-objdump -t easier to read and consequently some tests get quite a bit
simpler.
llvm-svn: 239045
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The fix is just that getOther had not been updated for packing the st_other
values in fewer bits and could return spurious values:
- unsigned Other = (getFlags() & (0x3f << ELF_STO_Shift)) >> ELF_STO_Shift;
+ unsigned Other = (getFlags() & (0x7 << ELF_STO_Shift)) >> ELF_STO_Shift;
Original message:
Pack the MCSymbolELF bit fields into MCSymbol's Flags.
This reduces MCSymolfELF from 64 bytes to 56 bytes on x86_64.
While at it, also make getOther/setOther easier to use by accepting unshifted
STO_* values.
llvm-svn: 239012
|
|
|
|
|
|
|
|
| |
This reverts commit r239006.
I am debugging the powerpc failures.
llvm-svn: 239010
|
|
|
|
|
|
|
|
|
| |
This reduces MCSymolfELF from 64 bytes to 56 bytes on x86_64.
While at it, also make getOther/setOther easier to use by accepting unshifted
STO_* values.
llvm-svn: 239006
|
|
|
|
| |
llvm-svn: 238996
|
|
|
|
|
|
|
|
|
| |
This avoids yet another last minute patching of the binding.
While at it, also simplify the weakref implementation a bit by not walking
past it in the expression evaluation.
llvm-svn: 238982
|
|
|
|
|
|
|
| |
With this getBinging can now return the correct answer for all cases not
involving a .symver and the elf writer doesn't need to patch it last minute.
llvm-svn: 238980
|
|
|
|
|
|
| |
No functionality change, just saves an on the side map.
llvm-svn: 238979
|
|
|
|
|
|
|
| |
_GLOBAL_OFFSET_TABLE_ is not magical and we can now directly check for a
symbol never getting an explicit binding.
llvm-svn: 238978
|
|
|
|
| |
llvm-svn: 238868
|
|
|
|
|
|
|
| |
Now that we have a dedicated type for ELF symbol, these helper functions can
become member function of MCSymbolELF.
llvm-svn: 238864
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
This completes the mechanical part of merging MCSymbol and MCSymbolData.
llvm-svn: 238617
|
|
|
|
|
|
| |
The getData member function is next.
llvm-svn: 238611
|
|
|
|
|
|
| |
Another step in merging MCSymbol and MCSymbolData.
llvm-svn: 238607
|
|
|
|
| |
llvm-svn: 238597
|
|
|
|
| |
llvm-svn: 238596
|
|
|
|
| |
llvm-svn: 238589
|
|
|
|
| |
llvm-svn: 238583
|
|
|
|
| |
llvm-svn: 238580
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 238480
|
|
|
|
| |
llvm-svn: 238479
|
|
|
|
| |
llvm-svn: 238477
|
|
|
|
| |
llvm-svn: 238471
|
|
|
|
| |
llvm-svn: 238465
|
|
|
|
| |
llvm-svn: 238463
|
|
|
|
| |
llvm-svn: 238461
|
|
|
|
| |
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
|