Allow TableGen DAG arguments to be just a name.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Sun, 24 Mar 2013 19:36:51 +0000 (19:36 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Sun, 24 Mar 2013 19:36:51 +0000 (19:36 +0000)
commit4717fd4c0faf454ff37f133709320d0cfec0da89
treea0db547668fddbb2736d85d9cb0fc3fe2cacbc96
parent9c22886a0105241b7bdc0f77a61bcae36e586a41
Allow TableGen DAG arguments to be just a name.

DAG arguments can optionally be named:

  (dag node, node:$name)

With this change, the node is also optional:

  (dag node, node:$name, $name)

The missing node is treated as an UnsetInit, so the above is equivalent
to:

  (dag node, node:$name, ?:$name)

This syntax is useful in output patterns where we currently require the
types of variables to be repeated:

  def : Pat<(subc i32:$b, i32:$c), (SUBCCrr i32:$b, i32:$c)>;

This is preferable:

  def : Pat<(subc i32:$b, i32:$c), (SUBCCrr $b, $c)>;

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177843 91177308-0d34-0410-b5e6-96231b3b80d8
docs/TableGen/LangRef.rst
lib/TableGen/TGParser.cpp
test/TableGen/Dag.td