Skip to content
  1. Feb 01, 2011
  2. Jan 31, 2011
  3. Jan 30, 2011
    • Anders Carlsson's avatar
      When building with optimizations, emit vtables where the key is not in the · a03f3a85
      Anders Carlsson authored
      current translation unit as available_externally. 
      
      This helps devirtualize the second example in PR3100, comment 18:
      
      struct S { S() {}; virtual void xyzzy(); };
      inline void foo(S *s) { s->xyzzy(); }
      void bar() { S s; foo(&s); }
      
      This involved four major changes:
      
      1. In DefineUsedVTables, always mark virtual member functions as referenced for
         non-template classes and class template specializations.
      2. In CodeGenVTables::ShouldEmitVTableInThisTU return true if optimizations are
         enabled, even if the key function is not implemented in this translation 
         unit. We don't ever do this for code compiled with -fapple-kext, because we
         don't ever want to devirtualize virtual member function calls in that case.
      3. Give the correct linkage for vtables where the key function is not defined.
      4. Update the linkage for RTTI structures when necessary.
      
      llvm-svn: 124565
      a03f3a85
    • Roman Divacky's avatar
      Add hardcoded -L/usr/lib after all -L options to the FreeBSD linker · 115f0fa3
      Roman Divacky authored
      invocation. 
      
      This mimics what gcc does and fixes libtool check for libraries.
      
      llvm-svn: 124558
      115f0fa3
  4. Jan 29, 2011
Loading