[LLVMdev] PIC16TargetAsmInfo::getBSSSectionForGlobal

Chris Lattner clattner at apple.com
Mon Jul 20 15:20:56 PDT 2009


Hi Sanjiv,

The PIC16TargetAsmInfo::getBSSSectionForGlobal apparently does magic  
that reinterprets the "section" field of a global in a strange way:

   // If GV has a sectin name or section address create that section  
now.
   if (GV->hasSection()) {
     std::string SectName = GV->getSection();
     // If address for a variable is specified, get the address and  
create
     // section.
     std::string AddrStr = "Address=";
     if (SectName.compare(0, AddrStr.length(), AddrStr) == 0) {
       std::string SectAddr = SectName.substr(AddrStr.length());
       S = CreateSectionForGlobal(GV, SectAddr);
     }

Why isn't the front-end handling this, replacing all uses of the  
global with the address?  Does PIC allow initializing random sections  
of globals like this?  I need to heavily refactor all this code, and  
since there are no testcases at all for PIC16, I'm afraid of breaking  
something.

-Chris



More information about the llvm-dev mailing list