forked from OSchip/llvm-project
[CodeGenPrepare] Set debug loc when widening a switch condition
Set a debug location on the cast instruction used to widen a switch condition. llvm-svn: 340379
This commit is contained in:
parent
6e9fd1377d
commit
4760686823
|
@ -5853,6 +5853,7 @@ bool CodeGenPrepare::optimizeSwitchInst(SwitchInst *SI) {
|
|||
|
||||
auto *ExtInst = CastInst::Create(ExtType, Cond, NewType);
|
||||
ExtInst->insertBefore(SI);
|
||||
ExtInst->setDebugLoc(SI->getDebugLoc());
|
||||
SI->setCondition(ExtInst);
|
||||
for (auto Case : SI->cases()) {
|
||||
APInt NarrowConst = Case.getCaseValue()->getValue();
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;; x86 is chosen to show the transform when 8-bit and 16-bit registers are available.
|
||||
|
||||
; RUN: opt < %s -codegenprepare -S -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefix=X86
|
||||
; RUN: opt < %s -debugify -codegenprepare -S -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefix=DEBUG
|
||||
|
||||
; No change for x86 because 16-bit registers are part of the architecture.
|
||||
|
||||
|
@ -60,6 +61,13 @@ return:
|
|||
; X86-NEXT: switch i32 %0, label %sw.default [
|
||||
; X86-NEXT: i32 10, label %sw.bb0
|
||||
; X86-NEXT: i32 131071, label %sw.bb1
|
||||
|
||||
; DEBUG-LABEL: @widen_switch_i17(
|
||||
; DEBUG: zext i17 %trunc to i32, !dbg [[switch_loc:![0-9]+]]
|
||||
; DEBUG-NEXT: switch i32 {{.*}} [
|
||||
; DEBUG-NEXT: label %sw.bb0
|
||||
; DEBUG-NEXT: label %sw.bb1
|
||||
; DEBUG-NEXT: ], !dbg [[switch_loc]]
|
||||
}
|
||||
|
||||
; If the switch condition is a sign-extended function argument, then the
|
||||
|
|
Loading…
Reference in New Issue