[llvm] r328581 - Use local symbols for creating .stack-size.

Rafael Espindola via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 26 13:40:22 PDT 2018


Author: rafael
Date: Mon Mar 26 13:40:22 2018
New Revision: 328581

URL: http://llvm.org/viewvc/llvm-project?rev=328581&view=rev
Log:
Use local symbols for creating .stack-size.

Modified:
    llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    llvm/trunk/test/CodeGen/ARM/stack-size-section.ll
    llvm/trunk/test/CodeGen/SystemZ/stack-size-section.ll
    llvm/trunk/test/CodeGen/X86/stack-size-section.ll

Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=328581&r1=328580&r2=328581&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Mon Mar 26 13:40:22 2018
@@ -978,7 +978,7 @@ void AsmPrinter::emitStackSizeSection(co
   OutStreamer->PushSection();
   OutStreamer->SwitchSection(StackSizeSection);
 
-  const MCSymbol *FunctionSymbol = getSymbol(&MF.getFunction());
+  const MCSymbol *FunctionSymbol = getFunctionBegin();
   uint64_t StackSize = FrameInfo.getStackSize();
   OutStreamer->EmitSymbolValue(FunctionSymbol, TM.getProgramPointerSize());
   OutStreamer->EmitULEB128IntValue(StackSize);
@@ -1506,7 +1506,8 @@ void AsmPrinter::SetupMachineFunction(Ma
   CurrentFnBegin = nullptr;
   CurExceptionSym = nullptr;
   bool NeedsLocalForSize = MAI->needsLocalForSize();
-  if (needFuncLabelsForEHOrDebugInfo(MF, MMI) || NeedsLocalForSize) {
+  if (needFuncLabelsForEHOrDebugInfo(MF, MMI) || NeedsLocalForSize ||
+      MF.getTarget().Options.EmitStackSizeSection) {
     CurrentFnBegin = createTempSymbol("func_begin");
     if (NeedsLocalForSize)
       CurrentFnSymForSize = CurrentFnBegin;

Modified: llvm/trunk/test/CodeGen/ARM/stack-size-section.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/stack-size-section.ll?rev=328581&r1=328580&r2=328581&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/stack-size-section.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/stack-size-section.ll Mon Mar 26 13:40:22 2018
@@ -1,8 +1,9 @@
 ; RUN: llc < %s -mtriple=armv7-linux -stack-size-section | FileCheck %s
 
 ; CHECK-LABEL: func1:
+; CHECK-NEXT: .Lfunc_begin0:
 ; CHECK: .section .stack_sizes,"",%progbits
-; CHECK-NEXT: .long func1
+; CHECK-NEXT: .long .Lfunc_begin0
 ; CHECK-NEXT: .byte 8
 define void @func1(i32, i32) #0 {
   alloca i32, align 4
@@ -11,8 +12,9 @@ define void @func1(i32, i32) #0 {
 }
 
 ; CHECK-LABEL: func2:
+; CHECK-NEXT: .Lfunc_begin1:
 ; CHECK: .section .stack_sizes,"",%progbits
-; CHECK-NEXT: .long func2
+; CHECK-NEXT: .long .Lfunc_begin1
 ; CHECK-NEXT: .byte 16
 define void @func2() #0 {
   alloca i32, align 4

Modified: llvm/trunk/test/CodeGen/SystemZ/stack-size-section.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/SystemZ/stack-size-section.ll?rev=328581&r1=328580&r2=328581&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/SystemZ/stack-size-section.ll (original)
+++ llvm/trunk/test/CodeGen/SystemZ/stack-size-section.ll Mon Mar 26 13:40:22 2018
@@ -1,16 +1,18 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -stack-size-section | FileCheck %s
 
 ; CHECK-LABEL: func1:
+; CHECK-NEXT: .Lfunc_begin0:
 ; CHECK: .section .stack_sizes,"", at progbits
-; CHECK-NEXT: .quad func1
+; CHECK-NEXT: .quad .Lfunc_begin0
 ; CHECK-NEXT: .byte 0
 define void @func1(i32, i32) #0 {
   ret void
 }
 
 ; CHECK-LABEL: func2:
+; CHECK-NEXT: .Lfunc_begin1:
 ; CHECK: .section .stack_sizes,"", at progbits
-; CHECK-NEXT: .quad func2
+; CHECK-NEXT: .quad .Lfunc_begin1
 ; CHECK-NEXT: .ascii  "\250\001"
 define void @func2(i32, i32) #0 {
   alloca i32, align 4
@@ -19,8 +21,9 @@ define void @func2(i32, i32) #0 {
 }
 
 ; CHECK-LABEL: func3:
+; CHECK-NEXT: .Lfunc_begin2:
 ; CHECK: .section .stack_sizes,"", at progbits
-; CHECK-NEXT: .quad func3
+; CHECK-NEXT: .quad .Lfunc_begin2
 ; CHECK-NEXT: .ascii  "\250\001"
 define void @func3() #0 {
   alloca i32, align 4

Modified: llvm/trunk/test/CodeGen/X86/stack-size-section.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/stack-size-section.ll?rev=328581&r1=328580&r2=328581&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/stack-size-section.ll (original)
+++ llvm/trunk/test/CodeGen/X86/stack-size-section.ll Mon Mar 26 13:40:22 2018
@@ -1,8 +1,9 @@
 ; RUN: llc < %s -mtriple=x86_64-linux -stack-size-section | FileCheck %s
 
 ; CHECK-LABEL: func1:
+; CHECK-NEXT: .Lfunc_begin0:
 ; CHECK: .section .stack_sizes,"", at progbits
-; CHECK-NEXT: .quad func1
+; CHECK-NEXT: .quad .Lfunc_begin0
 ; CHECK-NEXT: .byte 8
 define void @func1(i32, i32) #0 {
   alloca i32, align 4
@@ -11,8 +12,9 @@ define void @func1(i32, i32) #0 {
 }
 
 ; CHECK-LABEL: func2:
+; CHECK-NEXT: .Lfunc_begin1:
 ; CHECK: .section .stack_sizes,"", at progbits
-; CHECK-NEXT: .quad func2
+; CHECK-NEXT: .quad .Lfunc_begin1
 ; CHECK-NEXT: .byte 24
 define void @func2() #0 {
   alloca i32, align 4




More information about the llvm-commits mailing list