diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/CodeGen/SwitchLoweringUtils.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/CodeGen/SwitchLoweringUtils.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/contrib/llvm-project/llvm/lib/CodeGen/SwitchLoweringUtils.cpp b/contrib/llvm-project/llvm/lib/CodeGen/SwitchLoweringUtils.cpp index 36a02d5beb4b..7982d80353bd 100644 --- a/contrib/llvm-project/llvm/lib/CodeGen/SwitchLoweringUtils.cpp +++ b/contrib/llvm-project/llvm/lib/CodeGen/SwitchLoweringUtils.cpp @@ -45,6 +45,7 @@ SwitchCG::getJumpTableNumCases(const SmallVectorImpl<unsigned> &TotalCases, void SwitchCG::SwitchLowering::findJumpTables(CaseClusterVector &Clusters, const SwitchInst *SI, + std::optional<SDLoc> SL, MachineBasicBlock *DefaultMBB, ProfileSummaryInfo *PSI, BlockFrequencyInfo *BFI) { @@ -87,7 +88,7 @@ void SwitchCG::SwitchLowering::findJumpTables(CaseClusterVector &Clusters, // Cheap case: the whole range may be suitable for jump table. if (TLI->isSuitableForJumpTable(SI, NumCases, Range, PSI, BFI)) { CaseCluster JTCluster; - if (buildJumpTable(Clusters, 0, N - 1, SI, DefaultMBB, JTCluster)) { + if (buildJumpTable(Clusters, 0, N - 1, SI, SL, DefaultMBB, JTCluster)) { Clusters[0] = JTCluster; Clusters.resize(1); return; @@ -95,7 +96,7 @@ void SwitchCG::SwitchLowering::findJumpTables(CaseClusterVector &Clusters, } // The algorithm below is not suitable for -O0. - if (TM->getOptLevel() == CodeGenOpt::None) + if (TM->getOptLevel() == CodeGenOptLevel::None) return; // Split Clusters into minimum number of dense partitions. The algorithm uses @@ -177,7 +178,7 @@ void SwitchCG::SwitchLowering::findJumpTables(CaseClusterVector &Clusters, CaseCluster JTCluster; if (NumClusters >= MinJumpTableEntries && - buildJumpTable(Clusters, First, Last, SI, DefaultMBB, JTCluster)) { + buildJumpTable(Clusters, First, Last, SI, SL, DefaultMBB, JTCluster)) { Clusters[DstIndex++] = JTCluster; } else { for (unsigned I = First; I <= Last; ++I) @@ -190,6 +191,7 @@ void SwitchCG::SwitchLowering::findJumpTables(CaseClusterVector &Clusters, bool SwitchCG::SwitchLowering::buildJumpTable(const CaseClusterVector &Clusters, unsigned First, unsigned Last, const SwitchInst *SI, + const std::optional<SDLoc> &SL, MachineBasicBlock *DefaultMBB, CaseCluster &JTCluster) { assert(First <= Last); @@ -251,7 +253,7 @@ bool SwitchCG::SwitchLowering::buildJumpTable(const CaseClusterVector &Clusters, ->createJumpTableIndex(Table); // Set up the jump table info. - JumpTable JT(-1U, JTI, JumpTableMBB, nullptr); + JumpTable JT(-1U, JTI, JumpTableMBB, nullptr, SL); JumpTableHeader JTH(Clusters[First].Low->getValue(), Clusters[Last].High->getValue(), SI->getCondition(), nullptr, false); @@ -278,7 +280,7 @@ void SwitchCG::SwitchLowering::findBitTestClusters(CaseClusterVector &Clusters, #endif // The algorithm below is not suitable for -O0. - if (TM->getOptLevel() == CodeGenOpt::None) + if (TM->getOptLevel() == CodeGenOptLevel::None) return; // If target does not have legal shift left, do not emit bit tests at all. |
