diff options
author | George Rimar <grimar@accesssoftek.com> | 2018-06-22 10:27:33 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2018-06-22 10:27:33 +0000 |
commit | 6d448da1bef6ff485b1588136433ba5a58b2ccb0 (patch) | |
tree | e343cf1fa4e0ea268c3ed7622452cf83c248222b | |
parent | e14485a0c61ab217f7a2d6f5c619d0158ad67492 (diff) | |
download | bcm5719-llvm-6d448da1bef6ff485b1588136433ba5a58b2ccb0.tar.gz bcm5719-llvm-6d448da1bef6ff485b1588136433ba5a58b2ccb0.zip |
Revert r335332 "[MC] - Add .stack_size sections into groups and link them with .text"
It broke bots.
http://lab.llvm.org:8011/builders/clang-ppc64le-linux-lnt/builds/12891
http://lab.llvm.org:8011/builders/clang-cmake-x86_64-sde-avx512-linux/builds/9443
http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-buildserver/builds/25551
llvm-svn: 335333
-rw-r--r-- | llvm/include/llvm/MC/MCObjectFileInfo.h | 5 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/MC/MCObjectFileInfo.cpp | 21 | ||||
-rw-r--r-- | llvm/test/CodeGen/ARM/stack-size-section.ll | 4 | ||||
-rw-r--r-- | llvm/test/CodeGen/SystemZ/stack-size-section.ll | 6 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/stack-size-section-function-sections.ll | 26 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/stack-size-section.ll | 21 |
7 files changed, 9 insertions, 77 deletions
diff --git a/llvm/include/llvm/MC/MCObjectFileInfo.h b/llvm/include/llvm/MC/MCObjectFileInfo.h index 898ca71035c..d50c052a99a 100644 --- a/llvm/include/llvm/MC/MCObjectFileInfo.h +++ b/llvm/include/llvm/MC/MCObjectFileInfo.h @@ -14,14 +14,12 @@ #ifndef LLVM_MC_MCOBJECTFILEINFO_H #define LLVM_MC_MCOBJECTFILEINFO_H -#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/Triple.h" #include "llvm/Support/CodeGen.h" namespace llvm { class MCContext; class MCSection; -class MCSymbol; class MCObjectFileInfo { protected: @@ -160,7 +158,6 @@ protected: /// Section containing metadata on function stack sizes. MCSection *StackSizesSection; - mutable DenseMap<const MCSymbol *, unsigned> StackSizesUniquing; // ELF specific sections. MCSection *DataRelROSection; @@ -302,7 +299,7 @@ public: MCSection *getStackMapSection() const { return StackMapSection; } MCSection *getFaultMapSection() const { return FaultMapSection; } - MCSection *getStackSizesSection(const MCSection &TextSec) const; + MCSection *getStackSizesSection() const { return StackSizesSection; } // ELF specific sections. MCSection *getDataRelROSection() const { return DataRelROSection; } diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 1b1edfbd154..9a74917b05e 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -989,8 +989,7 @@ void AsmPrinter::emitStackSizeSection(const MachineFunction &MF) { if (!MF.getTarget().Options.EmitStackSizeSection) return; - MCSection *StackSizeSection = - getObjFileLowering().getStackSizesSection(*getCurrentSection()); + MCSection *StackSizeSection = getObjFileLowering().getStackSizesSection(); if (!StackSizeSection) return; diff --git a/llvm/lib/MC/MCObjectFileInfo.cpp b/llvm/lib/MC/MCObjectFileInfo.cpp index 2b5c9c7762b..b075f225ed2 100644 --- a/llvm/lib/MC/MCObjectFileInfo.cpp +++ b/llvm/lib/MC/MCObjectFileInfo.cpp @@ -948,24 +948,3 @@ MCSection *MCObjectFileInfo::getDwarfTypesSection(uint64_t Hash) const { return Ctx->getELFSection(".debug_types", ELF::SHT_PROGBITS, ELF::SHF_GROUP, 0, utostr(Hash)); } - -MCSection * -MCObjectFileInfo::getStackSizesSection(const MCSection &TextSec) const { - if (Env != IsELF) - return StackSizesSection; - - const MCSectionELF &ElfSec = static_cast<const MCSectionELF &>(TextSec); - unsigned Flags = ELF::SHF_LINK_ORDER; - StringRef GroupName; - if (const MCSymbol *Group = ElfSec.getGroup()) { - GroupName = Group->getName(); - Flags |= ELF::SHF_GROUP; - } - - const MCSymbol *Link = TextSec.getBeginSymbol(); - auto It = StackSizesUniquing.insert({Link, StackSizesUniquing.size()}); - unsigned UniqueID = It.first->second; - - return Ctx->getELFSection(".stack_sizes", ELF::SHT_PROGBITS, Flags, 0, - GroupName, UniqueID, cast<MCSymbolELF>(Link)); -} diff --git a/llvm/test/CodeGen/ARM/stack-size-section.ll b/llvm/test/CodeGen/ARM/stack-size-section.ll index 10f156439e3..142261a9f2c 100644 --- a/llvm/test/CodeGen/ARM/stack-size-section.ll +++ b/llvm/test/CodeGen/ARM/stack-size-section.ll @@ -2,7 +2,7 @@ ; CHECK-LABEL: func1: ; CHECK-NEXT: .Lfunc_begin0: -; CHECK: .section .stack_sizes,"o",%progbits,.text,unique,0 +; CHECK: .section .stack_sizes,"",%progbits ; CHECK-NEXT: .long .Lfunc_begin0 ; CHECK-NEXT: .byte 8 define void @func1(i32, i32) #0 { @@ -13,7 +13,7 @@ define void @func1(i32, i32) #0 { ; CHECK-LABEL: func2: ; CHECK-NEXT: .Lfunc_begin1: -; CHECK: .section .stack_sizes,"o",%progbits,.text,unique,0 +; CHECK: .section .stack_sizes,"",%progbits ; CHECK-NEXT: .long .Lfunc_begin1 ; CHECK-NEXT: .byte 16 define void @func2() #0 { diff --git a/llvm/test/CodeGen/SystemZ/stack-size-section.ll b/llvm/test/CodeGen/SystemZ/stack-size-section.ll index 6aacc705115..f0e421f957f 100644 --- a/llvm/test/CodeGen/SystemZ/stack-size-section.ll +++ b/llvm/test/CodeGen/SystemZ/stack-size-section.ll @@ -2,7 +2,7 @@ ; CHECK-LABEL: func1: ; CHECK-NEXT: .Lfunc_begin0: -; CHECK: .section .stack_sizes,"o",@progbits,.text,unique,0 +; CHECK: .section .stack_sizes,"",@progbits ; CHECK-NEXT: .quad .Lfunc_begin0 ; CHECK-NEXT: .byte 0 define void @func1(i32, i32) #0 { @@ -11,7 +11,7 @@ define void @func1(i32, i32) #0 { ; CHECK-LABEL: func2: ; CHECK-NEXT: .Lfunc_begin1: -; CHECK: .section .stack_sizes,"o",@progbits,.text,unique,0 +; CHECK: .section .stack_sizes,"",@progbits ; CHECK-NEXT: .quad .Lfunc_begin1 ; CHECK-NEXT: .ascii "\250\001" define void @func2(i32, i32) #0 { @@ -22,7 +22,7 @@ define void @func2(i32, i32) #0 { ; CHECK-LABEL: func3: ; CHECK-NEXT: .Lfunc_begin2: -; CHECK: .section .stack_sizes,"o",@progbits,.text,unique,0 +; CHECK: .section .stack_sizes,"",@progbits ; CHECK-NEXT: .quad .Lfunc_begin2 ; CHECK-NEXT: .ascii "\250\001" define void @func3() #0 { diff --git a/llvm/test/CodeGen/X86/stack-size-section-function-sections.ll b/llvm/test/CodeGen/X86/stack-size-section-function-sections.ll deleted file mode 100644 index c352bfe032c..00000000000 --- a/llvm/test/CodeGen/X86/stack-size-section-function-sections.ll +++ /dev/null @@ -1,26 +0,0 @@ -; RUN: llc < %s -mtriple=x86_64-linux -stack-size-section -function-sections | FileCheck %s - -; Check we add SHF_LINK_ORDER for .stack_sizes and link it with the corresponding .text sections. -; CHECK: .section .text._Z3barv,"ax",@progbits -; CHECK: .section .stack_sizes,"o",@progbits,.text._Z3barv,unique,0 -; CHECK: .section .text._Z3foov,"ax",@progbits -; CHECK: .section .stack_sizes,"o",@progbits,.text._Z3foov,unique,1 - -; Check we add .stack_size section to a COMDAT group with the corresponding .text section if such a COMDAT exists. -; CHECK: .section .text._Z4fooTIiET_v,"axG",@progbits,_Z4fooTIiET_v,comdat -; CHECK: .section .stack_sizes,"Go",@progbits,_Z4fooTIiET_v,comdat,.text._Z4fooTIiET_v,unique,2 - -$_Z4fooTIiET_v = comdat any - -define dso_local i32 @_Z3barv() { - ret i32 0 -} - -define dso_local i32 @_Z3foov() { - %1 = call i32 @_Z4fooTIiET_v() - ret i32 %1 -} - -define linkonce_odr dso_local i32 @_Z4fooTIiET_v() comdat { - ret i32 0 -} diff --git a/llvm/test/CodeGen/X86/stack-size-section.ll b/llvm/test/CodeGen/X86/stack-size-section.ll index 7e7ba5b9d4e..80fa2ccf6cc 100644 --- a/llvm/test/CodeGen/X86/stack-size-section.ll +++ b/llvm/test/CodeGen/X86/stack-size-section.ll @@ -2,7 +2,7 @@ ; CHECK-LABEL: func1: ; CHECK-NEXT: .Lfunc_begin0: -; CHECK: .section .stack_sizes,"o",@progbits +; CHECK: .section .stack_sizes,"",@progbits ; CHECK-NEXT: .quad .Lfunc_begin0 ; CHECK-NEXT: .byte 8 define void @func1(i32, i32) #0 { @@ -13,7 +13,7 @@ define void @func1(i32, i32) #0 { ; CHECK-LABEL: func2: ; CHECK-NEXT: .Lfunc_begin1: -; CHECK: .section .stack_sizes,"o",@progbits +; CHECK: .section .stack_sizes,"",@progbits ; CHECK-NEXT: .quad .Lfunc_begin1 ; CHECK-NEXT: .byte 24 define void @func2() #0 { @@ -22,23 +22,6 @@ define void @func2() #0 { ret void } -; Check that we still put .stack_sizes into the corresponding COMDAT group if any. -; CHECK: .section .text._Z4fooTIiET_v,"axG",@progbits,_Z4fooTIiET_v,comdat -; CHECK: .section .stack_sizes,"Go",@progbits,_Z4fooTIiET_v,comdat,.text._Z4fooTIiET_v,unique,1 -$_Z4fooTIiET_v = comdat any -define linkonce_odr dso_local i32 @_Z4fooTIiET_v() comdat { - ret i32 0 -} - -; Check that we assign a unique ID to .stack_sizes if it is linked with a unique .text section. -; CHECK: .section .text.func3,"ax",@progbits -; CHECK: .section .stack_sizes,"o",@progbits,.text.func3,unique,2 -define dso_local i32 @func3() section ".text.func3" { - %1 = alloca i32, align 4 - store i32 0, i32* %1, align 4 - ret i32 0 -} - ; CHECK-LABEL: dynalloc: ; CHECK-NOT: .section .stack_sizes define void @dynalloc(i32 %N) #0 { |