[all-commits] [llvm/llvm-project] 0e894e: [TableGen] Permit dag operators to be unset.
Simon Tatham via All-commits
all-commits at lists.llvm.org
Tue Dec 10 03:09:47 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 0e894edee18f74ae66598f2121d8bfb909f6288e
https://github.com/llvm/llvm-project/commit/0e894edee18f74ae66598f2121d8bfb909f6288e
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2019-12-10 (Tue, 10 Dec 2019)
Changed paths:
M llvm/lib/TableGen/Record.cpp
M llvm/lib/TableGen/TGParser.cpp
A llvm/test/TableGen/unsetop.td
Log Message:
-----------
[TableGen] Permit dag operators to be unset.
This is not a new semantic feature. The syntax `(? 1, 2, 3)` was
disallowed by the parser in a dag //expression//, but there were
already ways to sneak a `?` into the operator field of a dag
//value//, e.g. by initializing it from a class template parameter
which is then set to `?` by the instantiating `def`.
This patch makes `?` in the operator slot syntactically legal, so it's
now easy to construct dags with an unset operator. Also, the semantics
of `!con` are relaxed so that it will allow a combination of set and
unset operator fields in the dag nodes it's concatenating, with the
restriction that all the operators that are //not// unset still have
to agree with each other.
Reviewers: hfinkel, nhaehnle
Reviewed By: hfinkel, nhaehnle
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71195
More information about the All-commits
mailing list