Skip to content
  1. Jun 24, 2013
    • Arnold Schwaighofer's avatar
      Revert "LoopVectorize: Use the dependence test utility class" · 58ca945f
      Arnold Schwaighofer authored
      This reverts commit cbfa1ca993363ca5c4dbf6c913abc957c584cbac.
      
      We are seeing a stage2 and stage3 miscompare on some dragonegg bots.
      
      llvm-svn: 184690
      58ca945f
    • Michael Gottesman's avatar
      [APFloat] Rename llvm::exponent_t => llvm::APFloat::ExponentType. · 9dc98338
      Michael Gottesman authored
      exponent_t is only used internally in APFloat and no exponent_t values are
      exposed via the APFloat API. In light of such conditions it does not make any
      sense to gum up the llvm namespace with said type. Plus it makes it clearer that
      exponent_t is associated with APFloat.
      
      llvm-svn: 184686
      9dc98338
    • Arnold Schwaighofer's avatar
      LoopVectorize: Use the dependence test utility class · b914a7e2
      Arnold Schwaighofer authored
      We now no longer need alias analysis - the cases that alias analysis would
      handle are now handled as accesses with a large dependence distance.
      
      We can now vectorize loops with simple constant dependence distances.
      
        for (i = 8; i < 256; ++i) {
          a[i] = a[i+4] * a[i+8];
        }
      
        for (i = 8; i < 256; ++i) {
          a[i] = a[i-4] * a[i-8];
        }
      
      We would be able to vectorize about 200 more loops (in many cases the cost model
      instructs us no to) in the test suite now. Results on x86-64 are a wash.
      
      I have seen one degradation in ammp. Interestingly, the function in which we
      now vectorize a loop is never executed so we probably see some instruction
      cache effects. There is a 2% improvement in h264ref. There is one or the other
      TSCV loop kernel that speeds up.
      
      radar://13681598
      
      llvm-svn: 184685
      b914a7e2
    • Arnold Schwaighofer's avatar
      LoopVectorize: Add utility class for checking dependency among accesses · d5179767
      Arnold Schwaighofer authored
      This class checks dependences by subtracting two Scalar Evolution access
      functions allowing us to catch very simple linear dependences.
      
      The checker assumes source order in determining whether vectorization is safe.
      We currently don't reorder accesses.
      Positive true dependencies need to be a multiple of VF otherwise we impede
      store-load forwarding.
      
      llvm-svn: 184684
      d5179767
    • Arnold Schwaighofer's avatar
      LoopVectorize: Add utility class for building sets of dependent accesses · d5741969
      Arnold Schwaighofer authored
      Sets of dependent accesses are built by unioning sets based on underlying
      objects. This class will be used by the upcoming dependence checker.
      
      llvm-svn: 184683
      d5741969
    • Nadav Rotem's avatar
      SLP Vectorizer: Add support for vectorizing parts of the tree. · 210e86d7
      Nadav Rotem authored
      Untill now we detected the vectorizable tree and evaluated the cost of the
      entire tree.  With this patch we can decide to trim-out branches of the tree
      that are not profitable to vectorizer.
      
      Also, increase the max depth from 6 to 12. In the worse possible case where all
      of the code is made of diamond-shaped graph this can bring the cost to 2**10,
      but diamonds are not very common.
      
      llvm-svn: 184681
      210e86d7
    • Andrew Trick's avatar
      Fix tail merging to assign the (more) correct BasicBlock when splitting. · 97a1d7c4
      Andrew Trick authored
      This makes it possible to write unit tests that are less susceptible
      to minor code motion, particularly copy placement. block-placement.ll
      covers this case with -pre-RA-sched=source which will soon be
      default. One incorrectly named block is already fixed, but without
      this fix, enabling new coalescing and scheduling would cause more
      failures.
      
      llvm-svn: 184680
      97a1d7c4
  2. Jun 23, 2013
  3. Jun 22, 2013
  4. Jun 21, 2013
Loading