#
ce95ac64 |
| 22-Sep-2018 |
George Rimar <grimar@accesssoftek.com> |
[lib/MC] - Set SHF_EXCLUDE flag for .dwo sections.
DWARF5 spec says about single file split case:
"The sections that do not require relocation, however, can be written to the relocatable object (.o
[lib/MC] - Set SHF_EXCLUDE flag for .dwo sections.
DWARF5 spec says about single file split case:
"The sections that do not require relocation, however, can be written to the relocatable object (.o) file but ignored by the the linker or they can be written to a separate DWARF object (.dwo) file that need not be accessed by the linker."
Nice way to make linker to ignore them is to set SHF_EXCLUDE flag. It seems to be not harmful to always set it for .dwo sections. That is what this patch does.
Differential revision: https://reviews.llvm.org/D52303
llvm-svn: 342800
show more ...
|
Revision tags: llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2 |
|
#
3640d850 |
| 10-Aug-2018 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
Fix -Wimplicit-fallthrough warning introduced in rL339397.
llvm-svn: 339422
|
#
fce7f73b |
| 09-Aug-2018 |
Reid Kleckner <rnk@google.com> |
[MC] Move EH DWARF encodings from MC to CodeGen, NFC
Summary: The TType encoding, LSDA encoding, and personality encoding are all passed explicitly by CodeGen to the assembler through .cfi_* directi
[MC] Move EH DWARF encodings from MC to CodeGen, NFC
Summary: The TType encoding, LSDA encoding, and personality encoding are all passed explicitly by CodeGen to the assembler through .cfi_* directives, so only the AsmPrinter needs to know about them.
The FDE CFI encoding however, controls the encoding of the label implicitly created by the .cfi_startproc directive. That directive seems to be special in that it doesn't take an encoding, so the assembler just has to know how to encode one DSO-local label reference from .eh_frame to .text.
As a result, it looks like MC will continue to have to know when the large code model is in use. Perhaps we could invent a '.cfi_startproc [large]' flag so that this knowledge doesn't need to pollute the assembler.
Reviewers: davide, lliu0, JDevlieghere
Subscribers: hiraditya, fedor.sergeev, llvm-commits
Differential Revision: https://reviews.llvm.org/D50533
llvm-svn: 339397
show more ...
|
Revision tags: llvmorg-7.0.0-rc1 |
|
#
25b15f10 |
| 01-Aug-2018 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
Fix "not all control paths return a value" MSVC warning.
llvm-svn: 338529
|
#
8acb74e0 |
| 01-Aug-2018 |
Jonas Devlieghere <jonas@devlieghere.com> |
[MC] Report fatal error for DWARF types for non-ELF object files
Getting the DWARF types section is only implemented for ELF object files. We already disabled emitting debug types in clang (r337717)
[MC] Report fatal error for DWARF types for non-ELF object files
Getting the DWARF types section is only implemented for ELF object files. We already disabled emitting debug types in clang (r337717), but now we also report an fatal error (rather than crashing) when trying to obtain this section in MC. Additionally we ignore the generate debug types flag for unsupported target triples.
See PR38190 for more information.
Differential revision: https://reviews.llvm.org/D50057
llvm-svn: 338527
show more ...
|
#
fcf3810c |
| 12-Jul-2018 |
Wolfgang Pieb <Wolfgang.Pieb@sony.com> |
[DWARF v5] Generate range list tables into the .debug_rnglists section. No support for split DWARF and no use of DW_FORM_rnglistx with the DW_AT_ranges attribute.
Reviewer: aprantl
Differential Re
[DWARF v5] Generate range list tables into the .debug_rnglists section. No support for split DWARF and no use of DW_FORM_rnglistx with the DW_AT_ranges attribute.
Reviewer: aprantl
Differential Revision: https://reviews.llvm.org/D49214
llvm-svn: 336927
show more ...
|
#
85e200e9 |
| 25-Jun-2018 |
Alexander Richardson <arichardson.kde@gmail.com> |
Add Triple::isMIPS()/isMIPS32()/isMIPS64(). NFC
There are quite a few if statements that enumerate all these cases. It gets even worse in our fork of LLVM where we also have a Triple::cheri (which i
Add Triple::isMIPS()/isMIPS32()/isMIPS64(). NFC
There are quite a few if statements that enumerate all these cases. It gets even worse in our fork of LLVM where we also have a Triple::cheri (which is mips64 + CHERI instructions) and we had to update all if statements that check for Triple::mips64 to also handle Triple::cheri. This patch helps to reduce our diff to upstream and should also make some checks more readable.
Reviewed By: atanasyan
Differential Revision: https://reviews.llvm.org/D48548
llvm-svn: 335493
show more ...
|
#
dcf59c54 |
| 22-Jun-2018 |
George Rimar <grimar@accesssoftek.com> |
Recommit r335333 "[MC] - Add .stack_size sections into groups and link them with .text"
With compilation fix.
Original commit message:
D39788 added a '.stack-size' section containing metadata on f
Recommit r335333 "[MC] - Add .stack_size sections into groups and link them with .text"
With compilation fix.
Original commit message:
D39788 added a '.stack-size' section containing metadata on function stack sizes to output ELF files behind the new -stack-size-section flag.
This change does following two things on top:
1) Imagine the case when there are -ffunction-sections flag given and there are text sections in COMDATs. The patch adds a '.stack-size' section into corresponding COMDAT group, so that linker will be able to eliminate them fast during resolving the COMDATs. 2) Patch sets a SHF_LINK_ORDER flag and links '.stack-size' with the corresponding .text. With that linker will be able to do -gc-sections on dead stack sizes sections.
Differential revision: https://reviews.llvm.org/D46874
llvm-svn: 335336
show more ...
|
#
6d448da1 |
| 22-Jun-2018 |
George Rimar <grimar@accesssoftek.com> |
Revert r335332 "[MC] - Add .stack_size sections into groups and link them with .text"
It broke bots.
http://lab.llvm.org:8011/builders/clang-ppc64le-linux-lnt/builds/12891 http://lab.llvm.org:8011/
Revert r335332 "[MC] - Add .stack_size sections into groups and link them with .text"
It broke bots.
http://lab.llvm.org:8011/builders/clang-ppc64le-linux-lnt/builds/12891 http://lab.llvm.org:8011/builders/clang-cmake-x86_64-sde-avx512-linux/builds/9443 http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-buildserver/builds/25551
llvm-svn: 335333
show more ...
|
#
e14485a0 |
| 22-Jun-2018 |
George Rimar <grimar@accesssoftek.com> |
[MC] - Add .stack_size sections into groups and link them with .text
D39788 added a '.stack-size' section containing metadata on function stack sizes to output ELF files behind the new -stack-size-s
[MC] - Add .stack_size sections into groups and link them with .text
D39788 added a '.stack-size' section containing metadata on function stack sizes to output ELF files behind the new -stack-size-section flag.
This change does following two things on top:
1) Imagine the case when there are -ffunction-sections flag given and there are text sections in COMDATs. The patch adds a '.stack-size' section into corresponding COMDAT group, so that linker will be able to eliminate them fast during resolving the COMDATs. 2) Patch sets a SHF_LINK_ORDER flag and links '.stack-size' with the corresponding .text. With that linker will be able to do -gc-sections on dead stack sizes sections.
Differential revision: https://reviews.llvm.org/D46874
llvm-svn: 335332
show more ...
|
Revision tags: llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2 |
|
#
b210c64b |
| 10-May-2018 |
Sam Clegg <sbc@chromium.org> |
[WebAssembly] Create section start symbols automatically for all sections
These symbols only get included in the output symbols table if they are used in a relocation.
This behaviour matches more c
[WebAssembly] Create section start symbols automatically for all sections
These symbols only get included in the output symbols table if they are used in a relocation.
This behaviour matches more closely the ELF object writer.
Differential Revision: https://reviews.llvm.org/D46561
llvm-svn: 332005
show more ...
|
#
fb807d4d |
| 07-May-2018 |
Sam Clegg <sbc@chromium.org> |
[WebAssembly] Ensure all .debug_XXX section has proper symbol names
Updated wasm section symbols names to match section name, and ensure all referenced sections will have a symbol (per DWARF spec v3
[WebAssembly] Ensure all .debug_XXX section has proper symbol names
Updated wasm section symbols names to match section name, and ensure all referenced sections will have a symbol (per DWARF spec v3, Figure 43)
Patch by Yury Delendik!
Differential Revision: https://reviews.llvm.org/D46543
llvm-svn: 331664
show more ...
|
#
4d57fbd0 |
| 02-May-2018 |
Sam Clegg <sbc@chromium.org> |
[WebAssembly] MC: Create and use first class section symbols
Differential Revision: https://reviews.llvm.org/D46335
llvm-svn: 331413
|
Revision tags: llvmorg-6.0.1-rc1 |
|
#
d0804aa6 |
| 10-Apr-2018 |
Steven Wu <stevenwu@apple.com> |
[MachO] Emit Weak ReadOnlyWithRel to ConstDataSection
Summary: Darwin dynamic linker can handle weak symbols in ConstDataSection. ReadonReadOnlyWithRel symbols should be emitted in ConstDataSection
[MachO] Emit Weak ReadOnlyWithRel to ConstDataSection
Summary: Darwin dynamic linker can handle weak symbols in ConstDataSection. ReadonReadOnlyWithRel symbols should be emitted in ConstDataSection instead of normal DataSection.
rdar://problem/39298457
Reviewers: dexonsmith, kledzik
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D45472
llvm-svn: 329752
show more ...
|
#
6088c234 |
| 04-Apr-2018 |
Pavel Labath <labath@google.com> |
Re-commit r329179 after fixing build&test issues
- MSVC was not OK with a static_assert referencing a non-static member variable, even though it was just in a sizeof(expression). I move the asse
Re-commit r329179 after fixing build&test issues
- MSVC was not OK with a static_assert referencing a non-static member variable, even though it was just in a sizeof(expression). I move the assert into the emit function, where it is probably more useful. - Tests were failing in builds which did not have the X86 target configured. Since this functionality is not target-specific, I have removed the target specifiers from the .ll files.
llvm-svn: 329201
show more ...
|
#
55fcd07d |
| 04-Apr-2018 |
Nico Weber <nicolasweber@gmx.de> |
Revert r329179 (and follow-up unsuccessful fix attempts 329184, 329186); it doesn't build.
llvm-svn: 329190
|
#
69baab10 |
| 04-Apr-2018 |
Pavel Labath <labath@google.com> |
[CodeGen] Generate DWARF v5 Accelerator Tables
Summary: This patch adds a DwarfAccelTableEmitter class, which generates an accelerator table, as specified in DWARF v5 standard. At the moment it only
[CodeGen] Generate DWARF v5 Accelerator Tables
Summary: This patch adds a DwarfAccelTableEmitter class, which generates an accelerator table, as specified in DWARF v5 standard. At the moment it only generates a DIE offset column and (if we are indexing more than one compile unit) a CU column.
Indexing type units is not currently supported, as we don't even have the ability to generate DWARF v5-compatible compile units.
The implementation is not data-source agnostic like the one generating apple tables. This was not necessary as we currently only have one user of this code, and without a second user it was not obvious to me how to best abstract this. (The difference between these tables and the apple ones is that they need a lot more metadata about the debug info they are indexing).
The generation is triggered by the --accel-tables argument, which supersedes the --dwarf-accel-tables arg -- the latter was a simple on-off switch, but not we can choose between two kinds of accelerator tables we can generate.
This is tested by parsing the generated tables with llvm-dwarfdump and the DWARFVerifier, and I've also checked that GNU readelf is able to make sense of the tables.
Differential Revision: https://reviews.llvm.org/D43286
llvm-svn: 329179
show more ...
|
Revision tags: llvmorg-5.0.2, llvmorg-5.0.2-rc2 |
|
#
fe6e6d93 |
| 24-Mar-2018 |
Eric Christopher <echristo@gmail.com> |
Allow FDE references outside the +/-2GB range supported by PC relative offsets for code models other than small/medium. For JIT application, memory layout is less controlled and can result in truncat
Allow FDE references outside the +/-2GB range supported by PC relative offsets for code models other than small/medium. For JIT application, memory layout is less controlled and can result in truncations otherwise.
Patch based on one by Olexa Bilaniuk!
llvm-svn: 328400
show more ...
|
Revision tags: llvmorg-5.0.2-rc1, llvmorg-6.0.0, llvmorg-6.0.0-rc3, llvmorg-6.0.0-rc2 |
|
#
1f90029a |
| 06-Feb-2018 |
Paul Robinson <paul.robinson@sony.com> |
[DWARFv5] Emit .debug_line_str (in a non-DWO file).
This should enable the linker to do string-pooling of path names.
Differential Revision: https://reviews.llvm.org/D42707
llvm-svn: 324393
|
Revision tags: llvmorg-6.0.0-rc1 |
|
#
db2736dd |
| 09-Jan-2018 |
Adrian McCarthy <amccarth@google.com> |
Reland "Emit Function IDs table for Control Flow Guard"
Adds option /guard:cf to clang-cl and -cfguard to cc1 to emit function IDs of functions that have their address taken into a section named .gf
Reland "Emit Function IDs table for Control Flow Guard"
Adds option /guard:cf to clang-cl and -cfguard to cc1 to emit function IDs of functions that have their address taken into a section named .gfids$y for compatibility with Microsoft's Control Flow Guard feature.
The original patch didn't have the lit.local.cfg file that restricts the new test to x86, thus the new test was failing on the non-x86 bots.
Differential Revision: https://reviews.llvm.org/D40531
The reverts r322008, which was a revert of r322005.
This reverts commit a05b89f9aca70597dc79fe97bc49b50b51f525ba.
llvm-svn: 322136
show more ...
|
#
ce63a925 |
| 08-Jan-2018 |
Adrian McCarthy <amccarth@google.com> |
Revert "Emit Function IDs table for Control Flow Guard"
The new test fails on the Hexagon bot. Reverting while I investigate.
This reverts https://reviews.llvm.org/rL322005
This reverts commit b7
Revert "Emit Function IDs table for Control Flow Guard"
The new test fails on the Hexagon bot. Reverting while I investigate.
This reverts https://reviews.llvm.org/rL322005
This reverts commit b7e0026b4385180c378edc658ec91a39566f2942.
llvm-svn: 322008
show more ...
|
#
cf6e6c82 |
| 08-Jan-2018 |
Adrian McCarthy <amccarth@google.com> |
Emit Function IDs table for Control Flow Guard
Adds option /guard:cf to clang-cl and -cfguard to cc1 to emit function IDs of functions that have their address taken into a section named .gfids$y for
Emit Function IDs table for Control Flow Guard
Adds option /guard:cf to clang-cl and -cfguard to cc1 to emit function IDs of functions that have their address taken into a section named .gfids$y for compatibility with Microsoft's Control Flow Guard feature.
Differential Revision: https://reviews.llvm.org/D40531
llvm-svn: 322005
show more ...
|
#
048f8f99 |
| 13-Dec-2017 |
Zachary Turner <zturner@google.com> |
[CodeView] Teach clang to emit the .debug$H COFF section.
Currently this is an LLVM extension to the COFF spec which is experimental and intended to speed up linking. For now it is behind a hidden
[CodeView] Teach clang to emit the .debug$H COFF section.
Currently this is an LLVM extension to the COFF spec which is experimental and intended to speed up linking. For now it is behind a hidden cl::opt flag, but in the future we can move it to a "real" cc1 flag and have the driver pass it through whenever it is appropriate.
The patch to actually make use of this section in lld will come in a followup.
Differential Revision: https://reviews.llvm.org/D40917
llvm-svn: 320649
show more ...
|
Revision tags: llvmorg-5.0.1, llvmorg-5.0.1-rc3 |
|
#
a6bcd53d |
| 30-Nov-2017 |
Sean Eveson <eveson.sean@gmail.com> |
[MC] Function stack size section.
Re applying after fixing issues in the diff, sorry for any painful conflicts/merges!
Original RFC: http://lists.llvm.org/pipermail/llvm-dev/2017-August/117028.html
[MC] Function stack size section.
Re applying after fixing issues in the diff, sorry for any painful conflicts/merges!
Original RFC: http://lists.llvm.org/pipermail/llvm-dev/2017-August/117028.html
This change adds a '.stack-size' section containing metadata on function stack sizes to output ELF files behind the new -stack-size-section flag. The section contains pairs of function symbol references (8 byte) and stack sizes (unsigned LEB128).
The contents of this section can be used to measure changes to stack sizes between different versions of the compiler or a source base. The advantage of having a section is that we can extract this information when examining binaries that we didn't build, and it allows users and tools easy access to that information just by referencing the binary.
There is a follow up change to add an option to clang.
Thanks.
Reviewers: hfinkel, MatzeB
Reviewed By: MatzeB
Subscribers: thegameg, asb, llvm-commits
Differential Revision: https://reviews.llvm.org/D39788
llvm-svn: 319430
show more ...
|
#
661e4fbf |
| 30-Nov-2017 |
Sean Eveson <eveson.sean@gmail.com> |
Revert r319423: [MC] Function stack size section.
I messed up the diff.
llvm-svn: 319429
|