[llvm] r195574 - [SparcV9]: Do not emit .register directives for global registers that are clobbered by calls but not used in the function itself.
Venkatraman Govindaraju
venkatra at cs.wisc.edu
Sun Nov 24 10:41:49 PST 2013
Author: venkatra
Date: Sun Nov 24 12:41:49 2013
New Revision: 195574
URL: http://llvm.org/viewvc/llvm-project?rev=195574&view=rev
Log:
[SparcV9]: Do not emit .register directives for global registers that are clobbered by calls but not used in the function itself.
Modified:
llvm/trunk/lib/Target/Sparc/SparcAsmPrinter.cpp
llvm/trunk/test/CodeGen/SPARC/64abi.ll
Modified: llvm/trunk/lib/Target/Sparc/SparcAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/SparcAsmPrinter.cpp?rev=195574&r1=195573&r2=195574&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Sparc/SparcAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/Sparc/SparcAsmPrinter.cpp Sun Nov 24 12:41:49 2013
@@ -88,7 +88,7 @@ void SparcAsmPrinter::EmitFunctionBodySt
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);
}
Modified: llvm/trunk/test/CodeGen/SPARC/64abi.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/SPARC/64abi.ll?rev=195574&r1=195573&r2=195574&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/SPARC/64abi.ll (original)
+++ llvm/trunk/test/CodeGen/SPARC/64abi.ll Sun Nov 24 12:41:49 2013
@@ -380,8 +380,6 @@ define signext i32 @ret_nozext(i32 signe
; 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) {
More information about the llvm-commits
mailing list