summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PIC16/PIC16TargetObjectFile.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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