Skip to content

GuardWidening: test/Transforms/GuardWidening/range-check-merging.ll looks different with debug info present #37063

@vedantk

Description

@vedantk
Bugzilla Link 37715
Version trunk
OS All
Blocks #37076
CC @arpilipe,@jmorse,@preames

Extended Description

Running opt -O1 on this file produces different output with/without debug info present. To reproduce the issue, do:

Baseline

$ $OPT -O1 $FILE -S -o -

With debug info

$ $OPT -O1 $FILE -o - -debugify-each -debugify-quiet | $OPT -strip -S

Comparing: -O1 test/Transforms/GuardWidening/range-check-merging.ll
Baseline: /var/folders/j8/t4w0bp8j6x1g6fpghkcb4sjm0000gp/T/tmp.C74Q3eA7
With DI : /var/folders/j8/t4w0bp8j6x1g6fpghkcb4sjm0000gp/T/tmp.7O0SBoIr
8a9

call void (i1, ...) @​llvm.experimental.guard(i1 %4) [ "deopt"() ]
11,18c12,18
< %7 = and i1 %4, %6
< call void (i1, ...) @​llvm.experimental.guard(i1 %7) [ "deopt"() ]
< %8 = add i32 %0, 2
< %9 = icmp ult i32 %8, %3
< %10 = add i32 %0, 3
< %11 = icmp ult i32 %10, %3
< %12 = and i1 %9, %11
< call void (i1, ...) @​llvm.experimental.guard(i1 %12) [ "deopt"() ]


call void (i1, ...) @​llvm.experimental.guard(i1 %6) [ "deopt"() ]
%7 = add i32 %0, 2
%8 = icmp ult i32 %7, %3
call void (i1, ...) @​llvm.experimental.guard(i1 %8) [ "deopt"() ]
%9 = add i32 %0, 3
%10 = icmp ult i32 %9, %3
call void (i1, ...) @​llvm.experimental.guard(i1 %10) [ "deopt"() ]
24a25
call void (i1, ...) @​llvm.experimental.guard(i1 %4) [ "deopt"() ]
27,34c28,34
< %7 = and i1 %4, %6
< call void (i1, ...) @​llvm.experimental.guard(i1 %7) [ "deopt"() ]
< %8 = add i32 %0, 3
< %9 = icmp ult i32 %8, %3
< %10 = add i32 %0, 6
< %11 = icmp ult i32 %10, %3
< %12 = and i1 %9, %11
< call void (i1, ...) @​llvm.experimental.guard(i1 %12) [ "deopt"() ]
...
(snipped)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions