|
Revision tags: llvmorg-7.0.0-rc1 |
|
| #
f78650a8 |
| 30-Jul-2018 |
Fangrui Song <[email protected]> |
Remove trailing space
sed -Ei 's/[[:space:]]+$//' include/**/*.{def,h,td} lib/**/*.{cpp,h}
llvm-svn: 338293
|
|
Revision tags: llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2 |
|
| #
958a1f8d |
| 27-May-2018 |
Eric Christopher <[email protected]> |
Remove boolean argument from isSuitableFromBSS.
The argument was used as an additional negative condition and can be expressed in the if conditional without needing to pass it down. Update bss comme
Remove boolean argument from isSuitableFromBSS.
The argument was used as an additional negative condition and can be expressed in the if conditional without needing to pass it down. Update bss commentary around main use.
llvm-svn: 333357
show more ...
|
| #
ed169ec4 |
| 27-May-2018 |
Eric Christopher <[email protected]> |
Cleanups for getKindForGlobal: - Clarify block comment - Make Function/GlobalVariable split more explicit. - Move locals closer to uses.
llvm-svn: 333356
|
|
Revision tags: llvmorg-6.0.1-rc1, llvmorg-5.0.2, llvmorg-5.0.2-rc2 |
|
| #
535ca36e |
| 26-Mar-2018 |
David Blaikie <[email protected]> |
Remove an unneeded (& mislayered) include from Target/TargetLoweringObjectFile on a CodeGen header
llvm-svn: 328549
|
| #
6054e650 |
| 23-Mar-2018 |
David Blaikie <[email protected]> |
Move TargetLoweringObjectFile from CodeGen to Target to fix layering
It's implemented in Target & include from other Target headers, so the header should be in Target.
llvm-svn: 328392
|
|
Revision tags: llvmorg-5.0.2-rc1, llvmorg-6.0.0, llvmorg-6.0.0-rc3, llvmorg-6.0.0-rc2 |
|
| #
cd07a3e2 |
| 06-Feb-2018 |
Eli Friedman <[email protected]> |
Place undefined globals in .bss instead of .data
Following up on the discussion from http://lists.llvm.org/pipermail/llvm-dev/2017-April/112305.html, undef values are now placed in the .bss as well
Place undefined globals in .bss instead of .data
Following up on the discussion from http://lists.llvm.org/pipermail/llvm-dev/2017-April/112305.html, undef values are now placed in the .bss as well as null values. This prevents undef global values taking up potentially huge amounts of space in the .data section.
The following two lines now both generate equivalent .bss data:
@vals1 = internal unnamed_addr global [20000000 x i32] zeroinitializer, align 4 @vals2 = internal unnamed_addr global [20000000 x i32] undef, align 4 ; previously unaccounted for
This is primarily motivated by the corresponding issue in the Rust compiler (https://github.com/rust-lang/rust/issues/41315).
Differential Revision: https://reviews.llvm.org/D41705
Patch by varkor!
llvm-svn: 324424
show more ...
|
|
Revision tags: llvmorg-6.0.0-rc1 |
|
| #
eb905c7e |
| 13-Dec-2017 |
Michael Zolotukhin <[email protected]> |
Remove redundant includes from lib/Target/*.cpp.
llvm-svn: 320633
|
|
Revision tags: llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2 |
|
| #
b3bde2ea |
| 17-Nov-2017 |
David Blaikie <[email protected]> |
Fix a bunch more layering of CodeGen headers that are in Target
All these headers already depend on CodeGen headers so moving them into CodeGen fixes the layering (since CodeGen depends on Target, n
Fix a bunch more layering of CodeGen headers that are in Target
All these headers already depend on CodeGen headers so moving them into CodeGen fixes the layering (since CodeGen depends on Target, not the other way around).
llvm-svn: 318490
show more ...
|
|
Revision tags: llvmorg-5.0.1-rc1, llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2 |
|
| #
9f929957 |
| 02-Aug-2017 |
Rafael Espindola <[email protected]> |
Don't pass the code model to MC
I was surprised to see the code model being passed to MC. After all, it assembles code, it doesn't create it.
The one place it is used is in the expansion of .cfi di
Don't pass the code model to MC
I was surprised to see the code model being passed to MC. After all, it assembles code, it doesn't create it.
The one place it is used is in the expansion of .cfi directives to handle .eh_frame being more that 2gb away from the code.
As far as I can tell, gnu assembler doesn't even have an option to enable this. Compiling a c file with gcc -mcmodel=large produces a regular looking .eh_frame. This is probably because in practice linker parse and recreate .eh_frames.
In llvm this is used because the JIT can place the code and .eh_frame very far apart. Ideally we would fix the jit and delete this option. This is hard.
Apart from confusion another problem with the current interface is that most callers pass CodeModel::Default, which is bad since MC has no way to map it to the target default if it actually needed to.
This patch then replaces the argument with a boolean with a default value. The vast majority of users don't ever need to look at it. In fact, only CodeGen and llvm-mc use it and llvm-mc just to enable more testing.
llvm-svn: 309884
show more ...
|
|
Revision tags: llvmorg-5.0.0-rc1, llvmorg-4.0.1, llvmorg-4.0.1-rc3 |
|
| #
264b5d9e |
| 07-Jun-2017 |
Zachary Turner <[email protected]> |
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 ...
|
| #
b16d1468 |
| 05-Jun-2017 |
Javed Absar <[email protected]> |
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 |
|
| #
43b72d53 |
| 01-May-2017 |
Gabor Horvath <[email protected]> |
Remove unnecessary conditions as suggested by clang-tidy. NFC
Patch by: Gergely Angeli!
Differential Revision: https://reviews.llvm.org/D31936
llvm-svn: 301807
|
|
Revision tags: llvmorg-4.0.1-rc1, llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3, llvmorg-4.0.0-rc2, llvmorg-4.0.0-rc1 |
|
| #
76de68ea |
| 14-Jan-2017 |
Davide Italiano <[email protected]> |
[TargetLowering] Simplfiy a bit. NFCI.
llvm-svn: 292024
|
|
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 <[email protected]> |
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 <[email protected]> |
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 ...
|
| #
d07ad519 |
| 16-Sep-2016 |
Eric Liu <[email protected]> |
Trying to fix Mangler memory leak in TargetLoweringObjectFile.
Summary: `TargetLoweringObjectFile` can be re-used and thus `TargetLoweringObjectFile::Initialize()` can be called multiple times causi
Trying to fix Mangler memory leak in TargetLoweringObjectFile.
Summary: `TargetLoweringObjectFile` can be re-used and thus `TargetLoweringObjectFile::Initialize()` can be called multiple times causing `Mang` pointer memory leak.
Reviewers: echristo
Subscribers: llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D24659
llvm-svn: 281718
show more ...
|
| #
4367c7fb |
| 16-Sep-2016 |
Eric Christopher <[email protected]> |
Move the Mangler from the AsmPrinter down to TLOF and clean up the TLOF API accordingly.
llvm-svn: 281708
|
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2 |
|
| #
8331aaee |
| 08-Aug-2016 |
Oliver Stannard <[email protected]> |
[ARM] Add support for embedded position-independent code
This patch adds support for some new relocation models to the ARM backend:
* Read-only position independence (ROPI): Code and read-only data
[ARM] Add support for embedded position-independent code
This patch adds support for some new relocation models to the ARM backend:
* Read-only position independence (ROPI): Code and read-only data is accessed PC-relative. The offsets between all code and RO data sections are known at static link time. This does not affect read-write data. * Read-write position independence (RWPI): Read-write data is accessed relative to the static base register (r9). The offsets between all writeable data sections are known at static link time. This does not affect read-only data.
These two modes are independent (they specify how different objects should be addressed), so they can be used individually or together. They are otherwise the same as the "static" relocation model, and are not compatible with SysV-style PIC using a global offset table.
These modes are normally used by bare-metal systems or systems with small real-time operating systems. They are designed to avoid the need for a dynamic linker, the only initialisation required is setting r9 to an appropriate value for RWPI code.
I have only added support to SelectionDAG, not FastISel, because FastISel is currently disabled for bare-metal targets where these modes would be used.
Differential Revision: https://reviews.llvm.org/D23195
llvm-svn: 278015
show more ...
|
|
Revision tags: llvmorg-3.9.0-rc1 |
|
| #
444746b4 |
| 28-Jun-2016 |
Rafael Espindola <[email protected]> |
Use isPositionIndependent(). NFC.
llvm-svn: 274005
|
| #
a686f127 |
| 24-Jun-2016 |
Rafael Espindola <[email protected]> |
Simplify. NFC.
Also delete out of date comment. This code was always returning .data since r253436.
llvm-svn: 273739
|
| #
96efdd61 |
| 14-Jun-2016 |
Peter Collingbourne <[email protected]> |
IR: Introduce local_unnamed_addr attribute.
If a local_unnamed_addr attribute is attached to a global, the address is known to be insignificant within the module. It is distinct from the existing un
IR: Introduce local_unnamed_addr attribute.
If a local_unnamed_addr attribute is attached to a global, the address is known to be insignificant within the module. It is distinct from the existing unnamed_addr attribute in that it only describes a local property of the module rather than a global property of the symbol.
This attribute is intended to be used by the code generator and LTO to allow the linker to decide whether the global needs to be in the symbol table. It is possible to exclude a global from the symbol table if three things are true: - This attribute is present on every instance of the global (which means that the normal rule that the global must have a unique address can be broken without being observable by the program by performing comparisons against the global's address) - The global has linkonce_odr linkage (which means that each linkage unit must have its own copy of the global if it requires one, and the copy in each linkage unit must be the same) - It is a constant or a function (which means that the program cannot observe that the unique-address rule has been broken by writing to the global)
Although this attribute could in principle be computed from the module contents, LTO clients (i.e. linkers) will normally need to be able to compute this property as part of symbol resolution, and it would be inefficient to materialize every module just to compute it.
See: http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20160509/356401.html http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20160516/356738.html for earlier discussion.
Part of the fix for PR27553.
Differential Revision: http://reviews.llvm.org/D20348
llvm-svn: 272709
show more ...
|
|
Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1 |
|
| #
699281cc |
| 18-May-2016 |
Rafael Espindola <[email protected]> |
Don't pass a Reloc::Model to MC.
MC only needs to know if the output is PIC or not. It never has to decide about creating GOTs and PLTs for example. The only thing that MC itself uses this informati
Don't pass a Reloc::Model to MC.
MC only needs to know if the output is PIC or not. It never has to decide about creating GOTs and PLTs for example. The only thing that MC itself uses this information for is expanding "macros" in sparc and mips. The rest I am pretty sure could be moved to CodeGen.
This is a cleanup and isolates the code from future changes to Reloc::Model.
llvm-svn: 269909
show more ...
|
|
Revision tags: llvmorg-3.8.0, llvmorg-3.8.0-rc3 |
|
| #
964b70d5 |
| 22-Feb-2016 |
David Majnemer <[email protected]> |
[X86] Create mergeable constant pool entries for AVX
We supported creating mergeable constant pool entries for smaller constants but not for 32-byte AVX constants.
llvm-svn: 261584
|
| #
a3ea407d |
| 21-Feb-2016 |
David Majnemer <[email protected]> |
[X86] Use the correct alignment for COMDAT constant pool entries
COFF doesn't have sections with mergeable contents. Instead, each constant pool entry ends up in a COMDAT section. The linker, when
[X86] Use the correct alignment for COMDAT constant pool entries
COFF doesn't have sections with mergeable contents. Instead, each constant pool entry ends up in a COMDAT section. The linker, when choosing between COMDAT sections, doesn't choose the max alignment of the two sections. You just get whatever alignment was on the section.
If one constant needed a higher alignment in one object file from another one, then we will get into trouble if the linker chooses the lower alignment one.
Instead, lets promote the alignment of the constant pool entry to make sure we don't use an under aligned constant with an instruction which assumed otherwise.
This fixes PR26680.
llvm-svn: 261462
show more ...
|
|
Revision tags: llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1, llvmorg-3.7.1, llvmorg-3.7.1-rc2 |
|
| #
449711cb |
| 18-Nov-2015 |
Rafael Espindola <[email protected]> |
Stop producing .data.rel sections.
If a section is rw, it is irrelevant if the dynamic linker will write to it or not.
It looks like llvm implemented this because gcc was doing it. It looks like gc
Stop producing .data.rel sections.
If a section is rw, it is irrelevant if the dynamic linker will write to it or not.
It looks like llvm implemented this because gcc was doing it. It looks like gcc implemented this in the hope that it would put all the relocated items close together and speed up the dynamic linker.
There are two problem with this: * It doesn't work. Both bfd and gold will map .data.rel to .data and concatenate the input sections in the order they are seen. * If we want a feature like that, it can be implemented directly in the linker since it knowns where the dynamic relocations are.
llvm-svn: 253436
show more ...
|