Skip to content
  1. Feb 09, 2013
  2. Feb 08, 2013
    • Bob Wilson's avatar
      Revert "Add LLVMContext::emitWarning methods and use them. <rdar://problem/12867368>" · bfb44ef9
      Bob Wilson authored
      This reverts r171041. This was a nice idea that didn't work out well.
      Clang warnings need to be associated with warning groups so that they can
      be selectively disabled, promoted to errors, etc. This simplistic patch didn't
      allow for that. Enhancing it to provide some way for the backend to specify
      a front-end warning type seems like overkill for the few uses of this, at
      least for now.
      
      llvm-svn: 174748
      bfb44ef9
    • Hal Finkel's avatar
      DAGCombiner: Constant folding around pre-increment loads/stores · 2581905f
      Hal Finkel authored
      Previously, even when a pre-increment load or store was generated,
      we often needed to keep a copy of the original base register for use
      with other offsets. If all of these offsets are constants (including
      the offset which was combined into the addressing mode), then this is
      clearly unnecessary. This change adjusts these other offsets to use the
      new incremented address.
      
      llvm-svn: 174746
      2581905f
    • Bob Wilson's avatar
      Revert 172027 and 174336. Remove diagnostics about over-aligned stack objects. · 67bbf3aa
      Bob Wilson authored
      Aside from the question of whether we report a warning or an error when we
      can't satisfy a requested stack object alignment, the current implementation
      of this is not good.  We're not providing any source location in the diagnostics
      and the current warning is not connected to any warning group so you can't
      control it.  We could improve the source location somewhat, but we can do a
      much better job if this check is implemented in the front-end, so let's do that
      instead.  <rdar://problem/13127907>
      
      llvm-svn: 174741
      67bbf3aa
    • Arnold Schwaighofer's avatar
      ARM cost model: Address computation in vector mem ops not free · 594fa2dc
      Arnold Schwaighofer authored
      Adds a function to target transform info to query for the cost of address
      computation. The cost model analysis pass now also queries this interface.
      The code in LoopVectorize adds the cost of address computation as part of the
      memory instruction cost calculation. Only there, we know whether the instruction
      will be scalarized or not.
      Increase the penality for inserting in to D registers on swift. This becomes
      necessary because we now always assume that address computation has a cost and
      three is a closer value to the architecture.
      
      radar://13097204
      
      llvm-svn: 174713
      594fa2dc
  3. Feb 07, 2013
  4. Feb 06, 2013
  5. Feb 05, 2013
  6. Feb 04, 2013
    • Benjamin Kramer's avatar
      SelectionDAG: Teach FoldConstantArithmetic how to deal with vectors. · 548ffa27
      Benjamin Kramer authored
      This required disabling a PowerPC optimization that did the following:
      input:
      x = BUILD_VECTOR <i32 16, i32 16, i32 16, i32 16>
      lowered to:
      tmp = BUILD_VECTOR <i32 8, i32 8, i32 8, i32 8>
      x = ADD tmp, tmp
      
      The add now gets folded immediately and we're back at the BUILD_VECTOR we
      started from. I don't see a way to fix this currently so I left it disabled
      for now.
      
      Fix some trivially foldable X86 tests too.
      
      llvm-svn: 174325
      548ffa27
  7. Feb 02, 2013
  8. Feb 01, 2013
  9. Jan 31, 2013
  10. Jan 29, 2013
  11. Jan 28, 2013
    • Bill Schmidt's avatar
      This patch addresses bug 15031. · 2e4ae4e1
      Bill Schmidt authored
      The common code in the post-RA scheduler to break anti-dependencies on the
      critical path contained a flaw.  In the reported case, an anti-dependency
      between the overlapping registers %X4 and %R4 exists:
      
      	%X29<def> = OR8 %X4, %X4
      	%R4<def>, %X3<def,dead,tied3> = LBZU 1, %X3<kill,tied1>
      
      The unpatched code breaks the dependency by replacing %R4 and its uses
      with %R3, the first register on the available list.  However, %R3 and
      %X3 overlap, so this creates two overlapping definitions on the same
      instruction.
      
      The fix is straightforward, preventing selection of a register that
      overlaps any other defined register on the same instruction.
      
      The test case is reduced from the bug report, and verifies that we no
      longer produce "lbzu 3, 1(3)" when breaking this anti-dependency.
      
      llvm-svn: 173706
      2e4ae4e1
    • Eric Christopher's avatar
      Fix comment. · 59cc0711
      Eric Christopher authored
      llvm-svn: 173698
      59cc0711
    • Michael Gottesman's avatar
      Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation... · 79d8d812
      Michael Gottesman authored
      Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer.
      
      llvm-svn: 173647
      79d8d812
  12. Jan 27, 2013
Loading