[SparcV9]: Do not emit .register directives for global registers that are clobbered by calls but not used in the function itself.

llvm-svn: 195574
This commit is contained in:
Venkatraman Govindaraju 2013-11-24 18:41:49 +00:00
parent 0c27a5ac2c
commit 73dd53211d
2 changed files with 1 additions and 3 deletions

View File

@ -88,7 +88,7 @@ void SparcAsmPrinter::EmitFunctionBodyStart() {
const unsigned globalRegs[] = { SP::G2, SP::G3, SP::G6, SP::G7, 0 };
for (unsigned i = 0; globalRegs[i] != 0; ++i) {
unsigned reg = globalRegs[i];
if (!MRI.isPhysRegUsed(reg))
if (MRI.use_empty(reg))
continue;
EmitGlobalRegisterDecl(reg);
}

View File

@ -380,8 +380,6 @@ define signext i32 @ret_nozext(i32 signext %a0) {
; CHECK-LABEL: test_register_directive
; CHECK: .register %g2, #scratch
; CHECK: .register %g3, #scratch
; CHECK: .register %g6, #ignore
; CHECK: .register %g7, #ignore
; CHECK: add %i0, 2, %g2
; CHECK: add %i0, 3, %g3
define i32 @test_register_directive(i32 %i0) {