summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGClass.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-03-29 02:02:45 +0000
committerChris Lattner <sabre@nondot.org>2010-03-29 02:02:45 +0000
commitf91869b6196871dbd265d8b23484779521b738a3 (patch)
tree5f13b03bdac89c9b3fa65d10fcaf64c9db3fdc98 /clang/lib/CodeGen/CGClass.cpp
parent41a15141c9f7d0908df0f2626650f2c849c890b9 (diff)
downloadbcm5719-llvm-f91869b6196871dbd265d8b23484779521b738a3.tar.gz
bcm5719-llvm-f91869b6196871dbd265d8b23484779521b738a3.zip
Switch pattern sorting predicate from stable sort -> sort, it
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
Diffstat (limited to 'clang/lib/CodeGen/CGClass.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud