1*9880d681SAndroid Build Coastguard Worker# RUN: llc -start-after machine-sink -stop-after machine-sink -o - %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker# This test ensures that the MIR parser parses machine frame info properties 3*9880d681SAndroid Build Coastguard Worker# correctly. 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker--- | 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker define i32 @test(i32 %a) { 8*9880d681SAndroid Build Coastguard Worker entry: 9*9880d681SAndroid Build Coastguard Worker %b = alloca i32 10*9880d681SAndroid Build Coastguard Worker store i32 %a, i32* %b 11*9880d681SAndroid Build Coastguard Worker %c = load i32, i32* %b 12*9880d681SAndroid Build Coastguard Worker ret i32 %c 13*9880d681SAndroid Build Coastguard Worker } 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker define i32 @test2(i32 %a) { 16*9880d681SAndroid Build Coastguard Worker entry: 17*9880d681SAndroid Build Coastguard Worker %b = alloca i32 18*9880d681SAndroid Build Coastguard Worker store i32 %a, i32* %b 19*9880d681SAndroid Build Coastguard Worker %c = load i32, i32* %b 20*9880d681SAndroid Build Coastguard Worker ret i32 %c 21*9880d681SAndroid Build Coastguard Worker } 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker... 24*9880d681SAndroid Build Coastguard Worker--- 25*9880d681SAndroid Build Coastguard Workername: test 26*9880d681SAndroid Build Coastguard WorkerisSSA: true 27*9880d681SAndroid Build Coastguard WorkertracksRegLiveness: true 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker# CHECK: frameInfo: 30*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: isFrameAddressTaken: false 31*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: isReturnAddressTaken: false 32*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasStackMap: false 33*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasPatchPoint: false 34*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: stackSize: 0 35*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: offsetAdjustment: 0 36*9880d681SAndroid Build Coastguard Worker# Note: max alignment can be target specific when printed. 37*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: maxAlignment: 38*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: adjustsStack: false 39*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasCalls: false 40*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: maxCallFrameSize: 0 41*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasOpaqueSPAdjustment: false 42*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasVAStart: false 43*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasMustTailInVarArgFunc: false 44*9880d681SAndroid Build Coastguard Worker# CHECK: body 45*9880d681SAndroid Build Coastguard WorkerframeInfo: 46*9880d681SAndroid Build Coastguard Worker maxAlignment: 4 47*9880d681SAndroid Build Coastguard Workerbody: | 48*9880d681SAndroid Build Coastguard Worker bb.0.entry: 49*9880d681SAndroid Build Coastguard Worker... 50*9880d681SAndroid Build Coastguard Worker--- 51*9880d681SAndroid Build Coastguard Workername: test2 52*9880d681SAndroid Build Coastguard WorkerisSSA: true 53*9880d681SAndroid Build Coastguard WorkertracksRegLiveness: true 54*9880d681SAndroid Build Coastguard Worker 55*9880d681SAndroid Build Coastguard Worker# CHECK: test2 56*9880d681SAndroid Build Coastguard Worker# CHECK: frameInfo: 57*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: isFrameAddressTaken: true 58*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: isReturnAddressTaken: true 59*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasStackMap: true 60*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasPatchPoint: true 61*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: stackSize: 4 62*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: offsetAdjustment: 4 63*9880d681SAndroid Build Coastguard Worker# Note: max alignment can be target specific when printed. 64*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: maxAlignment: 65*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: adjustsStack: true 66*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasCalls: true 67*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: maxCallFrameSize: 4 68*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasOpaqueSPAdjustment: true 69*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasVAStart: true 70*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: hasMustTailInVarArgFunc: true 71*9880d681SAndroid Build Coastguard Worker# CHECK: body 72*9880d681SAndroid Build Coastguard WorkerframeInfo: 73*9880d681SAndroid Build Coastguard Worker isFrameAddressTaken: true 74*9880d681SAndroid Build Coastguard Worker isReturnAddressTaken: true 75*9880d681SAndroid Build Coastguard Worker hasStackMap: true 76*9880d681SAndroid Build Coastguard Worker hasPatchPoint: true 77*9880d681SAndroid Build Coastguard Worker stackSize: 4 78*9880d681SAndroid Build Coastguard Worker offsetAdjustment: 4 79*9880d681SAndroid Build Coastguard Worker maxAlignment: 4 80*9880d681SAndroid Build Coastguard Worker adjustsStack: true 81*9880d681SAndroid Build Coastguard Worker hasCalls: true 82*9880d681SAndroid Build Coastguard Worker maxCallFrameSize: 4 83*9880d681SAndroid Build Coastguard Worker hasOpaqueSPAdjustment: true 84*9880d681SAndroid Build Coastguard Worker hasVAStart: true 85*9880d681SAndroid Build Coastguard Worker hasMustTailInVarArgFunc: true 86*9880d681SAndroid Build Coastguard Workerbody: | 87*9880d681SAndroid Build Coastguard Worker bb.0.entry: 88*9880d681SAndroid Build Coastguard Worker... 89*9880d681SAndroid Build Coastguard Worker 90