Skip to content
  1. Jan 22, 2010
  2. Jan 09, 2010
    • David Chisnall's avatar
      Fixed linking of modules containing aliases to constant bitcasts. Existing... · 2c4a34ae
      David Chisnall authored
      Fixed linking of modules containing aliases to constant bitcasts.  Existing behaviour first tried to replace the aliases with the global that they aliased (rather than the bitcast), causing a crash on an assert because the types didn't match.  When this was fixed, it then did the same thing creating the new alias (creating an alias with a different type to its aliasee).  
      
      Linking modules containing aliases to GEPs is still not quite right.  GEPs that are equivalent to bitcasts will be replaced by bitcasts, GEPs that are not will just break.  Aliases to GEPs that are not equivalent to bitcasts are horribly broken anyway (it might be worth adding an assert when creating the alias to prevent these being created; they just cause problems later).
      
      llvm-svn: 93052
      2c4a34ae
  3. Jan 05, 2010
  4. Dec 31, 2009
  5. Dec 28, 2009
  6. Nov 01, 2009
  7. Sep 13, 2009
  8. Sep 03, 2009
  9. Aug 24, 2009
    • Chris Lattner's avatar
      Prune #includes from llvm/Linker.h and llvm/System/Path.h, · c521f541
      Chris Lattner authored
      forcing them down into various .cpp files.
      
      This change also:
      1. Renames TimeValue::toString() and Path::toString() to ::str()
         for similarity with the STL.
      2. Removes all stream insertion support for sys::Path, forcing
         clients to call .str().
      3. Removes a use of Config/alloca.h from bugpoint, using smallvector
         instead.
      4. Weans llvm-db off <iostream>
      
      sys::Path really needs to be gutted, but I don't have the desire to
      do it at this point.
      
      llvm-svn: 79869
      c521f541
  10. Aug 23, 2009
  11. Aug 11, 2009
  12. Jul 31, 2009
  13. Jul 30, 2009
  14. Jul 29, 2009
  15. Jul 28, 2009
  16. Jul 26, 2009
  17. Jul 25, 2009
  18. Jul 23, 2009
  19. Jul 22, 2009
  20. Jul 20, 2009
  21. Jul 14, 2009
  22. Jul 11, 2009
    • Torok Edwin's avatar
      assert(0) -> LLVM_UNREACHABLE. · 56d06597
      Torok Edwin authored
      Make llvm_unreachable take an optional string, thus moving the cerr<< out of
      line.
      LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
      NDEBUG builds.
      
      llvm-svn: 75379
      56d06597
  23. Jul 08, 2009
  24. Jul 07, 2009
  25. Apr 13, 2009
  26. Mar 08, 2009
  27. Mar 07, 2009
    • Duncan Sands's avatar
      Introduce new linkage types linkonce_odr, weak_odr, common_odr · 12da8ce3
      Duncan Sands authored
      and extern_weak_odr.  These are the same as the non-odr versions,
      except that they indicate that the global will only be overridden
      by an *equivalent* global.  In C, a function with weak linkage can
      be overridden by a function which behaves completely differently.
      This means that IP passes have to skip weak functions, since any
      deductions made from the function definition might be wrong, since
      the definition could be replaced by something completely different
      at link time.   This is not allowed in C++, thanks to the ODR
      (One-Definition-Rule): if a function is replaced by another at
      link-time, then the new function must be the same as the original
      function.  If a language knows that a function or other global can
      only be overridden by an equivalent global, it can give it the
      weak_odr linkage type, and the optimizers will understand that it
      is alright to make deductions based on the function body.  The
      code generators on the other hand map weak and weak_odr linkage
      to the same thing.
      
      llvm-svn: 66339
      12da8ce3
  28. Mar 03, 2009
  29. Jan 15, 2009
  30. Oct 15, 2008
  31. Sep 29, 2008
  32. Sep 09, 2008
Loading