1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -S -passes=openmp-opt-cgscc < %s | FileCheck %s 3 4; Verify we remove the trivially dead store in a function that is not dead 5; (foo) but not in a dead function (dead) when running in cgscc mode. 6 7define internal void @dead() { 8; CHECK-LABEL: @dead( 9; CHECK-NEXT: [[A:%.*]] = alloca i32, align 4 10; CHECK-NEXT: store i32 0, ptr [[A]], align 4 11; CHECK-NEXT: ret void 12; 13 %a = alloca i32 14 store i32 0, ptr %a 15 ret void 16} 17 18define internal void @foo() { 19; CHECK-LABEL: @foo( 20; CHECK-NEXT: [[A:%.*]] = alloca i32, align 4 21; CHECK-NEXT: ret void 22; 23 %a = alloca i32 24 store i32 0, ptr %a 25 ret void 26} 27 28define internal void @bar() { 29; CHECK-LABEL: @bar( 30; CHECK-NEXT: ret void 31; 32 call void @foo() 33 ret void 34} 35 36define void @baz() { 37; CHECK-LABEL: @baz( 38; CHECK-NEXT: call void @bar() 39; CHECK-NEXT: ret void 40; 41 call void @bar() 42 ret void 43} 44 45!llvm.module.flags = !{!0, !1} 46 47!0 = !{i32 7, !"openmp", i32 50} 48!1 = !{i32 7, !"openmp-device", i32 50} 49