#
b582372e |
| 05-Sep-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert "Disable the fix for pr20793 because of a gnu ld bug."
This reverts commit r217211.
Both the bfd ld and gold outputs were valid. They were using a Rela relocation, so the value present in th
Revert "Disable the fix for pr20793 because of a gnu ld bug."
This reverts commit r217211.
Both the bfd ld and gold outputs were valid. They were using a Rela relocation, so the value present in the relocated location was not used, which caused me to misread the output.
llvm-svn: 217264
show more ...
|
#
7eb3b06c |
| 05-Sep-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Disable the fix for pr20793 because of a gnu ld bug.
llvm-svn: 217211
|
#
7c7d7b92 |
| 05-Sep-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Refactor to avoid code duplication. NFC.
llvm-svn: 217207
|
#
c4b4253f |
| 04-Sep-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix pr20793.
With this patch the third field of llvm.global_ctors is also used on ELF.
llvm-svn: 217202
|
#
7c4059eb |
| 04-Sep-2014 |
Reid Kleckner <reid@kleckner.net> |
MC Win64: Put unwind info for COMDAT code into the same COMDAT group
Summary: This fixes a long standing issue where we would emit many little .text sections and only one .pdata and .xdata section.
MC Win64: Put unwind info for COMDAT code into the same COMDAT group
Summary: This fixes a long standing issue where we would emit many little .text sections and only one .pdata and .xdata section. Now we generate one .pdata / .xdata pair per .text section and associate them correctly.
Fixes PR19667.
Reviewers: majnemer
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5181
llvm-svn: 217176
show more ...
|
Revision tags: llvmorg-3.5.0 |
|
#
b43d51de |
| 28-Aug-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
On MachO, don't put non-private constants in mergeable sections.
On MachO, putting a symbol that doesn't start with a 'L' or 'l' in one of the __TEXT,__literal* sections prevents the linker from mer
On MachO, don't put non-private constants in mergeable sections.
On MachO, putting a symbol that doesn't start with a 'L' or 'l' in one of the __TEXT,__literal* sections prevents the linker from merging the context of the section.
Since private GVs are the ones the get mangled to start with 'L' or 'l', we now only put those on the __TEXT,__literal* sections.
llvm-svn: 216682
show more ...
|
Revision tags: llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2 |
|
#
d913448b |
| 04-Aug-2014 |
Eric Christopher <echristo@gmail.com> |
Remove the TargetMachine forwards for TargetSubtargetInfo based information and update all callers. No functional change.
llvm-svn: 214781
|
Revision tags: llvmorg-3.5.0-rc1 |
|
#
8bce66b0 |
| 14-Jul-2014 |
David Majnemer <david.majnemer@gmail.com> |
CodeGen: Stick constant pool entries in COMDAT sections for WinCOFF
COFF lacks a feature that other object file formats support: mergeable sections.
To work around this, MSVC sticks constant pool e
CodeGen: Stick constant pool entries in COMDAT sections for WinCOFF
COFF lacks a feature that other object file formats support: mergeable sections.
To work around this, MSVC sticks constant pool entries in special COMDAT sections so that each constant is in it's own section. This permits unused constants to be dropped and it also allows duplicate constants in different translation units to get merged together.
This fixes PR20262.
Differential Revision: http://reviews.llvm.org/D4482
llvm-svn: 213006
show more ...
|
#
6cbe670d |
| 07-Jul-2014 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make helper functions static.
llvm-svn: 212460
|
#
dad0a645 |
| 27-Jun-2014 |
David Majnemer <david.majnemer@gmail.com> |
IR: Add COMDATs to the IR
This new IR facility allows us to represent the object-file semantic of a COMDAT group.
COMDATs allow us to tie together sections and make the inclusion of one dependent o
IR: Add COMDATs to the IR
This new IR facility allows us to represent the object-file semantic of a COMDAT group.
COMDATs allow us to tie together sections and make the inclusion of one dependent on another. This is required to implement features like MS ABI VFTables and optimizing away certain kinds of initialization in C++.
This functionality is only representable in COFF and ELF, Mach-O has no similar mechanism.
Differential Revision: http://reviews.llvm.org/D4178
llvm-svn: 211920
show more ...
|
#
102ff696 |
| 24-Jun-2014 |
David Majnemer <david.majnemer@gmail.com> |
CodeGen: Avoid multiple strlen calls
Use a StringRef to hold our section prefix. This avoids multiple calls to strlen.
llvm-svn: 211602
|
#
0766ae08 |
| 06-Jun-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix a few issues with comdat handling on COFF.
* Section association cannot use just the section name as many sections can have the same name. With this patch, the comdat symbol in an assoc section
Fix a few issues with comdat handling on COFF.
* Section association cannot use just the section name as many sections can have the same name. With this patch, the comdat symbol in an assoc section is interpreted to mean a symbol in the associated section and the mapping is discovered from it.
* Comdat symbols were not being set correctly. Instead we were getting whatever was output first for that section.
A consequence is that associative sections now must use .section to set the association. Using .linkonce would not work since it is not possible to change a sections comdat symbol (it is used to decide if we should create a new section or reuse an existing one).
This includes r210298, which was reverted because it was asserting on an associated section having the same comdat as the associated section.
llvm-svn: 210367
show more ...
|
#
c0029810 |
| 30-May-2014 |
Logan Chien <tzuhsiang.chien@gmail.com> |
Fix MIPS exception personality encoding.
For MIPS, we have to encode the personality routine with an indirect pointer to absptr; otherwise, some link warning warning will be raised, and the program
Fix MIPS exception personality encoding.
For MIPS, we have to encode the personality routine with an indirect pointer to absptr; otherwise, some link warning warning will be raised, and the program might crash in some early MIPS Android device.
llvm-svn: 209907
show more ...
|
Revision tags: llvmorg-3.4.2, llvmorg-3.4.2-rc1 |
|
#
fceb76f5 |
| 16-May-2014 |
Reid Kleckner <reid@kleckner.net> |
Add comdat key field to llvm.global_ctors and llvm.global_dtors
This allows us to put dynamic initializers for weak data into the same comdat group as the data being initialized. This is necessary
Add comdat key field to llvm.global_ctors and llvm.global_dtors
This allows us to put dynamic initializers for weak data into the same comdat group as the data being initialized. This is necessary for MSVC ABI compatibility. Once we have comdats for guard variables, we can use the combination to help GlobalOpt fire more often for weak data with guarded initialization on other platforms.
Reviewers: nlewycky
Differential Revision: http://reviews.llvm.org/D3499
llvm-svn: 209015
show more ...
|
Revision tags: llvmorg-3.4.1, llvmorg-3.4.1-rc2 |
|
#
c0196b1b |
| 14-Apr-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr.
llvm-svn: 206142
|
Revision tags: llvmorg-3.4.1-rc1 |
|
#
a9bdb32f |
| 08-Apr-2014 |
David Majnemer <david.majnemer@gmail.com> |
WinCOFF: Emit common symbols as specified in the COFF spec
Summary: Local common symbols were properly inserted into the .bss section. However, putting external common symbols in the .bss section wo
WinCOFF: Emit common symbols as specified in the COFF spec
Summary: Local common symbols were properly inserted into the .bss section. However, putting external common symbols in the .bss section would give them a strong definition.
Instead, encode them as undefined, external symbols who's symbol value is equivalent to their size.
Reviewers: Bigcheese, rafael, rnk
CC: llvm-commits
Differential Revision: http://reviews.llvm.org/D3324
llvm-svn: 205811
show more ...
|
#
273bff47 |
| 25-Mar-2014 |
David Majnemer <david.majnemer@gmail.com> |
WinCOFF: Add support for -fdata-sections
This is a pretty straight forward translation for COFF, we just need to stick the data in a COMDAT section marked as IMAGE_COMDAT_SELECT_NODUPLICATES.
N.B.
WinCOFF: Add support for -fdata-sections
This is a pretty straight forward translation for COFF, we just need to stick the data in a COMDAT section marked as IMAGE_COMDAT_SELECT_NODUPLICATES.
N.B. We must be careful to avoid sticking entities with private linkage in COMDAT groups. COFF is pretty hostile to the renaming of entities so we must be careful to disallow GlobalVariables with unstable names.
llvm-svn: 204703
show more ...
|
#
9338984f |
| 23-Mar-2014 |
David Majnemer <david.majnemer@gmail.com> |
WinCOFF: Add support for -ffunction-sections
This is a pretty straight forward translation for COFF, we just need to stick the function in a COMDAT section marked as IMAGE_COMDAT_SELECT_NODUPLICATES
WinCOFF: Add support for -ffunction-sections
This is a pretty straight forward translation for COFF, we just need to stick the function in a COMDAT section marked as IMAGE_COMDAT_SELECT_NODUPLICATES.
llvm-svn: 204565
show more ...
|
#
7b58305f |
| 07-Mar-2014 |
David Majnemer <david.majnemer@gmail.com> |
MC: Remove superfluous section attribute flag definitions
Summary: llvm/MC/MCSectionMachO.h and llvm/Support/MachO.h both had the same definitions for the section flags. Instead, grab the definitio
MC: Remove superfluous section attribute flag definitions
Summary: llvm/MC/MCSectionMachO.h and llvm/Support/MachO.h both had the same definitions for the section flags. Instead, grab the definitions out of support.
No functionality change.
Reviewers: grosbach, Bigcheese, rafael
Reviewed By: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2998
llvm-svn: 203211
show more ...
|
#
3b30cb41 |
| 06-Mar-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove shouldEmitUsedDirectiveFor.
Clang now uses llvm.compiler.used for these cases.
llvm-svn: 203174
|
#
442f7848 |
| 04-Mar-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[cleanup] Re-sort all the includes with utils/sort_includes.py.
llvm-svn: 202811
|
#
a3ad4e69 |
| 19-Feb-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
move getNameWithPrefix and getSymbol to TargetMachine.
TargetLoweringBase is implemented in CodeGen, so before this patch we had a dependency fom Target to CodeGen. This would show up as a link fail
move getNameWithPrefix and getSymbol to TargetMachine.
TargetLoweringBase is implemented in CodeGen, so before this patch we had a dependency fom Target to CodeGen. This would show up as a link failure of llvm-stress when building with -DBUILD_SHARED_LIBS=ON.
This fixes pr18900.
llvm-svn: 201711
show more ...
|
#
daeafb4c |
| 19-Feb-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add back r201608, r201622, r201624 and r201625
r201608 made llvm corretly handle private globals with MachO. r201622 fixed a bug in it and r201624 and r201625 were changes for using private linkage,
Add back r201608, r201622, r201624 and r201625
r201608 made llvm corretly handle private globals with MachO. r201622 fixed a bug in it and r201624 and r201625 were changes for using private linkage, assuming that llvm would do the right thing.
They all got reverted because r201608 introduced a crash in LTO. This patch includes a fix for that. The issue was that TargetLoweringObjectFile now has to be initialized before we can mangle names of private globals. This is trivially true during the normal codegen pipeline (the asm printer does it), but LTO has to do it manually.
llvm-svn: 201700
show more ...
|
#
7e198ad8 |
| 19-Feb-2014 |
Daniel Jasper <djasper@google.com> |
Revert r201622 and r201608.
This causes the LLVMgold plugin to segfault. More information on the replies to r201608.
llvm-svn: 201669
|
#
b9ea63c5 |
| 19-Feb-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Avoid an infinite cycle with private linkage and -f{data|function}-sections.
When outputting an object we check its section to find its name, but when looking for the section with -ffunction-section
Avoid an infinite cycle with private linkage and -f{data|function}-sections.
When outputting an object we check its section to find its name, but when looking for the section with -ffunction-section we look for the symbol name.
Break the loop by requesting a name with the private prefix when constructing the section name. This matches the behavior before r201608.
llvm-svn: 201622
show more ...
|