summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2018-06-22 10:27:33 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2018-06-22 10:27:33 +0000
commit6d448da1bef6ff485b1588136433ba5a58b2ccb0 (patch)
treee343cf1fa4e0ea268c3ed7622452cf83c248222b
parente14485a0c61ab217f7a2d6f5c619d0158ad67492 (diff)
downloadbcm5719-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.h5
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp3
-rw-r--r--llvm/lib/MC/MCObjectFileInfo.cpp21
-rw-r--r--llvm/test/CodeGen/ARM/stack-size-section.ll4
-rw-r--r--llvm/test/CodeGen/SystemZ/stack-size-section.ll6
-rw-r--r--llvm/test/CodeGen/X86/stack-size-section-function-sections.ll26
-rw-r--r--llvm/test/CodeGen/X86/stack-size-section.ll21
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 {
OpenPOWER on IntegriCloud