[llvm-commits] [llvm] r63377 - in /llvm/trunk: include/llvm/CodeGen/AsmPrinter.h include/llvm/Target/TargetAsmInfo.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp lib/Target/PIC16/PIC16AsmPrinter.cpp lib/Target/PIC16/PIC16AsmPrinter.h lib/Target/PIC16/PIC16TargetAsmInfo.cpp lib/Target/PIC16/PIC16TargetAsmInfo.h

sanjiv gupta sanjiv.gupta at microchip.com
Sat Jan 31 07:31:58 PST 2009


On Fri, 2009-01-30 at 10:11 -0800, Chris Lattner wrote:
> On Jan 29, 2009, at 8:25 PM, Sanjiv Gupta wrote:
> > URL: http://llvm.org/viewvc/llvm-project?rev=63377&view=rev
> > Log:
> > Enable emitting of constant values in non-default address space as  
> > well. The APIs emitting constants now take an additional parameter  
> > signifying the address space in which to emit. The APIs like  
> > getData8BitsDirective() etc are made virtual enabling targets to be  
> > able to define appropirate directivers for various sizes and address  
> > spaces.
> 
> Hi Sanjiv,
> 
> Thank you for working on this.
> 
> > +    // Data directive accessors
> > +    //
> > +    virtual const char *getData8bitsDirective(unsigned AddrSpace =  
> > 0) const {
> > +      return Data8bitsDirective;
> > +    }
> 
> Unfortunately, this significantly pessimizes the common case where  
> AddrSpace = 0 by making these trivial functions virtual.  How about  
> something like this?:
> 
>      // virtual, also protected.
>      virtual const char *getData8bitsDirectiveV(unsigned AddrSpace)  
> const;
> 
>      // nonvirtual, public.
>      const char *getData16bitsDirective(unsigned AddrSpace = 0) const {
>        return AddrSpace == 0 ? Data16bitsDirective :  
> getData8bitsDirectiveV(AddrSpace);
>      }
> 
> I think this should be a pretty straight-forward change.  What do you  
> think?
> 
Makes sense. Will rework.

- Sanjiv
> -Chris
> 



More information about the llvm-commits mailing list