[PATCH] D44312: Retain both sets of debug intrinsics in HoistThenElseCodeToIf (fixes PR 36410)

Vedant Kumar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 9 11:25:43 PST 2018


vsk added a comment.

This looks like a nice improvement. I think the test could be tighter/simpler though, e.g:

  ; RUN: opt -debugify -simplifycfg -S < %s | FileCheck %s
  
  define i64 @caller(i64* %ptr, i64 %flag) {
  init:
    %v9 = icmp eq i64 %flag, 0
    br i1 %v9, label %a, label %b
  
  ; CHECK:  %vala = load i64, i64* %ptr
  ; CHECK-NEXT:  call void @llvm.dbg.value(metadata i64 %vala
  ; CHECK-NEXT:  %valbmasked = and i64 %vala, 1
  ; CHECK-NEXT:  call void @llvm.dbg.value(metadata i64 %vala
  
  a:                                              ; preds = %init
    %vala = load i64, i64* %ptr, align 8
    br label %test.exit
  
  b:                                              ; preds = %init
    %valb = load i64, i64* %ptr, align 8
    %valbmasked = and i64 %valb, 1
    br label %test.exit
  
  test.exit:                                      ; preds = %a, %b
    %retv = phi i64 [ %vala, %a ], [ %valbmasked, %b ]
    ret i64 %retv
  }


Repository:
  rL LLVM

https://reviews.llvm.org/D44312





More information about the llvm-commits mailing list