add a new OPC_SwitchOpcode which is semantically equivalent
authorChris Lattner <sabre@nondot.org>
Mon, 1 Mar 2010 06:59:22 +0000 (06:59 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 1 Mar 2010 06:59:22 +0000 (06:59 +0000)
commiteb66921adb943ea841e72c8eee4777607c48b70e
tree3fdd7526a69161b2a068815424b87456b8f442cc
parentc99b5a25bb7ea5ed14e242d16dbfd683dba68f4a
add a new OPC_SwitchOpcode which is semantically equivalent
to a scope where every child starts with a CheckOpcode, but
executes more efficiently.  Enhance DAGISelMatcherOpt to
form it.

This also fixes a bug in CheckOpcode: apparently the SDNodeInfo
objects are not pointer comparable, we have to compare the
enum name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97438 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/SelectionDAGISel.h
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
utils/TableGen/DAGISelMatcher.cpp
utils/TableGen/DAGISelMatcher.h
utils/TableGen/DAGISelMatcherEmitter.cpp
utils/TableGen/DAGISelMatcherOpt.cpp