Skip to content
  1. Sep 04, 2013
  2. Sep 03, 2013
    • Eric Christopher's avatar
      Add a hashing routine that handles hashing types. Add a test for · 25b7adc8
      Eric Christopher authored
      hashing the contents of DW_FORM_data1 on top of a type with attributes.
      
      llvm-svn: 189862
      25b7adc8
    • Eric Christopher's avatar
      Sentences end with periods. · b86e2ad8
      Eric Christopher authored
      llvm-svn: 189861
      b86e2ad8
    • Reid Kleckner's avatar
      Emit uuid globals as linkonce_odr · b9921df2
      Reid Kleckner authored
      Patch by Nico Rieck!
      
      llvm-svn: 189860
      b9921df2
    • David Blaikie's avatar
      Reference extension is weird/surprising and unnecessary, let's not do that. · 43472b3d
      David Blaikie authored
      Found by Chris Wailes
      
      llvm-svn: 189859
      43472b3d
    • Nadav Rotem's avatar
      Enable late-vectorization by default. · 5d78dba6
      Nadav Rotem authored
      This patch changes the default setting for the LateVectorization flag that controls where the loop-vectorizer is ran.
      
      Perf gains:
      SingleSource/Benchmarks/Shootout/matrix -37.33%
      MultiSource/Benchmarks/PAQ8p/paq8p  -22.83%
      SingleSource/Benchmarks/Linpack/linpack-pc  -16.22%
      SingleSource/Benchmarks/Shootout-C++/ary3 -15.16%
      MultiSource/Benchmarks/TSVC/NodeSplitting-flt/NodeSplitting-flt -10.34%
      MultiSource/Benchmarks/TSVC/NodeSplitting-dbl/NodeSplitting-dbl -7.12%
      
      Regressions:
      SingleSource/Benchmarks/Misc/lowercase  15.10%
      MultiSource/Benchmarks/TSVC/Equivalencing-flt/Equivalencing-flt 13.18%
      SingleSource/Benchmarks/Shootout-C++/matrix 8.27%
      SingleSource/Benchmarks/CoyoteBench/lpbench 7.30%
      
      llvm-svn: 189858
      5d78dba6
    • Richard Smith's avatar
      e7d67f2e
    • Matt Arsenault's avatar
      Fix grammar · ad3029a8
      Matt Arsenault authored
      llvm-svn: 189855
      ad3029a8
    • Matt Arsenault's avatar
      Teach InstCombineLoadCast about address spaces. · 3dfe54e9
      Matt Arsenault authored
      This is another one that doesn't matter much,
      but uses the right GEP index types in the first
      place.
      
      llvm-svn: 189854
      3dfe54e9
    • Matt Arsenault's avatar
      Use type form of getIntPtrType in alloca visitor. · e38e4cdc
      Matt Arsenault authored
      This doesn't actually matter, since alloca is always
      0 address space, but this is more consistent.
      
      llvm-svn: 189853
      e38e4cdc
    • Rafael Espindola's avatar
      Don't emit an available_externally vtable pointing to linkonce_odr funcs. · ee6aa0c6
      Rafael Espindola authored
      This fixes pr13124.
      
      From the discussion at
      http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022606.html
      we know that we cannot make funcions in a weak_odr vtable also weak_odr. They
      should remain linkonce_odr.
      
      The side effect is that we cannot emit a available_externally vtable unless we
      also emit a copy of the function. This also has an issue: If codegen is going
      to output a function, sema has to mark it used. Given llvm.org/pr9114, it looks
      like sema cannot be more aggressive at marking functions used because
      of vtables.
      
      This leaves us with a few unpleasant options:
      
      * Marking functions in vtables used if possible. This sounds a bit sloppy, so
        we should avoid it.
      * Producing available_externally vtables only when all the functions in it are
        already used or weak_odr. This would cover cases like
      
      --------------------
      struct foo {
        virtual ~foo();
      };
      struct bar : public foo {
        virtual void zed();
      };
      void f() {
        foo *x(new bar);
        delete x;
      }
      void g(bar *x) {
        x->~bar(); // force the destructor to be used
      }
      --------------------------
      
      and
      
      ----------------------------------
      template<typename T>
      struct bar {
        virtual ~bar();
      };
      template<typename T>
      bar<T>::~bar() {
      }
      
      // make the destructor weak_odr instead of linkonce_odr
      extern template class bar<int>;
      
      void f() {
        bar<int> *x(new bar<int>);
        delete x;
      }
      ----------------------------
      
      These look like corner cases, so it is unclear if it is worth it.
      
      * And finally: Just nuke this optimization. That is what this patch implements.
      
      llvm-svn: 189852
      ee6aa0c6
    • Aaron Ballman's avatar
      Switched FormatAttr to using an IdentifierArgument instead of a StringArgument... · f58070ba
      Aaron Ballman authored
      Switched FormatAttr to using an IdentifierArgument instead of a StringArgument since that is a more accurate modeling.
      
      llvm-svn: 189851
      f58070ba
Loading