Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Honour relocation behaviour stuff for ro objects | Anton Korobeynikov | 2009-03-29 | 1 | -3/+22 | |
| | | | | llvm-svn: 68005 | |||||
* | Introduce new linkage types linkonce_odr, weak_odr, common_odr | Duncan Sands | 2009-03-07 | 1 | -2/+2 | |
| | | | | | | | | | | | | | | | | | | | | | and extern_weak_odr. These are the same as the non-odr versions, except that they indicate that the global will only be overridden by an *equivalent* global. In C, a function with weak linkage can be overridden by a function which behaves completely differently. This means that IP passes have to skip weak functions, since any deductions made from the function definition might be wrong, since the definition could be replaced by something completely different at link time. This is not allowed in C++, thanks to the ODR (One-Definition-Rule): if a function is replaced by another at link-time, then the new function must be the same as the original function. If a language knows that a function or other global can only be overridden by an equivalent global, it can give it the weak_odr linkage type, and the optimizers will understand that it is alright to make deductions based on the function body. The code generators on the other hand map weak and weak_odr linkage to the same thing. llvm-svn: 66339 | |||||
* | Treat [1 x i8] zeroinitializer as a C string, placing such stuff into | Anton Korobeynikov | 2009-01-27 | 1 | -2/+21 | |
| | | | | | | | | | | | | mergeable string section. I don't see any bad impact of such decision (rather then placing it into mergeable const section, as it was before), but at least Darwin linker won't complain anymore. The problem in LLVM is that we don't have special type for string constants (like gcc does). Even more, we have two separate types: ConstatArray for non-null strings and ConstantAggregateZero for null stuff.... It's a bit weird :) llvm-svn: 63142 | |||||
* | Make the Dwarf macro information section optional; CellSPU's assembler | Scott Michel | 2009-01-26 | 1 | -0/+1 | |
| | | | | | | | doesn't support it. The default is set to 'true', so this should not impact any other target backends. llvm-svn: 63058 | |||||
* | Revert r61415 and r61484. Duncan was correct that these weren't needed. | Bill Wendling | 2009-01-05 | 1 | -2/+0 | |
| | | | | llvm-svn: 61765 | |||||
* | squash warnings. | Devang Patel | 2009-01-05 | 1 | -0/+1 | |
| | | | | llvm-svn: 61707 | |||||
* | Linux wants the FDE initial location and address range to be forced to 32-bit. | Bill Wendling | 2008-12-29 | 1 | -0/+1 | |
| | | | | | | Darwin doesn't. Make this optional for platforms. llvm-svn: 61484 | |||||
* | Darwin likes for the EH frame to be non-local. | Bill Wendling | 2008-12-24 | 1 | -0/+1 | |
| | | | | llvm-svn: 61420 | |||||
* | GCC doesn't emit DW_EH_PE_sdata4 for the FDE encoding on Darwin. I'm not sure | Bill Wendling | 2008-12-24 | 1 | -0/+1 | |
| | | | | | | about other platforms. llvm-svn: 61415 | |||||
* | Fix bug 3140. | Rafael Espindola | 2008-12-03 | 1 | -0/+1 | |
| | | | | | | Print a single parameter .file directive if we have an ELF target. llvm-svn: 60480 | |||||
* | Refactor various TargetAsmInfo subclasses' TargetMachine members away | Dan Gohman | 2008-11-03 | 1 | -5/+2 | |
| | | | | | | adding a TargetMachine member to the base TargetAsmInfo class instead. llvm-svn: 58624 | |||||
* | Rename isWeakForLinker to mayBeOverridden. Use it | Duncan Sands | 2008-09-29 | 1 | -2/+2 | |
| | | | | | | | instead of hasWeakLinkage in a bunch of optimization passes. llvm-svn: 56782 | |||||
* | Reapply 56585:56589 with proper fix for some gcc versions | Anton Korobeynikov | 2008-09-25 | 1 | -90/+98 | |
| | | | | llvm-svn: 56621 | |||||
* | Temporarily backing out 56585:56589 to unbreak the build. | Evan Cheng | 2008-09-25 | 1 | -98/+90 | |
| | | | | llvm-svn: 56607 | |||||
* | Use crazy template-based inheritance instead of virtual one. | Anton Korobeynikov | 2008-09-24 | 1 | -90/+98 | |
| | | | | llvm-svn: 56585 | |||||
* | Get rid of ReadOnlySection duplicate | Anton Korobeynikov | 2008-09-24 | 1 | -3/+2 | |
| | | | | llvm-svn: 56582 | |||||
* | Get rid of now unused {Four,Eight,Sixteen}ByteConstantSection | Anton Korobeynikov | 2008-09-24 | 1 | -6/+0 | |
| | | | | llvm-svn: 56580 | |||||
* | Get rid of duplicate char*/Section* stuff for TLS sections | Anton Korobeynikov | 2008-09-24 | 1 | -4/+2 | |
| | | | | llvm-svn: 56577 | |||||
* | Get rid of duplicate char*/Section* DataSection | Anton Korobeynikov | 2008-09-24 | 1 | -5/+4 | |
| | | | | llvm-svn: 56575 | |||||
* | Get rid of duplicate char*/Section* TextSection | Anton Korobeynikov | 2008-09-24 | 1 | -4/+3 | |
| | | | | llvm-svn: 56574 | |||||
* | Move actual section printing stuff to AsmPrinter from TAI reducing heap traffic. | Anton Korobeynikov | 2008-09-24 | 1 | -8/+2 | |
| | | | | llvm-svn: 56573 | |||||
* | Fix logic for not emitting no-dead-strip for some | Dale Johannesen | 2008-09-09 | 1 | -0/+1 | |
| | | | | | | | | | | objects in llvm.used (thanks Anton). Makes visible the magic 'l' prefix for symbols on Darwin which are to be passed through the assembler, then removed at linktime (previously all references to this had been hidden in the ObjC FE code, oh well). llvm-svn: 55973 | |||||
* | Add interface for section override. Use this for Sparc, since it should use ↵ | Anton Korobeynikov | 2008-08-16 | 1 | -4/+6 | |
| | | | | | | named BSS section. llvm-svn: 54844 | |||||
* | Move SLEB/ULEB size calculation routines from AsmPrinter to TargetAsmInfo. ↵ | Anton Korobeynikov | 2008-08-16 | 1 | -0/+23 | |
| | | | | | | This makes JIT asmprinter-free. llvm-svn: 54843 | |||||
* | Reduce heap trashing due to std::string construction / concatenation via ↵ | Anton Korobeynikov | 2008-08-16 | 1 | -1/+14 | |
| | | | | | | caching of section flags string representations llvm-svn: 54842 | |||||
* | Undo most of r54519. | Evan Cheng | 2008-08-08 | 1 | -4/+4 | |
| | | | | llvm-svn: 54534 | |||||
* | It's not legal to output a GV in a coalesced section if it's used in an ARM ↵ | Evan Cheng | 2008-08-08 | 1 | -4/+4 | |
| | | | | | | PIC relative constantpool. llvm-svn: 54519 | |||||
* | Provide convenient helpers | Anton Korobeynikov | 2008-08-07 | 1 | -8/+2 | |
| | | | | llvm-svn: 54451 | |||||
* | Select section for constant pool entries | Anton Korobeynikov | 2008-08-07 | 1 | -0/+7 | |
| | | | | llvm-svn: 54448 | |||||
* | Provide default implementation of different small-sections related stuff | Anton Korobeynikov | 2008-07-22 | 1 | -3/+21 | |
| | | | | llvm-svn: 53920 | |||||
* | Basic support for small sections | Bruno Cardoso Lopes | 2008-07-22 | 1 | -0/+3 | |
| | | | | llvm-svn: 53907 | |||||
* | TargetAsmInfo::SectionForGlobal showed up in a profile. Simplify it a little. | Dan Gohman | 2008-07-15 | 1 | -5/+3 | |
| | | | | llvm-svn: 53639 | |||||
* | Use only 'subset' of flags | Anton Korobeynikov | 2008-07-09 | 1 | -11/+3 | |
| | | | | llvm-svn: 53323 | |||||
* | First sketch of special section objects | Anton Korobeynikov | 2008-07-09 | 1 | -22/+60 | |
| | | | | llvm-svn: 53320 | |||||
* | Use isWeakForLinker() hook | Anton Korobeynikov | 2008-07-09 | 1 | -6/+2 | |
| | | | | llvm-svn: 53318 | |||||
* | Fix several bugs in named sections handling | Anton Korobeynikov | 2008-07-09 | 1 | -2/+2 | |
| | | | | llvm-svn: 53312 | |||||
* | Add hacky way to distinguish named and named sections. This will be ↵ | Anton Korobeynikov | 2008-07-09 | 1 | -41/+46 | |
| | | | | | | generalized in the future. llvm-svn: 53311 | |||||
* | Use 'gnu.linkonce', where needed | Anton Korobeynikov | 2008-07-09 | 1 | -6/+9 | |
| | | | | llvm-svn: 53310 | |||||
* | Fix thinko | Anton Korobeynikov | 2008-07-09 | 1 | -4/+3 | |
| | | | | llvm-svn: 53309 | |||||
* | Provide section selection for X86 ELF targets | Anton Korobeynikov | 2008-07-09 | 1 | -0/+3 | |
| | | | | llvm-svn: 53305 | |||||
* | Provide general hook for section name calculation | Anton Korobeynikov | 2008-07-09 | 1 | -4/+35 | |
| | | | | llvm-svn: 53304 | |||||
* | Properly handle linkonce stuff | Anton Korobeynikov | 2008-07-09 | 1 | -0/+23 | |
| | | | | llvm-svn: 53296 | |||||
* | Provide skeletone code for calculation of section, where global should be ↵ | Anton Korobeynikov | 2008-07-09 | 1 | -1/+1 | |
| | | | | | | emitted into llvm-svn: 53295 | |||||
* | Use 'llvm-linkonce' consistently | Anton Korobeynikov | 2008-07-09 | 1 | -3/+3 | |
| | | | | llvm-svn: 53294 | |||||
* | Add default section name resolution routine | Anton Korobeynikov | 2008-07-09 | 1 | -0/+12 | |
| | | | | llvm-svn: 53292 | |||||
* | Constify | Anton Korobeynikov | 2008-07-09 | 1 | -1/+1 | |
| | | | | llvm-svn: 53291 | |||||
* | Add code for default section falgs computation | Anton Korobeynikov | 2008-07-09 | 1 | -0/+63 | |
| | | | | llvm-svn: 53290 | |||||
* | Linux also does not require exception handling | Duncan Sands | 2008-07-04 | 1 | -1/+0 | |
| | | | | | | | | | moves in order to get correct debug info. Since I can't imagine how any target could possibly be any different, I've just stripped out the option: now all the world's like Darwin! llvm-svn: 53134 | |||||
* | Darwin doesn't need exception handling information for the "move" info when | Bill Wendling | 2008-07-01 | 1 | -0/+1 | |
| | | | | | | debug information is being output, because it's leet! llvm-svn: 52994 | |||||
* | Start refactoring of asmprinters: provide a TAI hook, which will select a ↵ | Anton Korobeynikov | 2008-06-28 | 1 | -0/+49 | |
| | | | | | | 'section kind' for a global. llvm-svn: 52868 |