Test source: git
Source: <stdin> ---------------------------------------- define void @test1(* %src) { %0: %B = alloca i64 16, align 1 %call = call * @strcpy() ; WARNING: unknown known function ret void } => define void @test1(* %src) { %0: ret void } Transformation doesn't verify! ERROR: Invalid expr ---------------------------------------- define void @test2(* %src) { %0: %B = alloca i64 16, align 1 %dest = gep inbounds * %B, 16 x i64 0, 1 x i64 0 %call = call * @strncpy(* %dest, * %src, i32 12) ret void } => define void @test2(* %src) { %0: ret void } Transformation doesn't verify! ERROR: Mismatch in memory Example: * %src = poison Source: * %B = pointer(local, block_id=4, offset=0) * %dest = pointer(local, block_id=4, offset=0) * %call = poison SOURCE MEMORY STATE =================== NON-LOCAL BLOCKS: Block 0 > size: 0 align: 64 alloc type: 0 Block 1 > size: 0 align: 2 alloc type: 0 Block 2 > size: 0 align: 2 alloc type: 0 Block 3 > size: 1 align: 2 alloc type: 0 LOCAL BLOCKS: Block 4 > size: 16 align: 1 alloc type: 1 Target: Mismatch in pointer(non-local, block_id=3, offset=0) Source value: #x00 Target value: poison ------------------- SMT STATS ------------------- Num queries: 3 Num invalid: 1 Num skips: 0 Num trivial: 4 (57.1%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 3 (100.0%) Num UNSAT: 0 (0.0%)
+ : 'RUN: at line 1' + /home/nlopes/alive2/scripts/opt-alive.sh -S -basic-aa -dse -enable-dse-memoryssa + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.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/DeadStoreElimination/MSSA/libcalls.ll