[tblgen] Add getOperatorAsDef() to Record
authorDaniel Sanders <daniel_l_sanders@apple.com>
Tue, 8 Oct 2019 18:41:32 +0000 (18:41 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Tue, 8 Oct 2019 18:41:32 +0000 (18:41 +0000)
commit4b7cabf1e16ff840ef4c7e5c4d04891276141b7c
treef7074172e7fa1d008e0b6532cfdfaaffc0a2743e
parent28fcc033c883f95416e920ff05f629df2c560a23
[tblgen] Add getOperatorAsDef() to Record

Summary:
While working with DagInit's, it's often the case that you expect the
operator to be a reference to a def. This patch adds a wrapper for this
common case to reduce the amount of boilerplate callers need to duplicate
repeatedly.

getOperatorAsDef() returns the record if the DagInit has an operator that is
a DefInit. Otherwise, it prints a fatal error.

There's only a few pre-existing examples in LLVM at the moment and I've
left a few instances of the code this simplifies as they had more specific
error messages than the generic one this produces. I'm going to be using
this a fair bit in my subsequent patches.

Reviewers: bogner, volkan, nhaehnle

Reviewed By: nhaehnle

Subscribers: nhaehnle, hiraditya, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, lenary, s.egerton, pzheng, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68424

llvm-svn: 374101
llvm/include/llvm/TableGen/Record.h
llvm/lib/TableGen/Record.cpp
llvm/utils/TableGen/AsmWriterEmitter.cpp
llvm/utils/TableGen/RISCVCompressInstEmitter.cpp