llvm-6502/utils
Chris Lattner 283d1ceb57 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99797 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29 02:02:45 +00:00
..
bugpoint
buildit Use "DISABLE_EDIS" to disable building "edis" explicitly. Don't build it for 2010-03-23 22:15:33 +00:00
count
crosstool
emacs
FileCheck FileCheck: Don't print "possibly intended match" line if it would match the 2010-03-19 18:07:43 +00:00
FileUpdate
fpcmp
git
jedit
lint
lit lit: Add LitTestCase and lit.load_test_suite, for adapting lit based suites for 2010-03-25 07:10:01 +00:00
Misc
not
PerfectShuffle
TableGen Switch pattern sorting predicate from stable sort -> sort, it 2010-03-29 02:02:45 +00:00
unittest
valgrind
vim
cgiplotNLT.pl
check-each-file
codegen-diff
countloc.sh
DSAclean.py
DSAextract.py
findmisopt
findoptdiff
findsym.pl
GenLibDeps.pl
GetSourceVersion
getsrcs.sh
importNLT.pl
llvm-native-gcc
llvm-native-gxx
llvm.grm
llvmdo
llvmgrep
Makefile
makellvm
mkpatch
NewNightlyTest.pl
NightlyTest.gnuplot
NightlyTestTemplate.html
NLT.schema
OldenDataRecover.pl
parseNLT.pl
plotNLT.pl
profile.pl
RegressionFinder.pl
UpdateCMakeLists.pl
userloc.pl
webNLT.pl