alive2 icon indicating copy to clipboard operation
alive2 copied to clipboard

Automatic verification of LLVM optimizations

Results 105 alive2 issues
Sort by recently updated
recently updated
newest added

This is a srctgt reduced from ph7: ``` define i32 @src(i8* %dummy, i8** %pCur1) { entry: %retval = alloca i32, align 4 %i = load i8*, i8** %pCur1, align 8...

memory

Information from @aqjune so it doesn't get lost: The biggest hurdle in fixing the shufflevector semantics is that the Intel intrinsics that return 'undefined' vectors should be fixed to return...

This patch checks the bytes of local blocks escaped via fn calls (resolves #435 ). This check is done when the local block ids are known to be constants (which...

Alive2 verifies the example below as correct, but shouldn't this fail verification? Unless I am missing something, a counter example would be any pointer value for `%arr` so that `%gep.2`...

memory

We miss a bug in NewGVN (https://github.com/llvm/llvm-project/issues/56149) because the ordering of BBs is not optimal. We have a jump to a BB that appears before, so we never see that...

loops

The input (reduced by @Dongjoo-Kim): ``` declare i32* @g() define void @f(i32** %p1, i32* %p2, i32** %p3, i32*) { entry: load i32*, i32** %p1, align 8 %cond1 = icmp eq...

memory

We produce spurious phi nodes, e.g. the example in https://github.com/AliveToolkit/alive2/issues/571 and `tests/alive-tv/loops/issue561.srctgt.ll`

performance
loops

I'm digging `precondition is false` errors at LLVM unit tests, and found this epic one: Transforms/InstCombine/alloca-big.ll ``` ; OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5223 define void @test_bigalloc() { ; CHECK-LABEL: @test_bigalloc( ; CHECK-NEXT: [[TMP1:%.*]]...

memory

I've been hacking at another loop idiom: ``` declare void @escape(i8, i8, i8, i1, i8) define i8 @src(i8 %val, i8 %start, i8 %extraoffset) { entry: br label %loop loop: %iv...

performance
loops

Nowadays, LLVM, at least nominally, does not assume that loops must progress, but requires `mustprogress` annotation for that. But it seems like alive2 doesn't deal with that. For example, ```...

loops