[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