[globalisel][tablegen] Add infrastructure to potentially allow BuildMIAction to choos...
authorDaniel Sanders <daniel_l_sanders@apple.com>
Tue, 31 Oct 2017 18:50:24 +0000 (18:50 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Tue, 31 Oct 2017 18:50:24 +0000 (18:50 +0000)
commita7b75264167b7b73d6a1c2d5cfec1befb198a3db
treed58501224372945bed2afdd16f0b3e11996a9a89
parenta5793820fdce733ab65a1181a9b0ac805d85be7b
[globalisel][tablegen] Add infrastructure to potentially allow BuildMIAction to choose a mutatable instruction. NFC

Prepare for multiple instruction emission by allowing BuildMIAction to
search for a suitable matcher that will support mutation.

This patch deliberately neglects to add matchers aside from the root to
preserve NFC. That said, it should be noted that until we support mutations
other than just the opcode the chances of finding a non-root instruction
for which canMutate() is true, is essentially zero. Furthermore in the
presence of multi-instruction emission the chances of finding any
instruction for which canMutate() is true is also zero. Nevertheless, we
can't continue to require that all BuildMIAction's consider the root of the match
to be recyclable due to the risk of recycling it twice in the same rule.

llvm-svn: 317022
llvm/utils/TableGen/GlobalISelEmitter.cpp