Skip to content
  1. Feb 14, 2012
  2. Feb 13, 2012
  3. Feb 12, 2012
    • Nadav Rotem's avatar
      · 34ca89af
      Nadav Rotem authored
      This patch addresses the problem of poor code generation for the zext
      v8i8 -> v8i32 on AVX machines. The codegen often scalarizes ANY_EXTEND nodes.
      The DAGCombiner has two optimizations that can mitigate the problem. First,
      if all of the operands of a BUILD_VECTOR node are extracted from an ZEXT/ANYEXT
      nodes, then it is possible to create a new simplified BUILD_VECTOR which uses
      UNDEFS/ZERO values to eliminate the scalar ZEXT/ANYEXT nodes.
      Second, another dag combine optimization lowers BUILD_VECTOR into a shuffle
      vector instruction.
      
      In the case of zext v8i8->v8i32 on AVX, a value in an XMM register is to be
      shuffled into a wide YMM register.
      
      This patch modifes the second optimization and allows the creation of
      shuffle vectors even when the newly generated vector and the original vector
      from which we extract the values are of different types.
      
      llvm-svn: 150340
      34ca89af
  4. Feb 11, 2012
  5. Feb 10, 2012
  6. Feb 09, 2012
  7. Feb 08, 2012
    • Jakob Stoklund Olesen's avatar
      Handle register masks in MachineCopyPropagation. · 8610a59d
      Jakob Stoklund Olesen authored
      For simplicity, treat calls with register masks as basic block
      boundaries.  This means we can't copy propagate callee-saved registers
      across calls, but I don't think that is a big deal.
      
      llvm-svn: 150108
      8610a59d
    • Andrew Trick's avatar
      Codegen pass definition cleanup. No functionality. · 1fa5bcbe
      Andrew Trick authored
      Moving toward a uniform style of pass definition to allow easier target configuration.
      Globally declare Pass ID.
      Globally declare pass initializer.
      Use INITIALIZE_PASS consistently.
      Add a call to the initializer from CodeGen.cpp.
      Remove redundant "createPass" functions and "getPassName" methods.
      
      While cleaning up declarations, cleaned up comments (sorry for large diff).
      
      llvm-svn: 150100
      1fa5bcbe
Loading