Implement a complete type inference system for dag patterns, based on the
authorChris Lattner <sabre@nondot.org>
Thu, 8 Sep 2005 23:22:48 +0000 (23:22 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 8 Sep 2005 23:22:48 +0000 (23:22 +0000)
commit327076005d608361c9f3b036e9401f14c235a8e3
tree3b0b1b472bf45e7ef2bd37bec418382b0e17e944
parentb85c64c4d882d24fe727f28126f83fce993ed8c8
Implement a complete type inference system for dag patterns, based on the
constraints defined in the DAG node definitions in the .td files.  This
allows us to infer (and check!) the types for all nodes in the current
ppc .td file.  For example, instead of:

Inst pattern EQV:       (set GPRC:i32:$rT, (xor (xor GPRC:i32:$rA, GPRC:i32:$rB), (imm)<<Predicate_immAllOnes>>))

we now fully infer:

Inst pattern EQV:       (set:void GPRC:i32:$rT, (xor:i32 (xor:i32 GPRC:i32:$rA, GPRC:i32:$rB), (imm:i32)<<Predicate_immAllOnes>>))

from:  (set GPRC:$rT, (not (xor GPRC:$rA, GPRC:$rB)))

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23284 91177308-0d34-0410-b5e6-96231b3b80d8
utils/TableGen/DAGISelEmitter.cpp
utils/TableGen/DAGISelEmitter.h