[PATCH] D113349: [SCEV] Fix and validate ValueExprMap/ExprValueMap consistency

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 22 09:51:01 PST 2021


nikic added a comment.

Reduction from asan bootstrap for the assertion failure (`opt -loop-reduce`):

  define void @test() {
  entry:
    br label %loop.header
  
  loop.header:
    %ptr = phi i64* [ %ptr.next, %loop.latch ], [ null, %entry ]
    br i1 true, label %loop.exit, label %loop2.preheader
  
  loop.exit:
    ret void
  
  loop2.preheader:
    br label %loop2.header
  
  loop2.header:
    %ptr2 = phi i64* [ %ptr, %loop2.preheader ], [ %ptr2.next, %loop2.header ]
    %ptr2.next = getelementptr inbounds i64, i64* %ptr2, i64 1
    br i1 false, label %loop2.header, label %loop2.cont
  
  loop2.cont:
    %ptr2.i8 = bitcast i64* %ptr2 to i8*
    %v = load i8, i8* %ptr2.i8
    %c = icmp ne i8 %v, 0
    br i1 %c, label %loop.exit, label %loop.latch
  
  loop.latch:
    %ptr.next = getelementptr inbounds i64, i64* %ptr, i64 1
    br label %loop.header
  }


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D113349



More information about the llvm-commits mailing list