summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PIC16/PIC16TargetObjectFile.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Reapply 85006 with a minor fix.Sanjiv Gupta2009-10-251-1/+25
| | | | llvm-svn: 85052
* Revert back 85006 for now as it breaks PIC16 tests.Sanjiv Gupta2009-10-241-24/+1
| | | | llvm-svn: 85008
* Adding support for placing global objects in shared data memory.Sanjiv Gupta2009-10-241-1/+24
| | | | llvm-svn: 85006
* Add a pass to overlay pic16 data sections for function frame and automaticSanjiv Gupta2009-10-211-0/+12
| | | | | | | | variables. This pass can be invoked by llvm-ld or opt to traverse over the call graph to detect what function frames and their automatic variables can be overlaid. Currently this builds an archive , but needs to be changed to a loadable module. llvm-svn: 84753
* Cleaned up some code. No functionality change.Sanjiv Gupta2009-10-161-24/+4
| | | | llvm-svn: 84251
* Re-apply 84180 with the fixed test case.Sanjiv Gupta2009-10-151-273/+198
| | | | llvm-svn: 84195
* Revert "Complete Rewrite of AsmPrinter, TargetObjectFile based on newDaniel Dunbar2009-10-151-198/+273
| | | | | | PIC16Section class", it breaks globals.ll. llvm-svn: 84184
* Complete Rewrite of AsmPrinter, TargetObjectFile based on new PIC16Section classSanjiv Gupta2009-10-151-273/+198
| | | | | | derived from MCSection. llvm-svn: 84180
* Further refactoring of PIC16 Obj file code.Sanjiv Gupta2009-09-011-13/+17
| | | | llvm-svn: 80670
* Start refactoring PIC16 TargetObjectFile code. Eventually, all the stuff fromSanjiv Gupta2009-08-251-5/+5
| | | | | | PIC16Section will move to MCSectionPIC16. llvm-svn: 80021
* rename TAI -> MAI, being careful not to make MAILJMP instructions :)Chris Lattner2009-08-221-1/+1
| | | | llvm-svn: 79777
* Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.Chris Lattner2009-08-221-1/+1
| | | | llvm-svn: 79763
* revert r79562 + r79563Chris Lattner2009-08-211-44/+2
| | | | llvm-svn: 79690
* revert 79631Chris Lattner2009-08-211-29/+0
| | | | llvm-svn: 79685
* Fix a problem noticed by gcc-4.4:Duncan Sands2009-08-211-1/+1
| | | | | | warning: comparison is always true due to limited range of data type. llvm-svn: 79642
* Add a pass to do call graph analyis to overlay the autos and frame sections of Sanjiv Gupta2009-08-211-0/+29
| | | | | | | leaf functions. This pass will be extended to color other nodes of the call tree as well in future. llvm-svn: 79631
* Implement support for ISRs. Sanjiv Gupta2009-08-201-2/+44
| | | | | | | | | Clone functions that are shared between the Main thread and Interrupt thread. CallSites are changed in AsmPrinter currently. A better solution would have been to modify the legalizer (SoftenFloat) to allow targets to change the name of libcalls for float operations. But that currently breaks other targets. Also, cloing of automatic variables is done AsmPrinter, a better approach would be to use the ValueMap in CloneFunction itself. llvm-svn: 79562
* rename PIC16Section.h -> MCSectionPIC16.h for consistency withChris Lattner2009-08-151-1/+1
| | | | | | the class it defines. llvm-svn: 79081
* make PIC16 unique its own sections instead of having mcontext do it.Chris Lattner2009-08-131-8/+6
| | | | llvm-svn: 78871
* sink the 'name' and 'isdirective' state out of MCSection into its derived ↵Chris Lattner2009-08-081-33/+44
| | | | | | | | classes. This totally optimizes PIC16 sections by not having an 'isdirective' bit anymore!! ;-) llvm-svn: 78517
* add new PIC16Section class, this time hopefully not breaking the build :)Chris Lattner2009-08-081-1/+2
| | | | llvm-svn: 78505
* Revert r78501, it doesn't build.Daniel Dunbar2009-08-081-2/+1
| | | | | | | | --- Reverse-merging r78501 into '.': U lib/Target/PIC16/PIC16TargetObjectFile.cpp D lib/Target/PIC16/PIC16Section.h llvm-svn: 78503
* make PIC16 create its own custom MCSection.Chris Lattner2009-08-081-1/+2
| | | | llvm-svn: 78501
* give pic16 a target-specific section creation name tooChris Lattner2009-08-081-32/+31
| | | | llvm-svn: 78496
* sink getOrCreateSection down into all the object file implementations,Chris Lattner2009-08-081-0/+9
| | | | | | now that they create *all* the sections. llvm-svn: 78494
* Fix several fixmes and clean up code by sinking *all* sectionChris Lattner2009-08-061-19/+17
| | | | | | | | | | | | | | | | | creation activity into the target-specific subclasses of TLOF. Before this, globals with explicit sections could be created by the base class. 1. make getOrCreateSection protected, add a new getExplicitSectionGlobal pure virtual method to assign sections to globals with a specified section. 2. eliminate getSpecialCasedSectionGlobals, which is now PIC specific. 3. eliminate the getKindForNamedSection virtual method, which is now just a static method for ELF. 4. Add implementions of getExplicitSectionGlobal for ELF/PECOFF/Darwin/PIC16. They are now all detangled and understandable, woo! :) llvm-svn: 78319
* go through PIC16TargetObjectFile to make sections instead of Chris Lattner2009-08-061-2/+13
| | | | | | creating them directly in the pic16 asmprinter. llvm-svn: 78317
* Fix a possible crash on delete of an uninitialized variable.Daniel Dunbar2009-08-021-0/+5
| | | | llvm-svn: 77846
* Make SectionKind::get() private.Chris Lattner2009-08-021-12/+12
| | | | llvm-svn: 77835
* fix a fixme by sinking various target-specific directives down into Chris Lattner2009-08-011-2/+2
| | | | | | the appropriate subclasses. llvm-svn: 77815
* it turns out that isWeak() was basically dead anyway. Kill off SectionInfo :-/Chris Lattner2009-08-011-4/+4
| | | | llvm-svn: 77812
* Change SectionKind to be a property that is true of a *section*, itChris Lattner2009-08-011-16/+19
| | | | | | | | | | | | | | | | | | should have no state that is specific to particular globals in the section. In this case, it means the removal of the "isWeak" and "ExplicitSection" bits. MCSection uses the new form of SectionKind. To handle isWeak, I introduced a new SectionInfo class, which is SectionKind + isWeak, and it is used by the part of the code generator that does classification of a specific global. The ExplicitSection disappears. It is moved onto MCSection as a new "IsDirective" bit. Since the Name of a section is either a section or directive, it makes sense to keep this bit in MCSection. Ultimately the creator of MCSection should canonicalize (e.g.) .text to whatever the actual section is. llvm-svn: 77803
* switch off of 'Section' onto MCSection. We're not properly usingChris Lattner2009-07-311-35/+32
| | | | | | MCSection subclasses yet, but this is a step in the right direction. llvm-svn: 77708
* pass the mangler down into the various SectionForGlobal methods.Chris Lattner2009-07-291-5/+8
| | | | | | No functionality change. llvm-svn: 77432
* Rip all of the global variable lowering logic out of TargetAsmInfo. SinceChris Lattner2009-07-281-0/+401
it is highly specific to the object file that will be generated in the end, this introduces a new TargetLoweringObjectFile interface that is implemented for each of ELF/MachO/COFF/Alpha/PIC16 and XCore. Though still is still a brutal and ugly refactoring, this is a major step towards goodness. This patch also: 1. fixes a bunch of dangling pointer problems in the PIC16 backend. 2. disables the TargetLowering copy ctor which PIC16 was accidentally using. 3. gets us closer to xcore having its own crazy target section flags and pic16 not having to shadow sections with its own objects. 4. fixes wierdness where ELF targets would set CStringSection but not CStringSection_. Factor the code better. 5. fixes some bugs in string lowering on ELF targets. llvm-svn: 77294
OpenPOWER on IntegriCloud