| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Once the auxiliary fields relating to the filename have been inspected, any
following auxiliary fields need not be visited as they have been consumed (the
following fields comprise the filepath as a single unit).
Adjust the test to catch this even if ASAN is not enabled.
llvm-svn: 206190
|
| |
|
|
|
|
| |
Patch by Nick Tomlinson!
llvm-svn: 206177
|
| |
|
|
|
|
|
|
|
| |
Rather than switching behaviour on whether a previous symbol has an auxiliary
symbol record for the next count of elements, simply iterate over the auxiliary
symbols right after processing the current symbol entry. This makes the
behaviour much simpler to follow and similar to llvm-readobj and yaml2obj.
llvm-svn: 206146
|
| |
|
|
|
|
|
|
|
| |
If a filename is a multiple of 18 characters, there will be no null-terminator.
This will result in an invalid access by the constructed StringRef. Add a test
case to exercise this and fix that handling. Address this same vulnerability in
llvm-readobj as well.
llvm-svn: 206145
|
| |
|
|
|
|
|
| |
Now that COFF::coff_aux_file is defined, use that rather than redefining the
type locally.
llvm-svn: 206140
|
| |
|
|
|
|
|
|
|
| |
The auxiliary file records are contiguous and only contain the filename.
Construct a StringRef directly rather than copying to a temporary buffer.
Suggested by majnemer on IRC!
llvm-svn: 206139
|
| |
|
|
|
|
|
|
|
| |
Add support for file auxiliary symbol entries in COFF symbol tables. A COFF
symbol table with a FILE entry is followed by sizeof(__FILE__) / 18 auxiliary
symbol records which contain the filename. Read them and form the original
filename that the record contains. Then display the name in the output.
llvm-svn: 206126
|
| |
|
|
| |
llvm-svn: 206115
|
| |
|
|
|
|
|
| |
When -mcpu=native is passed, autodetect the host CPU and pass that
as the CPU name to the TargetMachine factory method.
llvm-svn: 206095
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patch implements support for both relocation record formats: Elf_Rel
and Elf_Rela. It is possible to define relocation against symbol only.
Relocations against sections will be implemented later. Now yaml2obj
recognizes X86_64, MIPS and Hexagon relocation types.
Example of relocation section specification:
Sections:
- Name: .text
Type: SHT_PROGBITS
Content: "0000000000000000"
AddressAlign: 16
Flags: [SHF_ALLOC]
- Name: .rel.text
Type: SHT_REL
Info: .text
AddressAlign: 4
Relocations:
- Offset: 0x1
Symbol: glob1
Type: R_MIPS_32
- Offset: 0x2
Symbol: glob2
Type: R_MIPS_CALL16
The patch reviewed by Michael Spencer, Sean Silva, Shankar Easwaran.
llvm-svn: 206017
|
| |
|
|
|
|
|
|
| |
be used for indexing not only section's names.
No functional changes.
llvm-svn: 205687
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r205479.
It turns out that nm does use addresses, it is just that every reasonable
relocatable ELF object has sections with address 0. I have no idea if those
exist in reality, but it at least it shows that llvm-nm should use the name
address.
The added test was includes an unusual .o file with non 0 section addresses. I
created it by hacking ELFObjectWriter.cpp.
Really sorry for the churn.
llvm-svn: 205493
|
| |
|
|
|
|
|
|
|
|
|
| |
What llvm-nm prints depends on the file format. On ELF for example, if the
file is relocatable, it prints offsets. If it is not, it prints addresses.
Since it doesn't really need to care what it is that it is printing, use the
generic term value.
Fix or implement getSymbolValue to keep llvm-nm working.
llvm-svn: 205479
|
| |
|
|
|
|
|
|
|
|
|
| |
This reverts commit r199244.
Conflicts:
include/llvm-c/lto.h
include/llvm/LTO/LTOCodeGenerator.h
lib/LTO/LTOCodeGenerator.cpp
llvm-svn: 205471
|
| |
|
|
|
|
|
|
| |
reduce number of arguments.
No functional changes.
llvm-svn: 205434
|
| |
|
|
|
|
| |
No functional changes.
llvm-svn: 205433
|
| |
|
|
|
|
| |
No functional changes.
llvm-svn: 205432
|
| |
|
|
|
|
|
|
|
| |
and ContiguousBlobAccumulator classes. Pass ContiguousBlobAccumulator to
the handleSymtabSectionHeader function directly.
No functional changes.
llvm-svn: 205431
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The FileHeader mapping now accepts an optional Flags sequence that accepts
the EF_<arch>_<flag> constants. When not given, Flags defaults to zero.
Reviewers: atanasyan
Reviewed By: atanasyan
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3213
llvm-svn: 205173
|
| |
|
|
|
|
|
| |
Canonicalise the default triple that is used on Windows. This should hopefully
fix the MSVC buildbots.
llvm-svn: 205070
|
| |
|
|
| |
llvm-svn: 205053
|
| |
|
|
|
|
|
|
|
|
| |
This is a bit of a stab in the dark, since I have zlib on my machine.
Just going to bounce it off the bots & see if it sticks.
Do we have some convention for negative REQUIRES: checks? Or do I just
need to add a feature like I've done here?
llvm-svn: 205050
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) When creating a .debug_* section and instead create a .zdebug_
section.
2) When creating a fragment in a .zdebug_* section, make it a compressed
fragment.
3) When computing the size of a compressed section, compress the data
and use the size of the compressed data.
4) Emit the compressed bytes.
Also, check that only if a section has a compressed fragment, then that
is the only fragment in the section.
Assert-fail if the fragment's data is modified after it is compressed.
Initial review on llvm-commits by Eric Christopher and Rafael Espindola.
llvm-svn: 204958
|
| |
|
|
|
|
| |
they take ownership of the RelocationInfo they're constructed with.
llvm-svn: 204891
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need .symtab_shndxr if and only if a symbol references a section with an
index >= 0xff00.
The old code was trying to figure out if the section was needed ahead of time,
making it a fairly dependent on the code actually writing the table. It was
also somewhat conservative and would create the section in cases where it was
not needed.
If I remember correctly, the old structure was there so that the sections were
created in the same order gas creates them. That was valuable when MC's support
for ELF was new and we tested with elf-dump.py.
This patch refactors the symbol table creation to another class and makes it
obvious that .symtab_shndxr is really only created when we are about to output
a reference to a section index >= 0xff00.
While here, also improve the tests to use macros. One file is one section
short of needing .symtab_shndxr, the second one has just the right number.
llvm-svn: 204769
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement debug_loc.dwo, as well as llvm-dwarfdump support for dumping
this section.
Outlined in the DWARF5 spec and http://gcc.gnu.org/wiki/DebugFission the
debug_loc.dwo section has more variation than the standard debug_loc,
allowing 3 different forms of entry (plus the end of list entry). GCC
seems to, and Clang certainly, only use one form, so I've just
implemented dumping support for that for now.
It wasn't immediately obvious that there was a good refactoring to share
the implementation of dumping support between debug_loc and
debug_loc.dwo, so they're separate for now - ideas welcome or I may come
back to it at some point.
As per a comment in the code, we could choose different forms that may
reduce the number of debug_addr entries we emit, but that will require
further study.
llvm-svn: 204697
|
| |
|
|
|
|
|
|
|
|
| |
Previously we would print an error message on machines where the only VS
version we find is 2013, even though we successfully install the integration
files for it.
Also, we shouldn't have two END labels.
llvm-svn: 204629
|
| |
|
|
| |
llvm-svn: 204584
|
| |
|
|
| |
llvm-svn: 204573
|
| |
|
|
| |
llvm-svn: 204571
|
| |
|
|
| |
llvm-svn: 204552
|
| |
|
|
|
|
|
| |
is confused with CRLF.
FIXME: line_iterator should be tolerant of CR.
llvm-svn: 204540
|
| |
|
|
|
|
|
|
|
|
|
| |
This isn't a format we'll want to write out in practice, but moving it
to the writer library simplifies llvm-profdata and isolates it from
further changes to the format.
This also allows us to update the tests to not rely on the text output
format.
llvm-svn: 204489
|
| |
|
|
|
|
|
| |
The `llvm-profdata show` command summarizes a profdata file's contents
in a human readable format.
llvm-svn: 204485
|
| |
|
|
|
|
|
|
|
|
| |
This introduces the ProfileData library and updates llvm-profdata to
use this library for reading profiles. InstrProfReader is an abstract
base class that will be subclassed for both the raw instrprof data
from compiler-rt and the efficient instrprof format that will be used
for PGO.
llvm-svn: 204482
|
| |
|
|
|
|
| |
Patch by Ted Woodward
llvm-svn: 204409
|
| |
|
|
|
|
| |
It was dead.
llvm-svn: 204404
|
| |
|
|
| |
llvm-svn: 204370
|
| |
|
|
|
|
|
| |
obj2yaml would emit the NUL bytes padding the auxiliary file symbol
records. Trimming them looks nicer.
llvm-svn: 204314
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 204313
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current state of affairs has auxiliary symbols described as a big
bag of bytes. This is less than satisfying, it detracts from the YAML
file as being human readable.
Instead, allow for symbols to optionally contain their auxiliary data.
This allows us to have a much higher level way of describing things like
weak symbols, function definitions and section definitions.
This depends on D3105.
Differential Revision: http://llvm-reviews.chandlerc.com/D3092
llvm-svn: 204214
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: These definitions are useful to other aspects of LLVM, move them out.
Reviewers: rafael, nrieck, ruiu
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3105
llvm-svn: 204213
|
| |
|
|
|
|
| |
We'll be adding a few more subcommands in the near future.
llvm-svn: 204211
|
| |
|
|
|
|
| |
This also uses line_iterator to simplify the parsing logic.
llvm-svn: 204210
|
| |
|
|
|
|
| |
Differential Revision: http://llvm-reviews.chandlerc.com/D3103
llvm-svn: 204199
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Allow object files to be tagged with a version-min load command for iOS
or MacOSX.
Teach macho-dump to understand the version-min load commands for
testcases.
rdar://11337778
llvm-svn: 204190
|
| |
|
|
| |
llvm-svn: 204171
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
it work with range-based for loops.
Reviewers: ruiu
Reviewed By: ruiu
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3097
llvm-svn: 204120
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: rafael
Reviewed By: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3081
llvm-svn: 204031
|
| |
|
|
| |
llvm-svn: 204024
|