mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-04 09:45:00 +00:00
Enable StackMap Serialization for COFF
Summary This change turns on the emission of __LLVM_Stackmaps section when generating COFF binaries. Test Plan Added a scenario to the test case: test\CodeGen\X86\statepoint-stackmap-format.ll. Code Review: http://reviews.llvm.org/D10680 llvm-svn: 240613
This commit is contained in:
parent
89c36fab4b
commit
c6d536f7a9
@ -733,6 +733,11 @@ void MCObjectFileInfo::initCOFFMCObjectFileInfo(Triple T) {
|
||||
".tls$", COFF::IMAGE_SCN_CNT_INITIALIZED_DATA | COFF::IMAGE_SCN_MEM_READ |
|
||||
COFF::IMAGE_SCN_MEM_WRITE,
|
||||
SectionKind::getDataRel());
|
||||
|
||||
StackMapSection = Ctx->getCOFFSection(".llvm_stackmaps",
|
||||
COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
|
||||
COFF::IMAGE_SCN_MEM_READ,
|
||||
SectionKind::getReadOnly());
|
||||
}
|
||||
|
||||
void MCObjectFileInfo::InitMCObjectFileInfo(const Triple &TheTriple,
|
||||
|
@ -725,6 +725,8 @@ void X86AsmPrinter::EmitEndOfAsmFile(Module &M) {
|
||||
for (auto & Symbol : DLLExportedFns)
|
||||
GenerateExportDirective(Symbol, /*IsData=*/false);
|
||||
}
|
||||
|
||||
SM.serializeToStackMapSection();
|
||||
}
|
||||
|
||||
if (TT.isOSBinFormatELF()) {
|
||||
|
@ -1,10 +1,11 @@
|
||||
; RUN: llc < %s | FileCheck %s
|
||||
; RUN: llc < %s -mtriple="x86_64-pc-linux-gnu" | FileCheck %s
|
||||
; RUN: llc < %s -mtriple="x86_64-pc-win64-coff" | FileCheck %s
|
||||
|
||||
; This test is a sanity check to ensure statepoints are generating StackMap
|
||||
; sections correctly. This is not intended to be a rigorous test of the
|
||||
; StackMap format (see the stackmap tests for that).
|
||||
|
||||
target datalayout = "e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-pc-linux-gnu"
|
||||
|
||||
declare zeroext i1 @return_i1()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user