|
Revision tags: llvmorg-3.7.1-rc1 |
|
| #
65e49021 |
| 17-Nov-2015 |
Rafael Espindola <[email protected]> |
Drop prelink support.
The way prelink used to work was
* The compiler decides if a given section only has relocations that are know to point to the same DSO. If so, it names it .data.rel.ro.local<s
Drop prelink support.
The way prelink used to work was
* The compiler decides if a given section only has relocations that are know to point to the same DSO. If so, it names it .data.rel.ro.local<something>. * The static linker puts all of these together. * The prelinker program assigns addresses to each library and resolves the local relocations.
There are many problems with this: * It is incompatible with address space randomization. * The information passed by the compiler is redundant. The linker knows if a given relocation is in the same DSO or not. If could sort by that if so desired. * There are newer ways of speeding up DSO (gnu hash for example). * Even if we want to implement this again in the compiler, the previous implementation is pretty broken. It talks about relocations that are "resolved by the static linker". If they are resolved, there are none left for the prelinker. What one needs to track is if an expression will require only dynamic relocations that point to the same DSO.
At this point it looks like the prelinker is an historical curiosity. For example, fedora has retired it because it failed to build for two releases (http://pkgs.fedoraproject.org/cgit/prelink.git/commit/?id=eb43100a8331d91c801ee3dcdb0a0bb9babfdc1f)
This patch removes support for it. That is, it stops printing the ".local" sections.
llvm-svn: 253280
show more ...
|
| #
94d77869 |
| 03-Nov-2015 |
Peter Collingbourne <[email protected]> |
CodeGen, Target: Move Mach-O-specific symbol name logic to Mach-O lowering.
A profile of an LTO link of Chrome revealed that we were spending some ~30-50% of execution time in the function Constant:
CodeGen, Target: Move Mach-O-specific symbol name logic to Mach-O lowering.
A profile of an LTO link of Chrome revealed that we were spending some ~30-50% of execution time in the function Constant::getRelocationInfo(), which is called from TargetLoweringObjectFile::getKindForGlobal() and in turn from TargetMachine::getNameWithPrefix().
It turns out that we only need the result of getKindForGlobal() when targeting Mach-O, so this change moves the relevant part of the logic to TargetLoweringObjectFileMachO.
NFCI.
Differential Revision: http://reviews.llvm.org/D14168
llvm-svn: 252014
show more ...
|
|
Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1 |
|
| #
5c0fa58e |
| 16-Jul-2015 |
Mehdi Amini <[email protected]> |
Remove DataLayout from TargetLoweringObjectFile, redirect to Module
Summary: This change is part of a series of commits dedicated to have a single DataLayout during compilation by using always the o
Remove DataLayout from TargetLoweringObjectFile, redirect to Module
Summary: This change is part of a series of commits dedicated to have a single DataLayout during compilation by using always the one owned by the module.
Reviewers: echristo
Subscribers: yaron.keren, rafael, llvm-commits, jholewinski
Differential Revision: http://reviews.llvm.org/D11079
From: Mehdi Amini <[email protected]> llvm-svn: 242385
show more ...
|
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1 |
|
| #
c81f450f |
| 16-Jun-2015 |
Daniel Sanders <[email protected]> |
Clean up redundant copies of Triple objects. NFC
Summary:
Reviewers: rengolin
Reviewed By: rengolin
Subscribers: llvm-commits, rengolin, jholewinski
Differential Revision: http://reviews.llvm.or
Clean up redundant copies of Triple objects. NFC
Summary:
Reviewers: rengolin
Reviewed By: rengolin
Subscribers: llvm-commits, rengolin, jholewinski
Differential Revision: http://reviews.llvm.org/D10382
llvm-svn: 239823
show more ...
|
| #
8d8b13dc |
| 16-Jun-2015 |
Daniel Sanders <[email protected]> |
Recommit r239721: Replace string GNU Triples with llvm::Triple in InitMCObjectFileInfo. NFC.
Summary: This affects other tools so the previous C++ API has been retained as a deprecated function for
Recommit r239721: Replace string GNU Triples with llvm::Triple in InitMCObjectFileInfo. NFC.
Summary: This affects other tools so the previous C++ API has been retained as a deprecated function for the moment. Clang has been updated with a trivial patch (not covered by the pre-commit review) to avoid breaking -Werror builds. Other in-tree tools will be fixed with similar patches.
This continues the patch series to eliminate StringRef forms of GNU triples from the internals of LLVM that began in r239036.
The first time this was committed it accidentally fixed an inconsistency in triples in llvm-mc and this caused a failure. This inconsistency was fixed in r239808.
Reviewers: rengolin
Reviewed By: rengolin
Subscribers: llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D10366
llvm-svn: 239812
show more ...
|
| #
fa555dc7 |
| 15-Jun-2015 |
Daniel Sanders <[email protected]> |
Revert r239721 - Replace string GNU Triples with llvm::Triple in InitMCObjectFileInfo. NFC.
It appears to cause sparc-little-endian.s to assert on Windows and Darwin.
llvm-svn: 239724
|
| #
d6d12a11 |
| 15-Jun-2015 |
Daniel Sanders <[email protected]> |
Replace string GNU Triples with llvm::Triple in InitMCObjectFileInfo. NFC.
Summary: This affects other tools so the previous C++ API has been retained as a deprecated function for the moment. Clang
Replace string GNU Triples with llvm::Triple in InitMCObjectFileInfo. NFC.
Summary: This affects other tools so the previous C++ API has been retained as a deprecated function for the moment. Clang has been updated with a trivial patch (not covered by the pre-commit review) to avoid breaking -Werror builds. Other in-tree tools will be fixed with similar trivial patches.
This continues the patch series to eliminate StringRef forms of GNU triples from the internals of LLVM that began in r239036.
Reviewers: rengolin
Reviewed By: rengolin
Subscribers: llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D10366
llvm-svn: 239721
show more ...
|
| #
13760bd1 |
| 30-May-2015 |
Jim Grosbach <[email protected]> |
MC: Clean up MCExpr naming. NFC.
llvm-svn: 238634
|
| #
0709a7bd |
| 21-May-2015 |
Rafael Espindola <[email protected]> |
Move alignment from MCSectionData to MCSection.
This starts merging MCSection and MCSectionData.
There are a few issues with the current split between MCSection and MCSectionData.
* It optimizes t
Move alignment from MCSectionData to MCSection.
This starts merging MCSection and MCSectionData.
There are a few issues with the current split between MCSection and MCSectionData.
* It optimizes the the not as important case. We want the production of .o files to be really fast, but the split puts the information used for .o emission in a separate data structure.
* The ELF/COFF/MachO hierarchy is not represented in MCSectionData, leading to some ad-hoc ways to represent the various flags.
* It makes it harder to remember where each item is.
The attached patch starts merging the two by moving the alignment from MCSectionData to MCSection.
Most of the patch is actually just dropping 'const', since MCSectionData is mutable, but MCSection was not.
llvm-svn: 237936
show more ...
|
| #
6f482000 |
| 18-May-2015 |
Jim Grosbach <[email protected]> |
MC: Clean up method names in MCContext.
The naming was a mish-mash of old and new style. Update to be consistent with the new. NFC.
llvm-svn: 237594
|
|
Revision tags: llvmorg-3.6.1, llvmorg-3.6.1-rc1 |
|
| #
75e0c4b0 |
| 27-Mar-2015 |
Yaron Keren <[email protected]> |
Remove superfluous .str() and replace std::string concatenation with Twine.
llvm-svn: 233392
|
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1 |
|
| #
7db449a6 |
| 17-Mar-2015 |
David Majnemer <[email protected]> |
COFF: Let globals with private linkage reside in their own section
COFF COMDATs (for selection kinds other than 'select any') require at least one non-section symbol in the symbol table. Satisfy thi
COFF: Let globals with private linkage reside in their own section
COFF COMDATs (for selection kinds other than 'select any') require at least one non-section symbol in the symbol table. Satisfy this by morally enhancing the linkage from private to internal.
Differential Revision: http://reviews.llvm.org/D8394
llvm-svn: 232570
show more ...
|
| #
63b1d999 |
| 17-Mar-2015 |
David Majnemer <[email protected]> |
Revert "COFF: Let globals with private linkage reside in their own section"
This reverts commit r232539. This was committed accidently.
llvm-svn: 232543
|
| #
47e38429 |
| 17-Mar-2015 |
David Majnemer <[email protected]> |
COFF: Let globals with private linkage reside in their own section
Summary: COFF COMDATs (for selection kinds other than 'select any') require at least one non-section symbol in the symbol table. Sa
COFF: Let globals with private linkage reside in their own section
Summary: COFF COMDATs (for selection kinds other than 'select any') require at least one non-section symbol in the symbol table. Satisfy this by morally enhancing the linkage from private to internal.
Reviewers: rafael
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8374
llvm-svn: 232539
show more ...
|
|
Revision tags: llvmorg-3.6.0, llvmorg-3.6.0-rc4 |
|
| #
df195198 |
| 17-Feb-2015 |
Rafael Espindola <[email protected]> |
Add r228939 back with a fix.
The problem in the original patch was not switching back to .text after printing an eh table.
Original message:
On ELF, put PIC jump tables in a non executable section
Add r228939 back with a fix.
The problem in the original patch was not switching back to .text after printing an eh table.
Original message:
On ELF, put PIC jump tables in a non executable section.
Fixes PR22558.
llvm-svn: 229586
show more ...
|
| #
33cc1072 |
| 14-Feb-2015 |
Matthias Braun <[email protected]> |
Revert "On ELF, put PIC jump tables in a non executable section."
This reverts commit r228939.
The commit broke something in the output of exception handling tables on darwin x86-64.
llvm-svn: 229
Revert "On ELF, put PIC jump tables in a non executable section."
This reverts commit r228939.
The commit broke something in the output of exception handling tables on darwin x86-64.
llvm-svn: 229203
show more ...
|
|
Revision tags: llvmorg-3.6.0-rc3 |
|
| #
203c5b9f |
| 12-Feb-2015 |
Rafael Espindola <[email protected]> |
On ELF, put PIC jump tables in a non executable section.
Fixes PR22558.
llvm-svn: 228939
|
| #
29786d4c |
| 12-Feb-2015 |
Rafael Espindola <[email protected]> |
Put each jump table in an independent section if the function is too.
This allows the linker to GC both, fixing pr22557.
llvm-svn: 228937
|
|
Revision tags: llvmorg-3.6.0-rc2 |
|
| #
33804cac |
| 29-Jan-2015 |
Rafael Espindola <[email protected]> |
Remove MergeableConst.
Only the specific ones (MergeableConst4, MergeableConst8, MergeableConst16) are handled specially.
llvm-svn: 227440
|
| #
8b770651 |
| 26-Jan-2015 |
Eric Christopher <[email protected]> |
Move DataLayout back to the TargetMachine from TargetSubtargetInfo derived classes.
Since global data alignment, layout, and mangling is often based on the DataLayout, move it to the TargetMachine.
Move DataLayout back to the TargetMachine from TargetSubtargetInfo derived classes.
Since global data alignment, layout, and mangling is often based on the DataLayout, move it to the TargetMachine. This ensures that global data is going to be layed out and mangled consistently if the subtarget changes on a per function basis. Prior to this all targets(*) have had subtarget dependent code moved out and onto the TargetMachine.
*One target hasn't been migrated as part of this change: R600. The R600 port has, as a subtarget feature, the size of pointers and this affects global data layout. I've currently hacked in a FIXME to enable progress, but the port needs to be updated to either pass the 64-bitness to the TargetMachine, or fix the DataLayout to avoid subtarget dependent features.
llvm-svn: 227113
show more ...
|
|
Revision tags: llvmorg-3.6.0-rc1 |
|
| #
1e923ec1 |
| 09-Jan-2015 |
Lang Hames <[email protected]> |
Recommit r224935 with a fix for the ObjC++/AArch64 bug that that revision introduced.
A test case for the bug was already committed in r225385.
Patch by Rafael Espindola.
llvm-svn: 225534
|
| #
66f755f8 |
| 06-Jan-2015 |
Lang Hames <[email protected]> |
Revert r224935 "Refactor duplicated code. No intended functionality change."
This is affecting the behavior of some ObjC++ / AArch64 test cases on Darwin. Reverting to get the bots green while I tra
Revert r224935 "Refactor duplicated code. No intended functionality change."
This is affecting the behavior of some ObjC++ / AArch64 test cases on Darwin. Reverting to get the bots green while I track down the source of the changed behavior.
llvm-svn: 225311
show more ...
|
| #
bed67f3a |
| 29-Dec-2014 |
Rafael Espindola <[email protected]> |
Refactor duplicated code.
No intended functionality change.
llvm-svn: 224935
|
|
Revision tags: llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1 |
|
| #
35a12a85 |
| 12-Nov-2014 |
Rafael Espindola <[email protected]> |
Remove a bit of dead code.
Every "real" object file implements this an ptx doesn't use it.
llvm-svn: 221746
|
|
Revision tags: llvmorg-3.5.0, llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2 |
|
| #
d913448b |
| 04-Aug-2014 |
Eric Christopher <[email protected]> |
Remove the TargetMachine forwards for TargetSubtargetInfo based information and update all callers. No functional change.
llvm-svn: 214781
|