OSDN Git Service

[MachineOperand][MIR] Add isRenamable to MachineOperand.
authorGeoff Berry <gberry@codeaurora.org>
Tue, 12 Dec 2017 17:53:59 +0000 (17:53 +0000)
committerGeoff Berry <gberry@codeaurora.org>
Tue, 12 Dec 2017 17:53:59 +0000 (17:53 +0000)
commit3b391fe80e65f144d9e2e31a09e24f00ac7bb230
tree2e73cc0bf11d06fa2c54f3d8b37e17a40fda4cf8
parent9cc4cf09cace7a496734dfcfb5fd3227290e6cdf
[MachineOperand][MIR] Add isRenamable to MachineOperand.

Summary:
Add isRenamable() predicate to MachineOperand.  This predicate can be
used by machine passes after register allocation to determine whether it
is safe to rename a given register operand.  Register operands that
aren't marked as renamable may be required to be assigned their current
register to satisfy constraints that are not captured by the machine
IR (e.g. ABI or ISA constraints).

Reviewers: qcolombet, MatzeB, hfinkel

Subscribers: nemanjai, mcrosier, javed.absar, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320503 91177308-0d34-0410-b5e6-96231b3b80d8
26 files changed:
docs/MIRLangRef.rst
include/llvm/CodeGen/MachineInstrBuilder.h
include/llvm/CodeGen/MachineOperand.h
lib/CodeGen/MIRParser/MILexer.cpp
lib/CodeGen/MIRParser/MILexer.h
lib/CodeGen/MIRParser/MIParser.cpp
lib/CodeGen/MachineOperand.cpp
lib/CodeGen/MachineVerifier.cpp
lib/CodeGen/RegAllocFast.cpp
lib/CodeGen/VirtRegMap.cpp
lib/Target/ARM/ARMBaseInstrInfo.cpp
lib/Target/ARM/ARMExpandPseudoInsts.cpp
lib/Target/ARM/ARMISelLowering.cpp
test/CodeGen/AArch64/arm64-misched-multimmo.ll
test/CodeGen/AMDGPU/shrink-carry.mir
test/CodeGen/AMDGPU/splitkit.mir
test/CodeGen/AMDGPU/stack-slot-color-sgpr-vgpr-spills.mir
test/CodeGen/AMDGPU/subreg_interference.mir
test/CodeGen/AMDGPU/syncscopes.ll
test/CodeGen/Hexagon/regalloc-bad-undef.mir
test/CodeGen/MIR/X86/renamable-register-flag.mir [new file with mode: 0644]
test/CodeGen/PowerPC/byval-agg-info.ll
test/CodeGen/SystemZ/regalloc-fast-invalid-kill-flag.mir
test/CodeGen/X86/tail-merge-debugloc.ll
test/DebugInfo/X86/pr34545.ll
test/DebugInfo/X86/sdag-salvage-add.ll