Revert back 85006 for now as it breaks PIC16 tests.
authorSanjiv Gupta <sanjiv.gupta@microchip.com>
Sat, 24 Oct 2009 18:19:41 +0000 (18:19 +0000)
committerSanjiv Gupta <sanjiv.gupta@microchip.com>
Sat, 24 Oct 2009 18:19:41 +0000 (18:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85008 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.cpp
lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.h
lib/Target/PIC16/PIC16ABINames.h
lib/Target/PIC16/PIC16MemSelOpt.cpp
lib/Target/PIC16/PIC16TargetObjectFile.cpp
lib/Target/PIC16/PIC16TargetObjectFile.h

index b2a4c1124ee945272ed208973a816d548535dc41..ea0f4941da7afb17dc7b55e9df7b056deafc2df3 100644 (file)
@@ -298,7 +298,6 @@ bool PIC16AsmPrinter::doInitialization(Module &M) {
   EmitIData(M);
   EmitUData(M);
   EmitRomData(M);
-  EmitSharedUdata(M);
   EmitUserSections(M);
   return Result;
 }
@@ -371,11 +370,6 @@ void PIC16AsmPrinter::EmitRomData(Module &M) {
   EmitSingleSection(PTOF->ROMDATASection());
 }
 
-// Emit Shared section udata.
-void PIC16AsmPrinter::EmitSharedUdata(Module &M) {
-  EmitSingleSection(PTOF->SHAREDUDATASection());
-}
-
 bool PIC16AsmPrinter::doFinalization(Module &M) {
   EmitAllAutos(M);
   printLibcallDecls();
index 838c970e1e54af9ecf1162968af7a4de8e775c5d..b13d9ce3aac6baa5723e66d43dba3a758ebf95a5 100644 (file)
@@ -55,7 +55,6 @@ namespace llvm {
     void EmitUData (Module &M);
     void EmitAllAutos (Module &M);
     void EmitRomData (Module &M);
-    void EmitSharedUdata(Module &M);
     void EmitUserSections (Module &M);
     void EmitFunctionFrame(MachineFunction &MF);
     void printLibcallDecls();
index e18ddf158ec835fb4935205ec03792a91129ac8b..7f4c2f1cc28ec6ab7f0555a6554217b571324f3e 100644 (file)
@@ -234,12 +234,6 @@ namespace llvm {
       return "romdata.#";
     }
 
-    static std::string getSharedUDataSectionName() {
-       std::ostringstream o;
-       o << getTagName(PREFIX_SYMBOL)  << "udata_shr" << ".#";
-       return o.str();
-    }
-
     static std::string getRomdataSectionName(unsigned num,
                                              std::string prefix = "") {
        std::ostringstream o;
index 93ccdd249181051d38a52c9ad7a494530f0adc7c..a97dc35b137a0790b14473d5392ba88cd68faea3 100644 (file)
@@ -144,7 +144,7 @@ bool MemSelOpt::processInstruction(MachineInstr *MI) {
   }
 
   // Get the section name(NewBank) for MemOp.
-  // This assumes that the section names for globals are already set by
+  // This assumes that the section names for globals are laready set by
   // AsmPrinter->doInitialization.
   std::string NewBank = CurBank;
   if (Op.getType() ==  MachineOperand::MO_GlobalAddress &&
@@ -156,11 +156,7 @@ bool MemSelOpt::processInstruction(MachineInstr *MI) {
     std::string Sym = Op.getSymbolName();
     NewBank = PAN::getSectionNameForSym(Sym);
   }
-
-  // If the section is shared section, do not emit banksel.
-  if (NewBank == PAN::getSharedUDataSectionName())
-    return Changed;
-
   // If the previous and new section names are same, we don't need to
   // emit banksel. 
   if (NewBank.compare(CurBank) != 0 ) {
index 846715de6f3e0f3a1bafbdf96c7176bdaa14ae9a..7eedf7fe2356ddb68b94e21c915b62af8f9b90a9 100644 (file)
@@ -72,7 +72,6 @@ getPIC16DataSection(const std::string &Name, PIC16SectionType Ty,
   case UDATA: UDATASections_.push_back(Entry); break;
   case IDATA: IDATASections_.push_back(Entry); break;
   case ROMDATA: ROMDATASection_ = Entry; break;
-  case UDATA_SHR: SHAREDUDATASection_ = Entry; break;
   }
 
   return Entry;
@@ -280,10 +279,7 @@ getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind,
     std::string AddrStr = "Address=";
     if (SectName.compare(0, AddrStr.length(), AddrStr) == 0) {
       std::string SectAddr = SectName.substr(AddrStr.length());
-      if (SectAddr.compare("NEAR") == 0)
-        return allocateSHARED(GVar, Mang);
-      else
-        return allocateAtGivenAddress(GVar, SectAddr);
+      return allocateAtGivenAddress(GVar, SectAddr);
     }
      
     // Create the section specified with section attribute. 
@@ -293,25 +289,6 @@ getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind,
   return getPIC16DataSection(GV->getSection().c_str(), UDATA);
 }
 
-const MCSection *
-PIC16TargetObjectFile::allocateSHARED(const GlobalVariable *GV,
-                                      Mangler *Mang) const {
-  // Make sure that this is an uninitialized global.
-  assert(GV->hasInitializer() && "This global doesn't need space");
-  if (!GV->getInitializer()->isNullValue()) {
-    // FIXME: Generate a warning in this case that near qualifier will be 
-    // ignored.
-    return SelectSectionForGlobal(GV, SectionKind::getDataRel(), Mang, *TM); 
-  } 
-  std::string Name = PAN::getSharedUDataSectionName(); 
-
-  PIC16Section *SharedUDataSect = getPIC16DataSection(Name.c_str(), UDATA_SHR); 
-  // Insert the GV into shared section.
-  SharedUDataSect->Items.push_back(GV);
-  return SharedUDataSect;
-}
-
-
 // Interface used by AsmPrinter to get a code section for a function.
 const PIC16Section *
 PIC16TargetObjectFile::SectionForCode(const std::string &FnName) const {
index 0b0ad43ff946000f998676cc0e1923382a51eec1..ca07bedafe13d3ea0fbe8abc41bd6e48a8dc391e 100644 (file)
@@ -56,7 +56,6 @@ namespace llvm {
     mutable std::vector<PIC16Section *> UDATASections_;
     mutable std::vector<PIC16Section *> IDATASections_;
     mutable PIC16Section * ROMDATASection_;
-    mutable PIC16Section * SHAREDUDATASection_;
 
     /// Standard Auto Sections.
     mutable std::vector<PIC16Section *> AUTOSections_;
@@ -111,10 +110,6 @@ namespace llvm {
     /// Allocate DATA at user specified address.
     const MCSection *allocateAtGivenAddress(const GlobalVariable *GV,
                                             const std::string &Addr) const;
-
-    /// Allocate a shared variable to SHARED section.
-    const MCSection *allocateSHARED(const GlobalVariable *GV,
-                                    Mangler *Mang) const;
    
     public:
     PIC16TargetObjectFile();
@@ -152,9 +147,6 @@ namespace llvm {
     const PIC16Section *ROMDATASection() const {
       return ROMDATASection_;
     }
-    const PIC16Section *SHAREDUDATASection() const {
-      return SHAREDUDATASection_;
-    }
     const std::vector<PIC16Section *> &AUTOSections() const {
       return AUTOSections_;
     }