Test source: git
Source: <stdin> ---------------------------------------- @0 = global 24 bytes, align 8 define void @internal(i32 %not_gtid, i32 %gtid) { %entry: %cc = call i32 @__kmpc_global_thread_num(* @0) %c = icmp eq i32 %cc, %gtid br i1 %c, label %t, label %e %e: %c1 = call i32 @__kmpc_global_thread_num(* @0) call void @useI32(i32 %c1) br label %m %t: %c0 = call i32 @__kmpc_global_thread_num(* @0) call void @useI32(i32 %c0) call void @external(i1 %c) br label %m %m: %c2 = call i32 @__kmpc_global_thread_num(* @0) call void @useI32(i32 %c2) ret void } => @0 = global 24 bytes, align 8 define void @internal(i32 %not_gtid, i32 %gtid) { %entry: %c = icmp eq i32 %gtid, %gtid br i1 %c, label %t, label %e %e: call void @useI32(i32 %gtid) br label %m %t: call void @useI32(i32 %gtid) call void @external(i1 %c) br label %m %m: call void @useI32(i32 %gtid) ret void } Transformation doesn't verify! ERROR: Source is more defined than target Example: i32 %not_gtid = poison i32 %gtid = #x00040000 (262144) Source: i32 %cc = #x00000000 (0) i1 %c = #x0 (0) i32 %c1 = #x00000000 (0) i32 %c0 = #x00000000 (0) i32 %c2 = undef SOURCE MEMORY STATE =================== NON-LOCAL BLOCKS: Block 0 > size: 0 align: 64 alloc type: 0 Block 1 > size: 24 align: 8 alloc type: 0 Block 2 > size: 153 align: 2 alloc type: 0 Target: i1 %c = #x1 (1) ------------------- SMT STATS ------------------- Num queries: 3 Num invalid: 0 Num skips: 0 Num trivial: 0 (0.0%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 2 (66.7%) Num UNSAT: 1 (33.3%)
+ : 'RUN: at line 2' + /home/nlopes/alive2/scripts/opt-alive.sh -openmpopt -S + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/OpenMP/deduplication.ll Alive2: Transform doesn't verify; aborting! FileCheck error: '<stdin>' is empty. FileCheck command line: /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/OpenMP/deduplication.ll