1# RUN: llc -run-pass none -o - %s | FileCheck %s 2# This test ensures that the MIR parser parses machine frame info properties 3# correctly. 4 5--- | 6 7 define i32 @test(i32 %a) { 8 entry: 9 %b = alloca i32 10 store i32 %a, ptr %b 11 %c = load i32, ptr %b 12 ret i32 %c 13 } 14 15 define i32 @test2(i32 %a) { 16 entry: 17 %b = alloca i32 18 store i32 %a, ptr %b 19 %c = load i32, ptr %b 20 ret i32 %c 21 } 22 23... 24--- 25name: test 26tracksRegLiveness: true 27 28# CHECK: frameInfo: 29# CHECK-NEXT: isFrameAddressTaken: false 30# CHECK-NEXT: isReturnAddressTaken: false 31# CHECK-NEXT: hasStackMap: false 32# CHECK-NEXT: hasPatchPoint: false 33# CHECK-NEXT: stackSize: 0 34# CHECK-NEXT: offsetAdjustment: 0 35# Note: max alignment can be target specific when printed. 36# CHECK-NEXT: maxAlignment: 37# CHECK-NEXT: adjustsStack: false 38# CHECK-NEXT: hasCalls: false 39# CHECK-NEXT: stackProtector: '' 40# CHECK-NEXT: functionContext: '' 41# CHECK-NEXT: maxCallFrameSize: 42# CHECK-NEXT: cvBytesOfCalleeSavedRegisters: 0 43# CHECK-NEXT: hasOpaqueSPAdjustment: false 44# CHECK-NEXT: hasVAStart: false 45# CHECK-NEXT: hasMustTailInVarArgFunc: false 46# CHECK-NEXT: hasTailCall: false 47# CHECK-NEXT: isCalleeSavedInfoValid: false 48# CHECK-NEXT: localFrameSize: 0 49# CHECK-NEXT: savePoint: '' 50# CHECK-NEXT: restorePoint: '' 51# CHECK: body 52frameInfo: 53 maxAlignment: 4 54body: | 55 bb.0.entry: 56... 57--- 58name: test2 59tracksRegLiveness: true 60stack: 61 - { id: 0, offset: -40, size: 8, alignment: 8 } 62 63# CHECK: test2 64# CHECK: frameInfo: 65# CHECK-NEXT: isFrameAddressTaken: true 66# CHECK-NEXT: isReturnAddressTaken: true 67# CHECK-NEXT: hasStackMap: true 68# CHECK-NEXT: hasPatchPoint: true 69# CHECK-NEXT: stackSize: 4 70# CHECK-NEXT: offsetAdjustment: 4 71# Note: max alignment can be target specific when printed. 72# CHECK-NEXT: maxAlignment: 73# CHECK-NEXT: adjustsStack: true 74# CHECK-NEXT: hasCalls: true 75# CHECK-NEXT: stackProtector: '' 76# CHECK-NEXT: functionContext: '%stack.0' 77# CHECK-NEXT: maxCallFrameSize: 4 78# CHECK-NEXT: cvBytesOfCalleeSavedRegisters: 8 79# CHECK-NEXT: hasOpaqueSPAdjustment: true 80# CHECK-NEXT: hasVAStart: true 81# CHECK-NEXT: hasMustTailInVarArgFunc: true 82# CHECK-NEXT: hasTailCall: true 83# CHECK: body 84frameInfo: 85 isFrameAddressTaken: true 86 isReturnAddressTaken: true 87 hasStackMap: true 88 hasPatchPoint: true 89 stackSize: 4 90 offsetAdjustment: 4 91 maxAlignment: 4 92 adjustsStack: true 93 hasCalls: true 94 functionContext: '%stack.0' 95 maxCallFrameSize: 4 96 cvBytesOfCalleeSavedRegisters: 8 97 hasOpaqueSPAdjustment: true 98 hasVAStart: true 99 hasTailCall: true 100 hasMustTailInVarArgFunc: true 101 localFrameSize: 256 102body: | 103 bb.0.entry: 104... 105 106