From 657c1e09da9fb5e63b963fe8eeace01e42e7d3ba Mon Sep 17 00:00:00 2001 From: Roman Lebedev Date: Fri, 1 Jan 2021 16:37:55 +0300 Subject: [PATCH] [SimplifyCFG] Teach eliminateDeadSwitchCases() to preserve DomTree, part 2 --- llvm/lib/Transforms/Utils/SimplifyCFG.cpp | 2 +- llvm/test/Transforms/SimplifyCFG/switch-dead-default.ll | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp index 30e3f0b..37e594d 100644 --- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp @@ -4990,7 +4990,7 @@ static bool eliminateDeadSwitchCases(SwitchInst *SI, DomTreeUpdater *DTU, if (HasDefault && DeadCases.empty() && NumUnknownBits < 64 /* avoid overflow */ && SI->getNumCases() == (1ULL << NumUnknownBits)) { - createUnreachableSwitchDefault(SI, /*DTU=*/nullptr); + createUnreachableSwitchDefault(SI, DTU); return true; } diff --git a/llvm/test/Transforms/SimplifyCFG/switch-dead-default.ll b/llvm/test/Transforms/SimplifyCFG/switch-dead-default.ll index 2ce04ec..9756965 100644 --- a/llvm/test/Transforms/SimplifyCFG/switch-dead-default.ll +++ b/llvm/test/Transforms/SimplifyCFG/switch-dead-default.ll @@ -1,5 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt %s -S -passes='simplify-cfg' | FileCheck %s +; RUN: opt %s -S -passes='simplify-cfg' -simplifycfg-require-and-preserve-domtree=1 | FileCheck %s + target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" declare void @foo(i32) -- 2.7.4