revert 79631
authorChris Lattner <sabre@nondot.org>
Fri, 21 Aug 2009 23:08:09 +0000 (23:08 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 21 Aug 2009 23:08:09 +0000 (23:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79685 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.cpp
lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.h
lib/Target/PIC16/MCSectionPIC16.h
lib/Target/PIC16/PIC16.h
lib/Target/PIC16/PIC16PAN.h
lib/Target/PIC16/PIC16Passes/Makefile
lib/Target/PIC16/PIC16Passes/PIC16FrameOverlay.cpp
lib/Target/PIC16/PIC16Passes/PIC16FrameOverlay.h
lib/Target/PIC16/PIC16TargetObjectFile.cpp
lib/Target/PIC16/PIC16TargetObjectFile.h

index 65309ea6750b68cf767f5e5556fd73c3452f050d..b96ae54005ec9cf39c1df49e7143dd75d80dcdb1 100644 (file)
@@ -73,7 +73,7 @@ bool PIC16AsmPrinter::runOnMachineFunction(MachineFunction &MF) {
   DbgInfo.BeginFunction(MF);
 
   // Emit the autos section of function.
-  EmitAutos(F);
+  EmitAutos(CurrentFnName);
 
   // Now emit the instructions of function in its code section.
   const MCSection *fCodeSection = 
@@ -362,10 +362,9 @@ void PIC16AsmPrinter::EmitFunctionFrame(MachineFunction &MF) {
   const TargetData *TD = TM.getTargetData();
   // Emit the data section name.
   O << "\n"; 
-  std::string SectionName = getObjFileLowering().getNameForFunctFrame(F);
+  
   const MCSection *fPDataSection =
-    getObjFileLowering().getSectionForFunctionFrame(SectionName); 
+    getObjFileLowering().getSectionForFunctionFrame(CurrentFnName);
   OutStreamer.SwitchSection(fPDataSection);
   
   // Emit function frame label
@@ -441,12 +440,12 @@ void PIC16AsmPrinter::EmitUData(Module &M) {
   }
 }
 
-void PIC16AsmPrinter::EmitAutos(const Function *F) {
+void PIC16AsmPrinter::EmitAutos(std::string FunctName) {
   // Section names for all globals are already set.
   const TargetData *TD = TM.getTargetData();
 
   // Now print Autos section for this function.
-  std::string SectionName = PAN::getAutosSectionName(CurrentFnName);
+  std::string SectionName = PAN::getAutosSectionName(FunctName);
 
   // If this function is a cloned function then the name of auto section 
   // will not be present in the list of existing section. Hence this section
@@ -460,15 +459,6 @@ void PIC16AsmPrinter::EmitAutos(const Function *F) {
     if (AutosSections[i]->S_->getName() == SectionName) { 
       // Set the printing status to true
       AutosSections[i]->setPrintedStatus(true);
-      // Overlay auto sections with same function color.
-      std::string BaseSectionName = getObjFileLowering().
-                                    getNameForFunctFrame(F, true);
-      if (BaseSectionName != F->getName()) {
-        std::string NewSectionName = PAN::getAutosSectionName(BaseSectionName);
-        const_cast<MCSectionPIC16 *>(AutosSections[i]->S_)->setName(
-                                                            NewSectionName);
-      }
-
       OutStreamer.SwitchSection(AutosSections[i]->S_);
       const std::vector<const GlobalVariable*> &Items = AutosSections[i]->Items;
       for (unsigned j = 0; j < Items.size(); j++) {
index ece19ca2609e2a2df5b228923f4c323cb1602d18..55a2fcf85a6fc9d63f7e7af790acea781c57ff46 100644 (file)
@@ -52,7 +52,7 @@ namespace llvm {
     void EmitDefinedVars (Module &M);
     void EmitIData (Module &M);
     void EmitUData (Module &M);
-    void EmitAutos (const Function *F);
+    void EmitAutos (std::string FunctName);
     void EmitRemainingAutos ();
     void EmitRomData (Module &M);
     void EmitFunctionFrame(MachineFunction &MF);
index cfc8dd067b096e2596e11f9eb07fbca3dbdc0af2..66607c813fc31a57085f26d378d359c58dce1152 100644 (file)
@@ -28,8 +28,7 @@ namespace llvm {
   public:
     
     const std::string &getName() const { return Name; }
-
-    void setName(std::string name) { Name = name; }    
+    
     static MCSectionPIC16 *Create(const StringRef &Name, 
                                   SectionKind K, MCContext &Ctx);
     
index 073eb47f64d1d420b4ca0a549abc7f808963402b..29f907923083f9d93d4d771b5d2be58563309b82 100644 (file)
@@ -44,7 +44,6 @@ namespace PIC16CC {
     UGE
   };
 }
-
   // External symbol names require memory to live till the program end.
   // So we have to allocate it and keep.
   inline static const char *createESName (const std::string &name) {
index a14671e755f1c8549592fe941adc2a6cf0a658a5..837a42d4a545a7eb03763ba6027ca3915581671f 100644 (file)
 #include <cassert>
 #include <cstring>
 #include <string>
-namespace llvm {
-namespace PIC16Overlay {
-  // Implement Overlay through colors because we may want to enhance overlay
-  // architecture later. More colors can be added then. 
-  // Idea here is that functions with same color can be overlayed.
-  enum Overlay {
-    // A color name can only consist of upper case letters and underscore.
-    GREEN, // Stands for mainline functions that can be overlayed.
-    GREEN_IL, // Interrupt line version of GREEN.
-    RED // Stands for functions that can not be overlayed.
-  };
-}
 
+namespace llvm {
   // A Central class to manage all ABI naming conventions.
   // PAN - [P]ic16 [A]BI [N]ames
   class PAN {
@@ -425,22 +414,6 @@ namespace PIC16Overlay {
         }
       }
     }
-    inline static std::string getOverlayStr(unsigned Color) {
-      std::string Str = "Overlay=";
-      Str.append(getSectionNameForColor(Color));
-      return Str;
-    }
-
-    inline static std::string getSectionNameForColor(unsigned Color) {
-      switch (Color) {
-        default:
-          assert( 0 && "Color not supported");
-        case PIC16Overlay::GREEN:
-          return "GREEN";
-        case PIC16Overlay::GREEN_IL:
-          return "GREEN_IL";
-      }   
-    }
 
     inline static std::string getAutosSectionForColor(std::string Color) {
       return Color.append("_AUTOS");
index 61b43623a19cf1ebcbd3b4031ed1dd5407600c84..919562106a164ff1af44abe57cb9238e440efd53 100644 (file)
@@ -12,8 +12,5 @@ TARGET = PIC16
 
 LOADABLE_MODULE = 1
 
-# Hack: we need to include 'main' pic16 target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
 include $(LEVEL)/Makefile.common
 
index cfeb97d6e7e1b44d8f2da98bae39740c69b1e0bd..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,69 +0,0 @@
-//===-- PIC16FrameOverlay.cpp - Implementation for PIC16 Frame Overlay===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the PIC16 Frame Overlay implementation.
-//
-//===----------------------------------------------------------------------===//
-
-
-#include "llvm/Analysis/CallGraph.h"
-#include "llvm/Pass.h"
-#include "llvm/Module.h"
-#include "llvm/Support/raw_ostream.h"
-#include "PIC16.h"
-#include "PIC16FrameOverlay.h"
-#include <vector>
-#include <iostream>
-using namespace llvm;
-using std::vector;
-using std::string;
-
-
-void PIC16FrameOverlay::getAnalysisUsage(AnalysisUsage &AU) const {
-  AU.setPreservesCFG();
-  AU.addRequired<CallGraph>();
-}
-
-bool PIC16FrameOverlay::runOnModule(Module &M) {
-  CallGraph &CG = getAnalysis<CallGraph>();
-  for (CallGraph::iterator it = CG.begin() ; it != CG.end(); it++)
-  {
-    // External calling node doesn't have any function associated 
-    // with it
-    if (!it->first)
-      continue;
-
-    if (it->second->size() == 0) {
-      if (PAN::isInterruptLineFunction(it->first))
-        ColorFunction(it->second, PIC16Overlay::GREEN_IL);
-      else 
-        ColorFunction(it->second, PIC16Overlay::GREEN);
-    }
-  }
-  return false;
-}
-
-void PIC16FrameOverlay::ColorFunction(CallGraphNode *CGN, unsigned Color) {
-  switch (Color) {
-    case PIC16Overlay::GREEN:
-    case PIC16Overlay::GREEN_IL: {
-      Function *LeafFunct = CGN->getFunction();
-      std::string Section = "";
-      if (LeafFunct->hasSection()) {
-        Section = LeafFunct->getSection();
-        Section.append(" ");
-      }
-      Section.append(PAN::getOverlayStr(Color));
-      LeafFunct->setSection(Section);
-      break;
-    }
-    default:
-      assert( 0 && "Color not supported");   
-  }
-}
index 813ceba063bdf5af321c41f49530bae3c799aa4b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,45 +0,0 @@
-//===-- PIC16FrameOverlay.h - Interface for PIC16 Frame Overlay -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the PIC16 Frame Overlay infrastructure.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PIC16FRAMEOVERLAY_H
-#define PIC16FRAMEOVERLAY_H
-#include "llvm/Analysis/CallGraph.h"
-#include "llvm/Pass.h"
-#include "llvm/Module.h"
-#include "llvm/Support/raw_ostream.h"
-#include <vector>
-#include <iostream>
-using std::vector;
-using std::string;
-using namespace llvm;
-
-namespace  { 
-
-  class PIC16FrameOverlay : public ModulePass { 
-  public:
-    static char ID; // Class identification 
-    PIC16FrameOverlay() : ModulePass(&ID)  {}
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const; 
-    virtual bool runOnModule(Module &M); 
-  private: 
-    void ColorFunction(CallGraphNode *CGN, unsigned Color);
-  };
-  char PIC16FrameOverlay::ID = 0;
-  static RegisterPass<PIC16FrameOverlay>
-  Y("pic16overlay", "PIC16 Frame Overlay Analysis");
-
-}  // End of  namespace
-
-#endif
index b3c435e85c7ae7293ab95a819af70000cb9b9437..3ff27a9ae7f3ae86e7ef3926a694a1575a3d1e5d 100644 (file)
@@ -82,35 +82,6 @@ getSectionForFunctionFrame(const std::string &FnName) const {
   return getPIC16Section(T.c_str(), SectionKind::getDataRel());
 }
 
-std::string PIC16TargetObjectFile::getNameForFunctFrame(const Function *F,
-                                                          bool IsAutosSection) {
-  std::string SectionName = F->getName();
-  if (F->hasSection()) {
-    std::string Sectn = F->getSection();
-    std::string StrToFind = "Overlay=";
-    size_t Pos = Sectn.find(StrToFind);
-    if (Pos != std::string::npos) {
-      Pos += StrToFind.length();
-      std::string Color = "";
-      char c = Sectn.at(Pos);
-      // A Color can only consist on upper case letters or underscore.
-      while ((c >= 'A' && c<= 'Z') || c == '_') {
-        Color.append(1,c);
-        Pos++;
-        if (Pos >= Sectn.length())
-          break;
-        c = Sectn.at(Pos);
-      }
-      // Autos Section need to be given a different name from function frame. 
-      if (IsAutosSection)
-        SectionName = PAN::getAutosSectionForColor(Color);
-      else
-        SectionName = Color;
-    }
-  }
-  return SectionName;
-}
-
 const MCSection *
 PIC16TargetObjectFile::getBSSSectionForGlobal(const GlobalVariable *GV) const {
   assert(GV->hasInitializer() && "This global doesn't need space");
index a8f4c63fd8611b4d346d9dc1427336f6ac1e3c8a..4676b3c8d6f922e540852e3aa98f6a520e138ff4 100644 (file)
@@ -12,7 +12,6 @@
 
 #include "llvm/Target/TargetLoweringObjectFile.h"
 #include "llvm/ADT/StringMap.h"
-#include "llvm/Function.h"
 #include <vector>
 #include <string>
 
@@ -85,9 +84,6 @@ namespace llvm {
     // If the current function is cloned then create the new autos section
     // also. 
     void createClonedSectionForAutos(const std::string &SecName);
-    std::string getNameForFunctFrame(const Function *F, 
-                                     bool IsAutosSection = false); 
-
   private:
     std::string getSectionNameForSym(const std::string &Sym) const;