From 4028409d77f9ea77cec115104409cca605841728 Mon Sep 17 00:00:00 2001 From: Roman Lebedev Date: Thu, 16 Jul 2020 13:18:45 +0300 Subject: [PATCH] Reland "[NFC] SimplifyCFGOptions: drop multi-parameter ctor, use default member-init" This reverts commit 5831e86190966d58385678eb74b26aefacbfd101, which reverted commit 90c1b0442a031d6cad686fdc4e5d3db03c3603a6 in preparation for reverting commit b2018198c32a0535bb1f5bb5b40fbcf50d8d47b7 in commit 1067d3e176ea7b0b1942c163bf8c6c90107768c1 due to the introducton of a dependency cycle. Now that the other revert is reverted with a fix, this can be relanded. --- .../llvm/Transforms/Utils/SimplifyCFGOptions.h | 30 ++++++---------------- .../AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp | 2 +- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/llvm/include/llvm/Transforms/Utils/SimplifyCFGOptions.h b/llvm/include/llvm/Transforms/Utils/SimplifyCFGOptions.h index 75cd258..ca9a7e7 100644 --- a/llvm/include/llvm/Transforms/Utils/SimplifyCFGOptions.h +++ b/llvm/include/llvm/Transforms/Utils/SimplifyCFGOptions.h @@ -21,29 +21,15 @@ namespace llvm { class AssumptionCache; struct SimplifyCFGOptions { - int BonusInstThreshold; - bool ForwardSwitchCondToPhi; - bool ConvertSwitchToLookupTable; - bool NeedCanonicalLoop; - bool SinkCommonInsts; - bool SimplifyCondBranch; - bool FoldTwoEntryPHINode; + int BonusInstThreshold = 1; + bool ForwardSwitchCondToPhi = false; + bool ConvertSwitchToLookupTable = false; + bool NeedCanonicalLoop = true; + bool SinkCommonInsts = false; + bool SimplifyCondBranch = true; + bool FoldTwoEntryPHINode = true; - AssumptionCache *AC; - - SimplifyCFGOptions(unsigned BonusThreshold = 1, - bool ForwardSwitchCond = false, - bool SwitchToLookup = false, bool CanonicalLoops = true, - bool SinkCommon = false, - AssumptionCache *AssumpCache = nullptr, - bool SimplifyCondBranch = true, - bool FoldTwoEntryPHINode = true) - : BonusInstThreshold(BonusThreshold), - ForwardSwitchCondToPhi(ForwardSwitchCond), - ConvertSwitchToLookupTable(SwitchToLookup), - NeedCanonicalLoop(CanonicalLoops), SinkCommonInsts(SinkCommon), - SimplifyCondBranch(SimplifyCondBranch), - FoldTwoEntryPHINode(FoldTwoEntryPHINode), AC(AssumpCache) {} + AssumptionCache *AC = nullptr; // Support 'builder' pattern to set members by name at construction time. SimplifyCFGOptions &bonusInstThreshold(int I) { diff --git a/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp b/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp index 4182966..3c375e0 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp @@ -187,7 +187,7 @@ static BasicBlock *unifyReturnBlockSet(Function &F, for (BasicBlock *BB : ReturningBlocks) { // Cleanup possible branch to unconditional branch to the return. - simplifyCFG(BB, TTI, {2}); + simplifyCFG(BB, TTI, SimplifyCFGOptions().bonusInstThreshold(2)); } return NewRetBlock; -- 2.7.4