Skip to content
  1. Sep 03, 2010
  2. Mar 29, 2010
    • Chris Lattner's avatar
      Switch pattern sorting predicate from stable sort -> sort, it · f91869b6
      Chris Lattner authored
      doesn't need to be stable because the patterns are fully ordered.
      
      Add a first level sort predicate that orders patterns in this
      order:  1) scalar integer operations 2) scalar floating point 
      3) vector int 4) vector float.  This is a trivial sort on their
      top level pattern type so it is nice and transitive.  The
      benefit of doing this is that simple integer operations are
      much more common than insane vector things and isel was trying
      to match the big complex vector patterns before the simple
      ones because the complexity of the vector operations was much
      higher.  Since they can't both match, it is best (for compile
      time) to try the simple integer ones first.
      
      This cuts down the # failed match attempts on real code by
      quite a bit, for example, this reduces backtracks on crafty
      (as a random example) from 228285 -> 188369.
      
      llvm-svn: 99797
      f91869b6
    • Chris Lattner's avatar
      revert 99795, as mentioned, it is disabled anyway. · 41a15141
      Chris Lattner authored
      llvm-svn: 99796
      41a15141
    • Chris Lattner's avatar
      Check in a (disabled) failed attempt to improve the ordering of · a7926015
      Chris Lattner authored
      patterns within the generated matcher.  This works great except
      that the sort fails because the relation defined isn't 
      transitive.  I have a much simpler solution coming next, but want
      to archive the code.
      
      llvm-svn: 99795
      a7926015
    • Chris Lattner's avatar
      print the complexity of the pattern being matched in the · 05925fe1
      Chris Lattner authored
      comment in the generated table.
      
      llvm-svn: 99794
      05925fe1
  3. Mar 19, 2010
  4. Mar 15, 2010
    • Chris Lattner's avatar
      Completely rewrite tblgen's type inference mechanism, · cabe037b
      Chris Lattner authored
      changing the primary datastructure from being a 
      "std::vector<unsigned char>" to being a new TypeSet class
      that actually has (gasp) invariants!
      
      This changes more things than I remember, but one major
      innovation here is that it enforces that named input 
      values agree in type with their output values.
      
      This also eliminates code that transparently assumes (in 
      some cases) that SDNodeXForm input/output types are the
      same, because this is wrong in many case.
      
      This also eliminates a bug which caused a lot of ambiguous
      patterns to go undetected, where a register class would
      sometimes pick the first possible type, causing an
      ambiguous pattern to get arbitrary results.
      
      With all the recent target changes, this causes no 
      functionality change!
      
      llvm-svn: 98534
      cabe037b
  5. Mar 02, 2010
  6. Mar 01, 2010
  7. Feb 28, 2010
  8. Feb 25, 2010
  9. Feb 24, 2010
  10. Feb 21, 2010
  11. Feb 18, 2010
  12. Feb 17, 2010
  13. Feb 16, 2010
Loading