Skip to content
  1. Nov 05, 2014
    • Eric Christopher's avatar
      Add a check for misbehaving -Wcomment from gcc-4.7 and add · 65ec83b0
      Eric Christopher authored
      -Wno-comment to the compilation flags if so.
      
      Patch by Filipe Cabecinhas, configure regenerated by me.
      
      llvm-svn: 221323
      65ec83b0
    • Tim Northover's avatar
      ARM: try to add extra CS-register whenever stack alignment >= 8. · dc0d9e46
      Tim Northover authored
      We currently try to push an even number of registers to preserve 8-byte
      alignment during a function's prologue, but only when the stack alignment is
      prcisely 8. Many of the reasons for doing it apply also when that alignment > 8
      (the extra store is often free, and can save another stack adjustment, though
      less frequently for 16-byte stack alignment).
      
      llvm-svn: 221321
      dc0d9e46
    • Tim Northover's avatar
      ARM/Dwarf: correctly align stack before callee-saved VPRs · 228c943f
      Tim Northover authored
      We were making an attempt to do this by adding an extra callee-saved GPR (so
      that there was an even number in the list), but when that failed we went ahead
      and pushed anyway.
      
      This had a couple of potential issues:
        + The .cfi directives we emit misplaced dN because they were based on
          PrologEpilogInserter's calculation.
        + Unaligned stores can be less efficient.
        + Unaligned stores can actually fault (likely only an issue in niche cases,
          but possible).
      
      This adds a final explicit stack adjustment if all other options fail, so that
      the actual locations of the registers match up with where they should be.
      
      llvm-svn: 221320
      228c943f
    • David Majnemer's avatar
      Analysis: Make isSafeToSpeculativelyExecute fire less for divides · f20d7c4c
      David Majnemer authored
      Divides and remainder operations do not behave like other operations
      when they are given poison: they turn into undefined behavior.
      
      It's really hard to know if the operands going into a div are or are not
      poison.  Because of this, we should only choose to speculate if there
      are constant operands which we can easily reason about.
      
      This fixes PR21412.
      
      llvm-svn: 221318
      f20d7c4c
    • Reid Kleckner's avatar
      Revert "[Reassociate] Canonicalize negative constants out of expressions." · 941e93e9
      Reid Kleckner authored
      This reverts commit r221171.
      
      It performs this invalid transformation:
      -  %div.i = urem i64 -1, %add
      -  %sub.i = sub i64 -2, %div.i
      +  %div.i = urem i64 1, %add
      +  %sub.i1 = add i64 %div.i, -2
      
      llvm-svn: 221317
      941e93e9
    • Simon Pilgrim's avatar
      [X86][SSE] Enable commutation for SSE immediate blend instructions · c9a07793
      Simon Pilgrim authored
      Patch to allow (v)blendps, (v)blendpd, (v)pblendw and vpblendd instructions to be commuted - swaps the src registers and inverts the blend mask.
      
      This is primarily to improve memory folding (see new tests), but it also improves the quality of shuffles (see modified tests).
      
      Differential Revision: http://reviews.llvm.org/D6015
      
      llvm-svn: 221313
      c9a07793
    • Mark Heffernan's avatar
      Revert earlier change removing setPreservesCFG from instcombine (r221223) and · 2d393ea6
      Mark Heffernan authored
      change LoopSimplifyPass to be !isCFGOnly.  The motivation for the earlier patch
      (r221223) was that LoopSimplify is not preserved by instcombine though
      setPreservesCFG indicates that it is.  This change fixes the issue
      by making setPreservesCFG no longer imply LoopSimplifyPass, and is therefore less
      invasive.
      
      llvm-svn: 221311
      2d393ea6
  2. Nov 04, 2014
Loading