[SystemZ] Remove most hard-coded R1D instances for sibcalls
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Tue, 15 Dec 2020 15:18:43 +0000 (16:18 +0100)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Tue, 15 Dec 2020 15:31:18 +0000 (16:31 +0100)
commitebef92169ca5a50fb8aeec08f35ccb919311acc1
treeac9c9f67a485eb854ad844a17425057c50abd797
parente2dc306b1ac71258e6ce40a66e778527f282c355
[SystemZ] Remove most hard-coded R1D instances for sibcalls

Indirect sibling calls need to use %r1 to hold the target address.
This is currently hard-coded in many places.  This is not only
unnecessary, but makes future changes in this area difficult.

This patch now encodes the target address as operand without
hard coding a register in most places throughout the MI back-end.
Code generation still always uses %r1, but this is now decided
solely in one place in SystemZTargetLowering::LowerCall.

NFC intended.
llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
llvm/lib/Target/SystemZ/SystemZElimCompare.cpp
llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
llvm/lib/Target/SystemZ/SystemZInstrInfo.td