Skip to content
  1. Feb 16, 2011
  2. Feb 15, 2011
  3. Feb 14, 2011
  4. Feb 13, 2011
    • Chris Lattner's avatar
      Enhance ComputeMaskedBits to know that aligned frameindexes · 46c01a30
      Chris Lattner authored
      have their low bits set to zero.  This allows us to optimize
      out explicit stack alignment code like in stack-align.ll:test4 when
      it is redundant.
      
      Doing this causes the code generator to start turning FI+cst into
      FI|cst all over the place, which is general goodness (that is the
      canonical form) except that various pieces of the code generator
      don't handle OR aggressively.  Fix this by introducing a new
      SelectionDAG::isBaseWithConstantOffset predicate, and using it
      in places that are looking for ADD(X,CST).  The ARM backend in
      particular was missing a lot of addressing mode folding opportunities
      around OR.
      
      llvm-svn: 125470
      46c01a30
    • Chris Lattner's avatar
      Revisit my fix for PR9028: the issue is that DAGCombine was · e95d1950
      Chris Lattner authored
      generating i8 shift amounts for things like i1024 types.  Add
      an assert in getNode to prevent this from occuring in the future,
      fix the buggy transformation, revert my previous patch, and
      document this gotcha in ISDOpcodes.h
      
      llvm-svn: 125465
      e95d1950
    • Chris Lattner's avatar
      remove a now-unneccesary cast. · 9bd7fdff
      Chris Lattner authored
      llvm-svn: 125464
      9bd7fdff
    • Duncan Sands's avatar
      Remove pointless blank line. · b8607093
      Duncan Sands authored
      llvm-svn: 125463
      b8607093
    • Duncan Sands's avatar
      Teach instsimplify that X+Y>=X+Z is the same as Y>=Z if neither side overflows, · d114ab33
      Duncan Sands authored
      plus some variations of this.  According to my auto-simplifier this occurs a lot
      but usually in combination with max/min idioms.  Because max/min aren't handled
      yet this unfortunately doesn't have much effect in the testsuite.
      
      llvm-svn: 125462
      d114ab33
    • Nadav Rotem's avatar
      Fix a regression from r125393; · 27b848af
      Nadav Rotem authored
      It caused a crash in MultiSource/Benchmarks/Bullet.
      Opt hit an assertion with "opt -std-compile-opts" because
      Constant::getAllOnesValue doesn't know how to handle floats.
      
      This patch added a test to reproduce the problem and a check that the
      destination vector is of integer type.
      
      Thank you Benjamin!
      
      llvm-svn: 125459
      27b848af
    • Chris Lattner's avatar
      when legalizing extremely wide shifts, make sure that · d5f0b114
      Chris Lattner authored
      the shift amounts are in a suitably wide type so that
      we don't generate out of range constant shift amounts.
      
      This fixes PR9028.
      
      llvm-svn: 125458
      d5f0b114
Loading