[TableGen] Support non-def operators in !getdagop (#77531)
`!getdagop` expects the dag operator to be a def, and errors out if it's not. While that's true in most cases, when multiclasses are involved, the late resolution of the dag operator can result in it not being a def yet, but still have a proper type, wich is required to check against the optional parameter Ty in `!getdagop<Ty>`. e.g, in the following dag: ``` (!cast<TestInstruction>(TestInstructionAndPattern::NAME) foo) ``` the operator is a UnOpInit, but all we need here is to check its type. This fixes a bug where !getdagop is used to query the dag operator that is dependent on the multiclass, which is not yet resolved to a def. Once the folding is performed, the field becomes a record that can be queried.
Loading
Please sign in to comment