#
264b5d9e |
| 07-Jun-2017 |
Zachary Turner <zturner@google.com> |
Move Object format code to lib/BinaryFormat.
This creates a new library called BinaryFormat that has all of the headers from llvm/Support containing structure and layout definitions for various type
Move Object format code to lib/BinaryFormat.
This creates a new library called BinaryFormat that has all of the headers from llvm/Support containing structure and layout definitions for various types of binary formats like dwarf, coff, elf, etc as well as the code for identifying a file from its magic.
Differential Revision: https://reviews.llvm.org/D33843
llvm-svn: 304864
show more ...
|
#
6bda14b3 |
| 06-Jun-2017 |
Chandler Carruth <chandlerc@gmail.com> |
Sort the remaining #include lines in include/... and lib/....
I did this a long time ago with a janky python script, but now clang-format has built-in support for this. I fed clang-format every line
Sort the remaining #include lines in include/... and lib/....
I did this a long time ago with a janky python script, but now clang-format has built-in support for this. I fed clang-format every line with a #include and let it re-sort things according to the precise LLVM rules for include ordering baked into clang-format these days.
I've reverted a number of files where the results of sorting includes isn't healthy. Either places where we have legacy code relying on particular include ordering (where possible, I'll fix these separately) or where we have particular formatting around #include lines that I didn't want to disturb in this patch.
This patch is *entirely* mechanical. If you get merge conflicts or anything, just ignore the changes in this patch and run clang-format over your #include lines in the files.
Sorry for any noise here, but it is important to keep these things stable. I was seeing an increasing number of patches with irrelevant re-ordering of #include lines because clang-format was used. This patch at least isolates that churn, makes it easy to skip when resolving conflicts, and gets us to a clean baseline (again).
llvm-svn: 304787
show more ...
|
#
4c47434b |
| 05-Jun-2017 |
Saleem Abdulrasool <compnerd@compnerd.org> |
CodeGen: add support for emitting ObjC image info
This ensures that we can emit the ObjC Image Info structure on COFF and ELF as well. The frontend already would attempt to emit this information bu
CodeGen: add support for emitting ObjC image info
This ensures that we can emit the ObjC Image Info structure on COFF and ELF as well. The frontend already would attempt to emit this information but would get dropped when generating assembly or an object file.
llvm-svn: 304736
show more ...
|
#
b16d1468 |
| 05-Jun-2017 |
Javed Absar <javed.absar@arm.com> |
Add support for #pragma clang section
This patch provides a means to specify section-names for global variables, functions and static variables, using #pragma directives. This feature is only define
Add support for #pragma clang section
This patch provides a means to specify section-names for global variables, functions and static variables, using #pragma directives. This feature is only defined to work sensibly for ELF targets. One can specify section names as: #pragma clang section bss="myBSS" data="myData" rodata="myRodata" text="myText" One can "unspecify" a section name with empty string e.g. #pragma clang section bss="" data="" text="" rodata=""
Reviewers: Roger Ferrer, Jonathan Roelofs, Reid Kleckner Differential Revision: https://reviews.llvm.org/D33413
llvm-svn: 304704
show more ...
|
Revision tags: llvmorg-4.0.1-rc2 |
|
#
f7e8acf0 |
| 08-May-2017 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
Ignore !associated metadata with null argument.
Fixes PR32577 (comment 10). Such metadata may legitimately appear in LTO.
llvm-svn: 302485
|
Revision tags: llvmorg-4.0.1-rc1 |
|
#
1a6a2b64 |
| 15-Apr-2017 |
Vedant Kumar <vsk@apple.com> |
[ProfileData] Unify getInstrProf*SectionName helpers
This is a version of D32090 that unifies all of the `getInstrProf*SectionName` helper functions. (Note: the build failures which D32090 would hav
[ProfileData] Unify getInstrProf*SectionName helpers
This is a version of D32090 that unifies all of the `getInstrProf*SectionName` helper functions. (Note: the build failures which D32090 would have addressed were fixed with r300352.)
We should unify these helper functions because they are hard to use in their current form. E.g we recently introduced more helpers to fix section naming for COFF files. This scheme doesn't totally succeed at hiding low-level details about section naming, so we should switch to an API that is easier to maintain.
This is not an NFC commit because it fixes llvm-cov's testing support for COFF files (this falls out of the API change naturally). This is an area where we lack tests -- I will see about adding one as a follow up.
Testing: check-clang, check-profile, check-llvm.
Differential Revision: https://reviews.llvm.org/D32097
llvm-svn: 300381
show more ...
|
#
4a5ddf80 |
| 14-Apr-2017 |
Xinliang David Li <davidxl@google.com> |
[Profile] Make host tool aware of object format when quering prof section names
Differential Revision: https://reviews.llvm.org/D32073
llvm-svn: 300352
|
#
57dea2d3 |
| 13-Apr-2017 |
Xinliang David Li <davidxl@google.com> |
[Profile] PE binary coverage bug fix
PR/32584
Differential Revision: https://reviews.llvm.org/D32023
llvm-svn: 300277
|
#
c66018e2 |
| 31-Mar-2017 |
Peter Collingbourne <peter@pcc.me.uk> |
Move llvm::emitLinkerFlagsForGlobalCOFF() to Mangler.
llvm-svn: 299183
|
#
51c962f7 |
| 17-Mar-2017 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
Add !associated metadata.
This is an ELF-specific thing that adds SHF_LINK_ORDER to the global's section pointing to the metadata argument's section. The effect of that is a reverse dependency betwe
Add !associated metadata.
This is an ELF-specific thing that adds SHF_LINK_ORDER to the global's section pointing to the metadata argument's section. The effect of that is a reverse dependency between sections for the linker GC.
!associated does not change the behavior of global-dce. The global may also need to be added to llvm.compiler.used.
Since SHF_LINK_ORDER is per-section, !associated effectively enables fdata-sections for the affected globals, the same as comdats do.
Differential Revision: https://reviews.llvm.org/D29104
llvm-svn: 298157
show more ...
|
Revision tags: llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3 |
|
#
fa912a71 |
| 27-Feb-2017 |
Eugene Zelenko <eugene.zelenko@gmail.com> |
[CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
llvm-svn: 296404
|
#
d934cb88 |
| 24-Feb-2017 |
Dan Gohman <dan433584@gmail.com> |
[WebAssembly] Basic support for Wasm object file encoding.
With the "wasm32-unknown-unknown-wasm" triple, this allows writing out simple wasm object files, and is another step in a larger series tow
[WebAssembly] Basic support for Wasm object file encoding.
With the "wasm32-unknown-unknown-wasm" triple, this allows writing out simple wasm object files, and is another step in a larger series toward migrating from ELF to general wasm object support. Note that this code and the binary format itself is still experimental.
llvm-svn: 296190
show more ...
|
#
18eafb6c |
| 22-Feb-2017 |
Dan Gohman <dan433584@gmail.com> |
[WebAssembly] Add skeleton MC support for the Wasm container format
This just adds the basic skeleton for supporting a new object file format. All of the actual encoding will be implemented in follo
[WebAssembly] Add skeleton MC support for the Wasm container format
This just adds the basic skeleton for supporting a new object file format. All of the actual encoding will be implemented in followup patches.
Differential Revision: https://reviews.llvm.org/D26722
llvm-svn: 295803
show more ...
|
Revision tags: llvmorg-4.0.0-rc2 |
|
#
dd4ebc1d |
| 02-Feb-2017 |
Bob Haarman <llvm@inglorion.net> |
[lto] add getLinkerOpts()
Summary: Some compilers, including MSVC and Clang, allow linker options to be specified in source files. In the legacy LTO API, there is a getLinkerOpts() method that retur
[lto] add getLinkerOpts()
Summary: Some compilers, including MSVC and Clang, allow linker options to be specified in source files. In the legacy LTO API, there is a getLinkerOpts() method that returns linker options for the bitcode module being processed. This change adds that method to the new API, so that the COFF linker can get the right linker options when using the new LTO API.
Reviewers: pcc, ruiu, mehdi_amini, tejohnson
Reviewed By: pcc
Differential Revision: https://reviews.llvm.org/D29207
llvm-svn: 293950
show more ...
|
Revision tags: llvmorg-4.0.0-rc1 |
|
#
cd46c1df |
| 29-Dec-2016 |
Reid Kleckner <rnk@google.com> |
Revert "[COFF] Use 32-bit jump table entries in .rdata for Win64"
This reverts commit r290694. It broke sanitizer tests on Win64. I'll probably bring this back, but the jump tables will just live in
Revert "[COFF] Use 32-bit jump table entries in .rdata for Win64"
This reverts commit r290694. It broke sanitizer tests on Win64. I'll probably bring this back, but the jump tables will just live in .text like they do for MSVC.
llvm-svn: 290714
show more ...
|
#
c9e0a153 |
| 29-Dec-2016 |
Reid Kleckner <rnk@google.com> |
[COFF] Use 32-bit jump table entries in .rdata for Win64
Summary: We were already using 32-bit jump table entries, but this was a consequence of the default PIC model on Win64, and not an intentiona
[COFF] Use 32-bit jump table entries in .rdata for Win64
Summary: We were already using 32-bit jump table entries, but this was a consequence of the default PIC model on Win64, and not an intentional design decision. This patch ensures that we always use 32-bit label difference jump table entries on Win64 regardless of the PIC model. This is a good idea because it saves executable size and object file size.
Moving the jump tables to .rdata cleans up the disassembled object code and reduces the available ROP targets, but it requires adding one more RIP-relative lea to the code. COFF doesn't have relocations to express the difference between two arbitrary symbols, so we can't use the jump table label in the label difference like we do elsewhere.
Fixes PR31488
Reviewers: majnemer, compnerd
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28141
llvm-svn: 290694
show more ...
|
#
52a7dd7d |
| 15-Dec-2016 |
Prakhar Bahuguna <prakhar.bahuguna@arm.com> |
[ARM] Implement execute-only support in CodeGen
This implements execute-only support for ARM code generation, which prevents the compiler from generating data accesses to code sections. The followin
[ARM] Implement execute-only support in CodeGen
This implements execute-only support for ARM code generation, which prevents the compiler from generating data accesses to code sections. The following changes are involved:
* Add the CodeGen option "-arm-execute-only" to the ARM code generator. * Add the clang flag "-mexecute-only" as well as the GCC-compatible alias "-mpure-code" to enable this option. * When enabled, literal pools are replaced with MOVW/MOVT instructions, with VMOV used in addition for floating-point literals. As the MOVT instruction is required, execute-only support is only available in Thumb mode for targets supporting ARMv8-M baseline or Thumb2. * Jump tables are placed in data sections when in execute-only mode. * The execute-only text section is assigned section ID 0, and is marked as unreadable with the SHF_ARM_PURECODE flag with symbol 'y'. This also overrides selection of ELF sections for globals.
llvm-svn: 289784
show more ...
|
Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1 |
|
#
b64fb453 |
| 22-Nov-2016 |
Tim Northover <tnorthover@apple.com> |
CodeGen: simplify TargetMachine::getSymbol interface. NFC.
No-one actually had a mangler handy when calling this function, and getSymbol itself went most of the way towards getting its own mangler (
CodeGen: simplify TargetMachine::getSymbol interface. NFC.
No-one actually had a mangler handy when calling this function, and getSymbol itself went most of the way towards getting its own mangler (with a local TLOF variable) so forcing all callers to supply one was just extra complication.
llvm-svn: 287645
show more ...
|
#
6733564e |
| 24-Oct-2016 |
Peter Collingbourne <peter@pcc.me.uk> |
Target: Change various section classifiers in TargetLoweringObjectFile to take a GlobalObject.
These functions are about classifying a global which will actually be emitted, so it does not make sens
Target: Change various section classifiers in TargetLoweringObjectFile to take a GlobalObject.
These functions are about classifying a global which will actually be emitted, so it does not make sense for them to take a GlobalValue which may for example be an alias.
Change the Mach-O object writer and the Hexagon, Lanai and MIPS backends to look through aliases before using TargetLoweringObjectFile interfaces. These are functional changes but all appear to be bug fixes.
Differential Revision: https://reviews.llvm.org/D25917
llvm-svn: 285006
show more ...
|
#
302b69c9 |
| 18-Oct-2016 |
Dehao Chen <dehao@google.com> |
Use profile info to set function section prefix to group hot/cold functions.
Summary: The original implementation is in r261607, which was reverted in r269726 to accomendate the ProfileSummaryInfo a
Use profile info to set function section prefix to group hot/cold functions.
Summary: The original implementation is in r261607, which was reverted in r269726 to accomendate the ProfileSummaryInfo analysis pass. The new implementation: 1. add a new metadata for function section prefix 2. query against ProfileSummaryInfo in CGP to set the correct section prefix for each function 3. output the section prefix set by CGP
Reviewers: davidxl, eraman
Subscribers: vsk, llvm-commits
Differential Revision: https://reviews.llvm.org/D24989
llvm-svn: 284533
show more ...
|
#
c39f8b0a |
| 14-Oct-2016 |
Eric Christopher <echristo@gmail.com> |
Revert "In preparation for removing getNameWithPrefix off of TargetMachine," as it's causing sanitizer/memory issues until I can track down this set.
This reverts commit r284203
llvm-svn: 284252
|
#
2bd52b5d |
| 14-Oct-2016 |
Eric Christopher <echristo@gmail.com> |
In preparation for removing getNameWithPrefix off of TargetMachine, sink the current behavior into the callers and sink TargetMachine::getNameWithPrefix into TargetMachine::getSymbol.
llvm-svn: 2842
In preparation for removing getNameWithPrefix off of TargetMachine, sink the current behavior into the callers and sink TargetMachine::getNameWithPrefix into TargetMachine::getSymbol.
llvm-svn: 284203
show more ...
|
#
c4636b30 |
| 20-Sep-2016 |
Eric Christopher <echristo@gmail.com> |
Revert "Remove extra argument used once on TargetMachine::getNameWithPrefix and inline the result into the singular caller." and "Remove more guts of TargetMachine::getNameWithPrefix and migrate one
Revert "Remove extra argument used once on TargetMachine::getNameWithPrefix and inline the result into the singular caller." and "Remove more guts of TargetMachine::getNameWithPrefix and migrate one check to the TLOF mach-o version." temporarily until I can get the whole call migrated out of the TargetMachine as we could hit places where TLOF isn't valid.
This reverts commits r281981 and r281983.
llvm-svn: 282028
show more ...
|
#
1290355f |
| 20-Sep-2016 |
Petr Hosek <phosek@chromium.org> |
Mark ELF sections whose name start with .note as note
Previously, such section would be marked as SHT_PROGBITS which makes it impossible to use an initialized C variable declaration to emit an (allo
Mark ELF sections whose name start with .note as note
Previously, such section would be marked as SHT_PROGBITS which makes it impossible to use an initialized C variable declaration to emit an (allocated) ELF note. The new behavior is also consistent with ELF assembly parser.
Differential Revision: https://reviews.llvm.org/D24692
llvm-svn: 282010
show more ...
|
#
a1ccdc34 |
| 20-Sep-2016 |
Eric Christopher <echristo@gmail.com> |
Remove more guts of TargetMachine::getNameWithPrefix and migrate one check to the TLOF mach-o version.
NFC intended.
llvm-svn: 281983
|