diff options
author | Tim Northover <tnorthover@apple.com> | 2016-07-12 22:23:42 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2016-07-12 22:23:42 +0000 |
commit | 72eebfa4b0f3ac876d5600558ffca08d3893c5f8 (patch) | |
tree | 05f8805853dfbf69d5e38292650fea981aedb0c0 | |
parent | 786724a22ecff6afa9484714be8448429fdd021c (diff) | |
download | bcm5719-llvm-72eebfa4b0f3ac876d5600558ffca08d3893c5f8.tar.gz bcm5719-llvm-72eebfa4b0f3ac876d5600558ffca08d3893c5f8.zip |
GlobalISel: freeze reserved regs after IRTranslator.
We can freeze the registers after the MachineFrameInfo has been configured (by
telling it about calls, inline asm, ...). This doesn't happen at all yet, but
will be part of IR translation.
Fixes -verify-machineinstrs assertion.
llvm-svn: 275221
-rw-r--r-- | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | 5 | ||||
-rw-r--r-- | llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp index f4f1906be81..b8a960cfac7 100644 --- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -155,5 +155,10 @@ bool IRTranslator::runOnMachineFunction(MachineFunction &MF) { } } } + + // Now that the MachineFrameInfo has been configured, no further changes to + // the reserved registers are possible. + MRI->freezeReservedRegs(MF); + return false; } diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll index 2ce035e1dc0..7d416d9b0ad 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll @@ -1,4 +1,4 @@ -; RUN: llc -O0 -stop-after=irtranslator -global-isel %s -o - 2>&1 | FileCheck %s +; RUN: llc -O0 -stop-after=irtranslator -global-isel -verify-machineinstrs %s -o - 2>&1 | FileCheck %s ; REQUIRES: global-isel ; This file checks that the translation from llvm IR to generic MachineInstr ; is correct. |