[LLVMbugs] [Bug 10373] New: Inlining non-virtual thunks causes code bloat

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Jul 15 12:16:24 PDT 2011


           Summary: Inlining non-virtual thunks causes code bloat
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Interprocedural Optimizations
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: jmuizelaar at mozilla.com
                CC: llvmbugs at cs.uiuc.edu

The following example compiles to two separate functions:

class nsSVGElement
  virtual void PrependLocalTransformTo() const;

class nsIDOMSVGAnimatedPathData  {
  virtual unsigned int GetPathSegList(void **aPathSegList) = 0;

class nsSVGPathElement : public nsSVGElement,
                         public nsIDOMSVGAnimatedPathData
  unsigned int virtual GetPathSegList(void **aPathSegList); 

void *GetDOMWrapper(void *aList,void *aElement, bool aIsAnimValList);
void *GetBaseValKey();

unsigned int nsSVGPathElement::GetPathSegList(void * *aPathSegList)
  void *key = GetBaseValKey();
  *aPathSegList = GetDOMWrapper(key, this, false);
  return *aPathSegList ? 0 : 0x8007000e;

GCC compiles the thunk an 'add' and 'jmp'.

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list