Reimplement BuildResultOperands to be in terms of the result instruction's
authorChris Lattner <sabre@nondot.org>
Sat, 6 Nov 2010 07:14:44 +0000 (07:14 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 6 Nov 2010 07:14:44 +0000 (07:14 +0000)
commit662e5a30e864e71111b885d3da3cdd184772035d
tree0494649c5ff40effd8b73efa44f9844d0c9f4497
parent3f2c8e474b8775aa1f3c2c0cb817b7f9f564e068
Reimplement BuildResultOperands to be in terms of the result instruction's
operand list instead of the operand list redundantly declared on the alias
or instruction.

With this change, we finally remove the ins/outs list on the alias.  Before:
  def : InstAlias<(outs GR16:$dst), (ins GR8 :$src),
                  "movsx $src, $dst",
                  (MOVSX16rr8W GR16:$dst, GR8:$src)>;
After:
  def : InstAlias<"movsx $src, $dst",
                  (MOVSX16rr8W GR16:$dst, GR8:$src)>;

This also makes the alias mechanism more general and powerful, which will
be exploited in subsequent patches.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118329 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/Target.td
lib/Target/X86/X86InstrInfo.td
utils/TableGen/AsmMatcherEmitter.cpp
utils/TableGen/CodeGenInstruction.cpp
utils/TableGen/CodeGenInstruction.h