[PATCH] D74815: [AsmPrinter] Change alignment of .stack_sizes from 1 to PointerSize

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 18 23:37:20 PST 2020


MaskRay created this revision.
MaskRay added reviewers: grimar, respindola.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.

Fixes problem 1 of https://bugs.llvm.org/show_bug.cgi?id=36717


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D74815

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


Index: llvm/test/CodeGen/X86/stack-size-section.ll
===================================================================
--- llvm/test/CodeGen/X86/stack-size-section.ll
+++ llvm/test/CodeGen/X86/stack-size-section.ll
@@ -3,6 +3,7 @@
 ; CHECK-LABEL: func1:
 ; CHECK-NEXT: .Lfunc_begin0:
 ; CHECK: .section .stack_sizes,"o", at progbits,.text{{$}}
+; CHECK-NEXT: .p2align 3
 ; CHECK-NEXT: .quad .Lfunc_begin0
 ; CHECK-NEXT: .byte 8
 define void @func1(i32, i32) #0 {
@@ -14,6 +15,7 @@
 ; CHECK-LABEL: func2:
 ; CHECK-NEXT: .Lfunc_begin1:
 ; CHECK: .section .stack_sizes,"o", at progbits,.text{{$}}
+; CHECK-NEXT: .p2align 3
 ; CHECK-NEXT: .quad .Lfunc_begin1
 ; CHECK-NEXT: .byte 24
 define void @func2() #0 {
Index: llvm/test/CodeGen/SystemZ/stack-size-section.ll
===================================================================
--- llvm/test/CodeGen/SystemZ/stack-size-section.ll
+++ llvm/test/CodeGen/SystemZ/stack-size-section.ll
@@ -3,6 +3,7 @@
 ; CHECK-LABEL: func1:
 ; CHECK-NEXT: .Lfunc_begin0:
 ; CHECK: .section .stack_sizes,"o", at progbits,.text{{$}}
+; CHECK-NEXT: .p2align 3
 ; CHECK-NEXT: .quad .Lfunc_begin0
 ; CHECK-NEXT: .byte 0
 define void @func1(i32, i32) #0 {
@@ -12,6 +13,7 @@
 ; CHECK-LABEL: func2:
 ; CHECK-NEXT: .Lfunc_begin1:
 ; CHECK: .section .stack_sizes,"o", at progbits,.text{{$}}
+; CHECK-NEXT: .p2align 3
 ; CHECK-NEXT: .quad .Lfunc_begin1
 ; CHECK-NEXT: .ascii  "\250\001"
 define void @func2(i32, i32) #0 {
@@ -23,6 +25,7 @@
 ; CHECK-LABEL: func3:
 ; CHECK-NEXT: .Lfunc_begin2:
 ; CHECK: .section .stack_sizes,"o", at progbits,.text{{$}}
+; CHECK-NEXT: .p2align 3
 ; CHECK-NEXT: .quad .Lfunc_begin2
 ; CHECK-NEXT: .ascii  "\250\001"
 define void @func3() #0 {
Index: llvm/test/CodeGen/ARM/stack-size-section.ll
===================================================================
--- llvm/test/CodeGen/ARM/stack-size-section.ll
+++ llvm/test/CodeGen/ARM/stack-size-section.ll
@@ -3,6 +3,7 @@
 ; CHECK-LABEL: func1:
 ; CHECK-NEXT: .Lfunc_begin0:
 ; CHECK: .section .stack_sizes,"o",%progbits,.text{{$}}
+; CHECK-NEXT: .p2align 2
 ; CHECK-NEXT: .long .Lfunc_begin0
 ; CHECK-NEXT: .byte 8
 define void @func1(i32, i32) #0 {
@@ -14,6 +15,7 @@
 ; CHECK-LABEL: func2:
 ; CHECK-NEXT: .Lfunc_begin1:
 ; CHECK: .section .stack_sizes,"o",%progbits,.text{{$}}
+; CHECK-NEXT: .p2align 2
 ; CHECK-NEXT: .long .Lfunc_begin1
 ; CHECK-NEXT: .byte 16
 define void @func2() #0 {
Index: llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
===================================================================
--- llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -1044,8 +1044,10 @@
   OutStreamer->SwitchSection(StackSizeSection);
 
   const MCSymbol *FunctionSymbol = getFunctionBegin();
+  const unsigned PointerSize = getPointerSize();
   uint64_t StackSize = FrameInfo.getStackSize();
-  OutStreamer->emitSymbolValue(FunctionSymbol, TM.getProgramPointerSize());
+  emitAlignment(Align(PointerSize));
+  OutStreamer->emitSymbolValue(FunctionSymbol, PointerSize);
   OutStreamer->emitULEB128IntValue(StackSize);
 
   OutStreamer->PopSection();


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74815.245332.patch
Type: text/x-patch
Size: 3079 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200219/4a0d2175/attachment.bin>


More information about the llvm-commits mailing list