From a85ca3de66e7c52ed96323c6decc16458312042d Mon Sep 17 00:00:00 2001 From: Vedant Kumar Date: Wed, 22 Aug 2018 18:15:03 +0000 Subject: [PATCH] [CodeGenPrepare] Set debug locs when folding a comparison into a uadd.with.overflow CGP can replace a branch + select with a uadd.with.overflow. Teach it to set debug locations as it does this. llvm-svn: 340432 --- llvm/lib/CodeGen/CodeGenPrepare.cpp | 4 ++++ llvm/test/Transforms/CodeGenPrepare/overflow-intrinsics.ll | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp index 37afed4..d3cbec7 100644 --- a/llvm/lib/CodeGen/CodeGenPrepare.cpp +++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp @@ -1164,11 +1164,15 @@ static bool CombineUAddWithOverflow(CmpInst *CI) { auto *InsertPt = AddI->hasOneUse() ? CI : AddI; + DebugLoc Loc = CI->getDebugLoc(); auto *UAddWithOverflow = CallInst::Create(F, {A, B}, "uadd.overflow", InsertPt); + UAddWithOverflow->setDebugLoc(Loc); auto *UAdd = ExtractValueInst::Create(UAddWithOverflow, 0, "uadd", InsertPt); + UAdd->setDebugLoc(Loc); auto *Overflow = ExtractValueInst::Create(UAddWithOverflow, 1, "overflow", InsertPt); + Overflow->setDebugLoc(Loc); CI->replaceAllUsesWith(Overflow); AddI->replaceAllUsesWith(UAdd); diff --git a/llvm/test/Transforms/CodeGenPrepare/overflow-intrinsics.ll b/llvm/test/Transforms/CodeGenPrepare/overflow-intrinsics.ll index 1e41319..7722452 100644 --- a/llvm/test/Transforms/CodeGenPrepare/overflow-intrinsics.ll +++ b/llvm/test/Transforms/CodeGenPrepare/overflow-intrinsics.ll @@ -1,4 +1,5 @@ ; RUN: opt -codegenprepare -S < %s | FileCheck %s +; RUN: opt -enable-debugify -codegenprepare -S < %s 2>&1 | FileCheck %s -check-prefix=DEBUG target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" target triple = "x86_64-apple-darwin10.0.0" @@ -72,3 +73,6 @@ entry: exit: ret i64 0 } + +; Check that every instruction inserted by -codegenprepare has a debug location. +; DEBUG: CheckModuleDebugify: PASS -- 2.7.4