Skip to content
  1. Apr 05, 2013
    • Andrew Trick's avatar
      MachineScheduler: format DEBUG output. · 419d4917
      Andrew Trick authored
      I'm getting more serious about tuning and enabling on x86/ARM. Start
      by making the trace readable.
      
      llvm-svn: 178821
      419d4917
    • Arnold Schwaighofer's avatar
      LoopVectorizer: Pass OperandValueKind information to the cost model · df6f67ed
      Arnold Schwaighofer authored
      Pass down the fact that an operand is going to be a vector of constants.
      
      This should bring the performance of MultiSource/Benchmarks/PAQ8p/paq8p on x86
      back. It had degraded to scalar performance due to my pervious shift cost change
      that made all shifts expensive on x86.
      
      radar://13576547
      
      llvm-svn: 178809
      df6f67ed
    • Arnold Schwaighofer's avatar
      X86 cost model: Differentiate cost for vector shifts of constants · 44f902ed
      Arnold Schwaighofer authored
      SSE2 has efficient support for shifts by a scalar. My previous change of making
      shifts expensive did not take this into account marking all shifts as expensive.
      This would prevent vectorization from happening where it is actually beneficial.
      
      With this change we differentiate between shifts of constants and other shifts.
      
      radar://13576547
      
      llvm-svn: 178808
      44f902ed
    • Arnold Schwaighofer's avatar
      CostModel: Add parameter to instruction cost to further classify operand values · b9773871
      Arnold Schwaighofer authored
      On certain architectures we can support efficient vectorized version of
      instructions if the operand value is uniform (splat) or a constant scalar.
      An example of this is a vector shift on x86.
      
      We can efficiently support
      
      for (i = 0 ; i < ; i += 4)
        w[0:3] = v[0:3] << <2, 2, 2, 2>
      
      but not
      
      for (i = 0; i < ; i += 4)
        w[0:3] = v[0:3] << x[0:3]
      
      This patch adds a parameter to getArithmeticInstrCost to further qualify operand
      values as uniform or uniform constant.
      
      Targets can then choose to return a different cost for instructions with such
      operand values.
      
      A follow-up commit will test this feature on x86.
      
      radar://13576547
      
      llvm-svn: 178807
      b9773871
    • Manman Ren's avatar
      Debug Info: revert 178722 for now. · bdcb4464
      Manman Ren authored
      There is a difference for FORM_ref_addr between DWARF 2 and DWARF 3+.
      Since Eric is against guarding DWARF 2 ref_addr with DarwinGDBCompat, we are
      still in discussion on how to handle this.
      
      The correct solution is to update our header to say version 4 instead of version
      2 and update tool chains as well.
      
      rdar://problem/13559431
      
      llvm-svn: 178806
      bdcb4464
    • Adrian Prantl's avatar
      typo · 322f41d0
      Adrian Prantl authored
      llvm-svn: 178804
      322f41d0
    • Hal Finkel's avatar
      Rename the current PPC BCL definition to BCLalways · e5680b3c
      Hal Finkel authored
      BCL is normally a conditional branch-and-link instruction, but has
      an unconditional form (which is used in the SjLj code, for example).
      To make clear that this BCL instruction definition is specifically
      the special unconditional form (which does not meaningfully take
      a condition-register input), rename it to BCLalways.
      
      No functionality change intended.
      
      llvm-svn: 178803
      e5680b3c
    • Hal Finkel's avatar
      PPC: Improve code generation for mixed-precision reciprocal sqrt · f96c18e3
      Hal Finkel authored
      The DAGCombine logic that recognized a/sqrt(b) and transformed it into
      a multiplication by the reciprocal sqrt did not handle cases where the
      sqrt and the division were separated by an fpext or fptrunc.
      
      llvm-svn: 178801
      f96c18e3
  2. Apr 04, 2013
  3. Apr 03, 2013
Loading