diff --git a/docs/StackMaps.rst b/docs/StackMaps.rst index 57c37ea2f5c..0dac62b595d 100644 --- a/docs/StackMaps.rst +++ b/docs/StackMaps.rst @@ -314,11 +314,6 @@ format of this section follows: .. code-block:: none uint32 : Reserved (header) - uint32 : NumFunctions - StkSizeRecord[NumFunctions] { - uint32 : Function Offset - uint32 : Stack Size - } uint32 : NumConstants Constants[NumConstants] { uint64 : LargeConstant diff --git a/include/llvm/CodeGen/StackMaps.h b/include/llvm/CodeGen/StackMaps.h index bd4c3db3d3f..508606ac9ba 100644 --- a/include/llvm/CodeGen/StackMaps.h +++ b/include/llvm/CodeGen/StackMaps.h @@ -11,7 +11,6 @@ #ifndef LLVM_STACKMAPS #define LLVM_STACKMAPS -#include "llvm/ADT/MapVector.h" #include "llvm/ADT/SmallVector.h" #include "llvm/CodeGen/MachineInstr.h" #include @@ -133,7 +132,6 @@ public: private: typedef SmallVector LocationVec; typedef SmallVector LiveOutVec; - typedef MapVector FnStackSizeMap; struct CallsiteInfo { const MCExpr *CSOffsetExpr; @@ -172,7 +170,6 @@ private: AsmPrinter &AP; CallsiteInfoList CSInfos; ConstantPool ConstPool; - FnStackSizeMap FnStackSize; MachineInstr::const_mop_iterator parseOperand(MachineInstr::const_mop_iterator MOI, diff --git a/lib/CodeGen/StackMaps.cpp b/lib/CodeGen/StackMaps.cpp index 8adaf0bcc16..79c1e7dce55 100644 --- a/lib/CodeGen/StackMaps.cpp +++ b/lib/CodeGen/StackMaps.cpp @@ -11,8 +11,6 @@ #include "llvm/CodeGen/StackMaps.h" #include "llvm/CodeGen/AsmPrinter.h" -#include "llvm/CodeGen/MachineFunction.h" -#include "llvm/CodeGen/MachineFrameInfo.h" #include "llvm/CodeGen/MachineInstr.h" #include "llvm/IR/DataLayout.h" #include "llvm/MC/MCContext.h" @@ -218,19 +216,12 @@ void StackMaps::recordStackMapOpers(const MachineInstr &MI, uint64_t ID, } } - // Create an expression to calculate the offset of the callsite from function - // entry. const MCExpr *CSOffsetExpr = MCBinaryExpr::CreateSub( MCSymbolRefExpr::Create(MILabel, OutContext), MCSymbolRefExpr::Create(AP.CurrentFnSym, OutContext), OutContext); CSInfos.push_back(CallsiteInfo(CSOffsetExpr, ID, Locations, LiveOuts)); - - // Record the stack size of the current function. - const MachineFrameInfo *MFI = AP.MF->getFrameInfo(); - FnStackSize[AP.CurrentFnSym] = - MFI->hasVarSizedObjects() ? ~0U : MFI->getStackSize(); } void StackMaps::recordStackMap(const MachineInstr &MI) { @@ -267,11 +258,6 @@ void StackMaps::recordPatchPoint(const MachineInstr &MI) { /// serializeToStackMapSection conceptually populates the following fields: /// /// uint32 : Reserved (header) -/// uint32 : NumFunctions -/// StkSizeRecord[NumFunctions] { -/// uint32 : Function Offset -/// uint32 : Stack Size -/// } /// uint32 : NumConstants /// int64 : Constants[NumConstants] /// uint32 : NumRecords @@ -327,16 +313,6 @@ void StackMaps::serializeToStackMapSection() { // Header. AP.OutStreamer.EmitIntValue(0, 4); - // Num functions. - AP.OutStreamer.EmitIntValue(FnStackSize.size(), 4); - - // Stack size entries. - for (FnStackSizeMap::iterator I = FnStackSize.begin(), E = FnStackSize.end(); - I != E; ++I) { - AP.EmitLabelReference(I->first, 4, true); - AP.OutStreamer.EmitIntValue(I->second, 4); - } - // Num constants. AP.OutStreamer.EmitIntValue(ConstPool.getNumConstants(), 4); diff --git a/test/CodeGen/X86/anyregcc.ll b/test/CodeGen/X86/anyregcc.ll index 23f5d4378e6..d0b6665b156 100644 --- a/test/CodeGen/X86/anyregcc.ll +++ b/test/CodeGen/X86/anyregcc.ll @@ -1,31 +1,13 @@ -; RUN: llc < %s -mtriple=x86_64-apple-darwin -disable-fp-elim | FileCheck %s -; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 -disable-fp-elim | FileCheck --check-prefix=SSE %s -; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -disable-fp-elim | FileCheck --check-prefix=AVX %s +; RUN: llc < %s -mtriple=x86_64-apple-darwin -disable-fp-elim | FileCheck %s +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=corei7 | FileCheck --check-prefix=SSE %s +; RUN: llc < %s -march=x86-64 -mcpu=corei7-avx | FileCheck --check-prefix=AVX %s ; Stackmap Header: no constants - 6 callsites -; CHECK-LABEL: .section __LLVM_STACKMAPS,__llvm_stackmaps -; CHECK-NEXT: __LLVM_StackMaps: +; CHECK-LABEL: .section __LLVM_STACKMAPS,__llvm_stackmaps +; CHECK-NEXT: __LLVM_StackMaps: ; Header -; CHECK-NEXT: .long 0 -; Num Functions -; CHECK-NEXT: .long 8 -; CHECK-NEXT: .long _test -; CHECK-NEXT: .long 8 -; CHECK-NEXT: .long _property_access1 -; CHECK-NEXT: .long 8 -; CHECK-NEXT: .long _property_access2 -; CHECK-NEXT: .long 24 -; CHECK-NEXT: .long _property_access3 -; CHECK-NEXT: .long 24 -; CHECK-NEXT: .long _anyreg_test1 -; CHECK-NEXT: .long 56 -; CHECK-NEXT: .long _anyreg_test2 -; CHECK-NEXT: .long 56 -; CHECK-NEXT: .long _patchpoint_spilldef -; CHECK-NEXT: .long 56 -; CHECK-NEXT: .long _patchpoint_spillargs -; CHECK-NEXT: .long 88 +; CHECK-NEXT: .long 0 ; Num Constants ; CHECK-NEXT: .long 0 ; Num Callsites @@ -361,8 +343,8 @@ entry: define anyregcc void @anyregcc1() { entry: ;SSE-LABEL: anyregcc1 -;SSE: pushq %rbp ;SSE: pushq %rax +;SSE: pushq %rbp ;SSE: pushq %r15 ;SSE: pushq %r14 ;SSE: pushq %r13 @@ -393,8 +375,8 @@ entry: ;SSE-NEXT: movaps %xmm1 ;SSE-NEXT: movaps %xmm0 ;AVX-LABEL:anyregcc1 -;AVX: pushq %rbp ;AVX: pushq %rax +;AVX: pushq %rbp ;AVX: pushq %r15 ;AVX: pushq %r14 ;AVX: pushq %r13 @@ -408,22 +390,22 @@ entry: ;AVX: pushq %rdx ;AVX: pushq %rcx ;AVX: pushq %rbx -;AVX: vmovaps %ymm15 -;AVX-NEXT: vmovaps %ymm14 -;AVX-NEXT: vmovaps %ymm13 -;AVX-NEXT: vmovaps %ymm12 -;AVX-NEXT: vmovaps %ymm11 -;AVX-NEXT: vmovaps %ymm10 -;AVX-NEXT: vmovaps %ymm9 -;AVX-NEXT: vmovaps %ymm8 -;AVX-NEXT: vmovaps %ymm7 -;AVX-NEXT: vmovaps %ymm6 -;AVX-NEXT: vmovaps %ymm5 -;AVX-NEXT: vmovaps %ymm4 -;AVX-NEXT: vmovaps %ymm3 -;AVX-NEXT: vmovaps %ymm2 -;AVX-NEXT: vmovaps %ymm1 -;AVX-NEXT: vmovaps %ymm0 +;AVX: vmovups %ymm15 +;AVX-NEXT: vmovups %ymm14 +;AVX-NEXT: vmovups %ymm13 +;AVX-NEXT: vmovups %ymm12 +;AVX-NEXT: vmovups %ymm11 +;AVX-NEXT: vmovups %ymm10 +;AVX-NEXT: vmovups %ymm9 +;AVX-NEXT: vmovups %ymm8 +;AVX-NEXT: vmovups %ymm7 +;AVX-NEXT: vmovups %ymm6 +;AVX-NEXT: vmovups %ymm5 +;AVX-NEXT: vmovups %ymm4 +;AVX-NEXT: vmovups %ymm3 +;AVX-NEXT: vmovups %ymm2 +;AVX-NEXT: vmovups %ymm1 +;AVX-NEXT: vmovups %ymm0 call void asm sideeffect "", "~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15},~{rbp},~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15}"() ret void } diff --git a/test/CodeGen/X86/stackmap-liveness.ll b/test/CodeGen/X86/stackmap-liveness.ll index 570e373229e..b1a931dd7c4 100644 --- a/test/CodeGen/X86/stackmap-liveness.ll +++ b/test/CodeGen/X86/stackmap-liveness.ll @@ -6,13 +6,7 @@ ; CHECK-LABEL: .section __LLVM_STACKMAPS,__llvm_stackmaps ; CHECK-NEXT: __LLVM_StackMaps: -; CHECK-NEXT: .long 0 -; Num Functions -; CHECK-NEXT: .long 2 -; CHECK-NEXT: .long _stackmap_liveness -; CHECK-NEXT: .long 8 -; CHECK-NEXT: .long _mixed_liveness -; CHECK-NEXT: .long 8 +; CHECK-NEXT: .long 0 ; Num LargeConstants ; CHECK-NEXT: .long 0 ; Num Callsites diff --git a/test/CodeGen/X86/stackmap.ll b/test/CodeGen/X86/stackmap.ll index 2b7bb183007..02060eb11f5 100644 --- a/test/CodeGen/X86/stackmap.ll +++ b/test/CodeGen/X86/stackmap.ll @@ -4,37 +4,7 @@ ; CHECK-LABEL: .section __LLVM_STACKMAPS,__llvm_stackmaps ; CHECK-NEXT: __LLVM_StackMaps: -; CHECK-NEXT: .long 0 -; Num Functions -; CHECK-NEXT: .long 14 -; CHECK-NEXT: .long _constantargs -; CHECK-NEXT: .long 8 -; CHECK-NEXT: .long _osrinline -; CHECK-NEXT: .long 24 -; CHECK-NEXT: .long _osrcold -; CHECK-NEXT: .long 8 -; CHECK-NEXT: .long _propertyRead -; CHECK-NEXT: .long 8 -; CHECK-NEXT: .long _propertyWrite -; CHECK-NEXT: .long 8 -; CHECK-NEXT: .long _jsVoidCall -; CHECK-NEXT: .long 8 -; CHECK-NEXT: .long _jsIntCall -; CHECK-NEXT: .long 8 -; CHECK-NEXT: .long _spilledValue -; CHECK-NEXT: .long 56 -; CHECK-NEXT: .long _spilledStackMapValue -; CHECK-NEXT: .long 56 -; CHECK-NEXT: .long _spillSubReg -; CHECK-NEXT: .long 56 -; CHECK-NEXT: .long _subRegOffset -; CHECK-NEXT: .long 56 -; CHECK-NEXT: .long _liveConstant -; CHECK-NEXT: .long 8 -; CHECK-NEXT: .long _directFrameIdx -; CHECK-NEXT: .long 56 -; CHECK-NEXT: .long _longid -; CHECK-NEXT: .long 8 +; CHECK-NEXT: .long 0 ; Num LargeConstants ; CHECK-NEXT: .long 3 ; CHECK-NEXT: .quad 2147483648