[PATCH] D126689: [IR] Enable opaque pointers by default

Mikael Holmén via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 2 22:51:35 PDT 2022


uabelho added a comment.

In D126689#3553292 <https://reviews.llvm.org/D126689#3553292>, @nikic wrote:

> @uabelho Here's a slightly cleaned up test case that does not use opaque pointers:
>
>   target triple = "x86_64-unknown-linux-gnu"
>   
>   define void @test(i1 %cond, <1 x i16>* %p) {
>     br label %loop
>   
>   loop:
>     %v = load <1 x i16>, <1 x i16>* %p, align 2
>     %ins = insertelement <4 x double> zeroinitializer, double 0.000000e+00, i32 0
>     %cmp = fcmp uge <4 x double> %ins, zeroinitializer
>     %ashr = ashr <1 x i16> %v, %v
>     %shuf = shufflevector <4 x i1> %cmp, <4 x i1> zeroinitializer, <4 x i32> zeroinitializer
>     br i1 %cond, label %loop, label %exit
>   
>   exit:
>     %use1 = add <4 x i1> %shuf, zeroinitializer
>     %use2 = add <1 x i16> %ashr, zeroinitializer
>     ret void
>   }
>
> llvm-stress can probably generate certain code patterns when opaque pointers are enabled, which it does not produce when typed pointers are used. In this case at least, the used pointer type doesn't matter in the end.

Yes llvm-stress must generate something unusual with opaque pointers because normally I very rarely see that it finds something, and after the switch done here I get several different crashes. The one I posted above was just one example.
Next crash here: https://github.com/llvm/llvm-project/issues/55846


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126689/new/

https://reviews.llvm.org/D126689



More information about the llvm-commits mailing list