brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · 9eb7222 Raw
71 lines · plain
1# REQUIRES: x86-registered-target2# RUN: llc -mtriple=x86_64-unknown-linux-gnu -run-pass=mir-debugify,dead-mi-elimination,mir-check-debugify -o - %s 2>&1 | FileCheck %s3# RUN: llc -mtriple=x86_64-unknown-linux-gnu -run-pass=mir-debugify,mir-check-debugify -o - %s 2>&1 | FileCheck %s --check-prefix=CHECK-PASS4--- |5  ; ModuleID = 'check-line-and-variables.mir'6  source_filename = "check-line-and-variables.ll"7 8  @ga = dso_local global i32 2, align 49 10  ; Function Attrs: noinline nounwind optnone uwtable11  define dso_local i32 @foo(i32 %a, i32 %b) {12  entry:13    %a.addr = alloca i32, align 414    %b.addr = alloca i32, align 415    %c = alloca i32, align 416    store i32 %a, ptr %a.addr, align 417    store i32 %b, ptr %b.addr, align 418    %0 = load i32, ptr %a.addr, align 419    %1 = load i32, ptr %b.addr, align 420    %add = add nsw i32 %0, %121    store i32 %add, ptr %c, align 422    %2 = load i32, ptr %c, align 423    %mul = mul nsw i32 %2, 224    store i32 %mul, ptr @ga, align 425    %3 = load i32, ptr %c, align 426    ; dead-mi-elimination will remove %4 = ...27    %4 = load i32, ptr %a.addr, align 428    ret i32 %329  }30 31...32---33name:            foo34alignment:       1635stack:36  - { id: 0, name: a.addr, type: default, offset: 0, size: 4, alignment: 4,37      stack-id: default, callee-saved-register: '', callee-saved-restored: true,38      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }39  - { id: 1, name: b.addr, type: default, offset: 0, size: 4, alignment: 4,40      stack-id: default, callee-saved-register: '', callee-saved-restored: true,41      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }42  - { id: 2, name: c, type: default, offset: 0, size: 4, alignment: 4,43      stack-id: default, callee-saved-register: '', callee-saved-restored: true,44      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }45body:             |46  bb.0.entry:47    liveins: $edi, $esi48 49    %2:gr32 = COPY $esi50    %0:gr32 = COPY $edi51    %1:gr32 = COPY killed %052    %3:gr32 = COPY killed %253    MOV32mr %stack.0.a.addr, 1, $noreg, 0, $noreg, %1 :: (store (s32) into %ir.a.addr)54    MOV32mr %stack.1.b.addr, 1, $noreg, 0, $noreg, %3 :: (store (s32) into %ir.b.addr)55    %14:gr32 = MOV32rm %stack.0.a.addr, 1, $noreg, 0, $noreg :: (load (s32) from %ir.a.addr)56    %13:gr32 = ADD32rm killed %14, %stack.1.b.addr, 1, $noreg, 0, $noreg, implicit-def $eflags :: (load (s32) from %ir.b.addr)57    ; dead-mi-elimination will remove %15:gr32 = ...58    %15:gr32 = MOV32rm %stack.0.a.addr, 1, $noreg, 0, $noreg :: (load (s32) from %ir.a.addr)59    MOV32mr %stack.2.c, 1, $noreg, 0, $noreg, killed %13 :: (store (s32) into %ir.c)60    %9:gr32 = MOV32rm %stack.2.c, 1, $noreg, 0, $noreg :: (load (s32) from %ir.c)61    %8:gr32 = SHL32ri killed %9, 1, implicit-def $eflags62    MOV32mr $noreg, 1, $noreg, @ga, $noreg, killed %8 :: (store (s32) into @ga)63    %5:gr32 = MOV32rm %stack.2.c, 1, $noreg, 0, $noreg :: (load (s32) from %ir.c)64    $eax = COPY %565    RET64 implicit $eax66 67    ;CHECK:      WARNING: Missing line 968    ;CHECK-NEXT: Machine IR debug info check: FAIL69    ;CHECK-PASS: Machine IR debug info check: PASS70...71