summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMTargetObjectFile.h
Commit message (Collapse)AuthorAgeFilesLines
* Update the file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-191-4/+3
| | | | | | | | | | | | | | | | | to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
* Remove \brief commands from doxygen comments.Adrian Prantl2018-05-011-1/+1
| | | | | | | | | | | | | | | | We've been running doxygen with the autobrief option for a couple of years now. This makes the \brief markers into our comments redundant. Since they are a visual distraction and we don't want to encourage more \brief markers in new code either, this patch removes them all. Patch produced by for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done Differential Revision: https://reviews.llvm.org/D46290 llvm-svn: 331272
* ARM: Remove dead code. NFCI.Peter Collingbourne2018-02-081-3/+0
| | | | llvm-svn: 324565
* Rewrite ARM execute only support to avoid the use of a command line flag and ↵Eric Christopher2017-07-011-2/+0
| | | | | | | | unqualified ARMSubtarget lookup. Paired with a clang commit to use the new behavior. llvm-svn: 306927
* [ARM] Fix some Clang-tidy modernize and Include What You Use warnings; other ↵Eugene Zelenko2017-01-311-6/+6
| | | | | | minor fixes (NFC). llvm-svn: 293578
* [ARM] Implement execute-only support in CodeGenPrakhar Bahuguna2016-12-151-0/+7
| | | | | | | | | | | | | | | | | | | | 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
* Move the Mangler from the AsmPrinter down to TLOF and clean up theEric Christopher2016-09-161-5/+5
| | | | | | TLOF API accordingly. llvm-svn: 281708
* CodeGen: Use PLT relocations for relative references to unnamed_addr functions.Peter Collingbourne2016-04-221-4/+4
| | | | | | | | | | | | | The relative vtable ABI (PR26723) needs PLT relocations to refer to virtual functions defined in other DSOs. The unnamed_addr attribute means that the function's address is not significant, so we're allowed to substitute it with the address of a PLT entry. Also includes a bonus feature: addends for COFF image-relative references. Differential Revision: http://reviews.llvm.org/D17938 llvm-svn: 267211
* Canonicalize header guards into a common format.Benjamin Kramer2014-08-131-2/+2
| | | | | | | | | | Add header guards to files that were missing guards. Remove #endif comments as they don't seem common in LLVM (we can easily add them back if we decide they're useful) Changes made by clang-tidy with minor tweaks. llvm-svn: 215558
* [C++] Use 'nullptr'.Craig Topper2014-04-281-1/+1
| | | | llvm-svn: 207394
* Switch all uses of LLVM_OVERRIDE to just use 'override' directly.Craig Topper2014-03-021-5/+4
| | | | llvm-svn: 202621
* Add back r201608, r201622, r201624 and r201625Rafael Espindola2014-02-191-4/+4
| | | | | | | | | | | | | | 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
* Revert r201622 and r201608.Daniel Jasper2014-02-191-4/+4
| | | | | | | This causes the LLVMgold plugin to segfault. More information on the replies to r201608. llvm-svn: 201669
* Fix PR18743.Rafael Espindola2014-02-181-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | The IR @foo = private constant i32 42 is valid, but before this patch we would produce an invalid MachO from it. It was invalid because it would use an L label in a section where the liker needs the labels in order to atomize it. One way of fixing it would be to just reject this IR in the backend, but that would not be very front end friendly. What this patch does is use an 'l' prefix in sections that we know the linker requires symbols for atomizing them. This allows frontends to just use private and not worry about which sections they go to or how the linker handles them. One small issue with this strategy is that now a symbol name depends on the section, which is not available before codegen. This is not a problem in practice. The reason is that it only happens with private linkage, which will be ignored by the non codegen users (llvm-nm and llvm-ar). llvm-svn: 201608
* Use a consistent argument order in TargetLoweringObjectFile.Rafael Espindola2014-02-091-2/+2
| | | | | | | | | These methods normally call each other and it is really annoying if the arguments are in different order. The more common rule was that the arguments specific to call are first (GV, Encoding, Suffix) and the auxiliary objects (Mang, TM) come after. This patch changes the exceptions. llvm-svn: 201044
* Pass the Mangler by reference.Rafael Espindola2014-02-081-1/+1
| | | | | | | It is never null and it is not used in casts, so there is no reason to use a pointer. This matches how we pass TM. llvm-svn: 201025
* Add LLVM_OVERRIDE to a few declarations.Rafael Espindola2014-02-081-6/+8
| | | | llvm-svn: 201022
* Remove dead code.Rafael Espindola2014-02-071-4/+0
| | | | llvm-svn: 201006
* ARM: Enable use of relocation type tlsldo in debug info for tls data.Kai Nacke2014-02-051-0/+3
| | | | | | | This fixes PR18554. Reviewers: Renato Golin, Keith Walker llvm-svn: 200826
* Revert: ARM: Enable use of relocation type tlsldo in debug info for tls data.Kai Nacke2014-02-041-3/+0
| | | | | | | There seems to be a new problem with the debug info in the test case. I'll have to investigate this. llvm-svn: 200737
* ARM: Enable use of relocation type tlsldo in debug info for tls data.Kai Nacke2014-02-041-0/+3
| | | | | | | This fixes PR18554. Reviewers: Renato Golin, Keith Walker llvm-svn: 200735
* Use TARGET2 relocation for TType references on ARM.Anton Korobeynikov2012-11-141-0/+5
| | | | | | | | Do some cleanup of the code while here. Inspired by patch by Logan Chien! llvm-svn: 167904
* Move the support for using .init_array from ARM to the genericRafael Espindola2012-06-191-4/+0
| | | | | | | | | | TargetLoweringObjectFileELF. Use this to support it on X86. Unlike ARM, on X86 it is not easy to find out if .init_array should be used or not, so the decision is made via TargetOptions and defaults to off. Add a command line option to llc that enables it. llvm-svn: 158692
* Properly emit ctors / dtors with priorities into desired sectionsAnton Korobeynikov2012-01-251-0/+4
| | | | | | | | and let linker handle the rest. This finally fixes PR5329 llvm-svn: 148990
* Second set of ARM/MC/ELF changes.Jason W Kim2010-10-111-1/+10
| | | | | | | | | Added ARM specific ELF section types. Added AttributesSection to ARMElfTargetObject First step in unifying .cpu assembly tag with ELF/.o llc now asserts on actual ELF emission on -filetype=obj :-) llvm-svn: 116257
* Now that the default for Darwin platforms is to place the LSDA into the TEXTBill Wendling2010-03-151-12/+0
| | | | | | section, remove the target-specific code that performs this. llvm-svn: 98580
* The ARM EH experiment worked!Bill Wendling2010-03-091-20/+22
| | | | | | | | | | | | Place the LSDA into the TEXT section for ARM platforms. This involves making the encoding indirect, pcrel, and sdata4 instead of an absolute pointer. The references to the type infos are then non-lazy pointers. Revision 98019 changed the encoding of non-lazy pointers to add the symbol to the non-lazy pointer definition if it's a local symbol (otherwise, it's external and set to '0' so that the loader can adjust it to the real value). This paved the way for this change to work on ARM. llvm-svn: 98068
* Move TLOF implementations to libCodegen to resolve layering violation.Anton Korobeynikov2010-02-151-2/+2
| | | | llvm-svn: 96288
* Change MCSectionELF to represent a section semantically instead ofBruno Cardoso Lopes2009-08-131-4/+5
| | | | | | | syntactically as a string, very similiar to what Chris did with MachO. The parsing support and validation is not introduced yet. llvm-svn: 78890
* Whitespace cleanup. Remove trailing whitespace.Jim Grosbach2009-08-111-3/+3
| | | | llvm-svn: 78666
* 1. Make MCSection an abstract class.Chris Lattner2009-08-081-1/+1
| | | | | | | | | 2. Move section switch printing to MCSection virtual method which takes a TAI. This eliminates textual formatting stuff from TLOF. 3. Eliminate SwitchToSectionDirective, getSectionFlagsAsString, and TLOFELF::AtIsCommentChar. llvm-svn: 78510
* now that getOrCreateSection is all object-file specific,Chris Lattner2009-08-081-4/+4
| | | | | | | give the impls an object-file-specific name. In the future they can take different arguments etc. llvm-svn: 78495
* Ooops, I was too fast to commit the wrong fix :(Anton Korobeynikov2009-08-041-2/+2
| | | | llvm-svn: 78060
* Fix a typo - this unbreaks llvm-gcc build on armAnton Korobeynikov2009-08-041-2/+2
| | | | llvm-svn: 78059
* convert ctors/dtors section to be in TLOF instead ofChris Lattner2009-08-021-0/+38
TAI. llvm-svn: 77842
OpenPOWER on IntegriCloud