Skip to content
  • 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
Loading