@@ -1952,7 +1952,7 @@ SDValue SelectionDAGBuilder::getValueImpl(const Value *V) {
1952
1952
return DAG.getMDNode (cast<MDNode>(MD->getMetadata ()));
1953
1953
1954
1954
if (const auto *BB = dyn_cast<BasicBlock>(V))
1955
- return DAG.getBasicBlock (FuncInfo.MBBMap [BB] );
1955
+ return DAG.getBasicBlock (FuncInfo.getMBB (BB) );
1956
1956
1957
1957
llvm_unreachable (" Can't get register for value!" );
1958
1958
}
@@ -1972,7 +1972,7 @@ void SelectionDAGBuilder::visitCatchPad(const CatchPadInst &I) {
1972
1972
1973
1973
void SelectionDAGBuilder::visitCatchRet (const CatchReturnInst &I) {
1974
1974
// Update machine-CFG edge.
1975
- MachineBasicBlock *TargetMBB = FuncInfo.MBBMap [ I.getSuccessor ()] ;
1975
+ MachineBasicBlock *TargetMBB = FuncInfo.getMBB ( I.getSuccessor ()) ;
1976
1976
FuncInfo.MBB ->addSuccessor (TargetMBB);
1977
1977
TargetMBB->setIsEHCatchretTarget (true );
1978
1978
DAG.getMachineFunction ().setHasEHCatchret (true );
@@ -2000,7 +2000,7 @@ void SelectionDAGBuilder::visitCatchRet(const CatchReturnInst &I) {
2000
2000
else
2001
2001
SuccessorColor = cast<Instruction>(ParentPad)->getParent ();
2002
2002
assert (SuccessorColor && " No parent funclet for catchret!" );
2003
- MachineBasicBlock *SuccessorColorMBB = FuncInfo.MBBMap [ SuccessorColor] ;
2003
+ MachineBasicBlock *SuccessorColorMBB = FuncInfo.getMBB ( SuccessorColor) ;
2004
2004
assert (SuccessorColorMBB && " No MBB for SuccessorColor!" );
2005
2005
2006
2006
// Create the terminator node.
@@ -2056,14 +2056,14 @@ static void findWasmUnwindDestinations(
2056
2056
const Instruction *Pad = EHPadBB->getFirstNonPHI ();
2057
2057
if (isa<CleanupPadInst>(Pad)) {
2058
2058
// Stop on cleanup pads.
2059
- UnwindDests.emplace_back (FuncInfo.MBBMap [ EHPadBB] , Prob);
2059
+ UnwindDests.emplace_back (FuncInfo.getMBB ( EHPadBB) , Prob);
2060
2060
UnwindDests.back ().first ->setIsEHScopeEntry ();
2061
2061
break ;
2062
2062
} else if (const auto *CatchSwitch = dyn_cast<CatchSwitchInst>(Pad)) {
2063
2063
// Add the catchpad handlers to the possible destinations. We don't
2064
2064
// continue to the unwind destination of the catchswitch for wasm.
2065
2065
for (const BasicBlock *CatchPadBB : CatchSwitch->handlers ()) {
2066
- UnwindDests.emplace_back (FuncInfo.MBBMap [ CatchPadBB] , Prob);
2066
+ UnwindDests.emplace_back (FuncInfo.getMBB ( CatchPadBB) , Prob);
2067
2067
UnwindDests.back ().first ->setIsEHScopeEntry ();
2068
2068
}
2069
2069
break ;
@@ -2105,19 +2105,19 @@ static void findUnwindDestinations(
2105
2105
BasicBlock *NewEHPadBB = nullptr ;
2106
2106
if (isa<LandingPadInst>(Pad)) {
2107
2107
// Stop on landingpads. They are not funclets.
2108
- UnwindDests.emplace_back (FuncInfo.MBBMap [ EHPadBB] , Prob);
2108
+ UnwindDests.emplace_back (FuncInfo.getMBB ( EHPadBB) , Prob);
2109
2109
break ;
2110
2110
} else if (isa<CleanupPadInst>(Pad)) {
2111
2111
// Stop on cleanup pads. Cleanups are always funclet entries for all known
2112
2112
// personalities.
2113
- UnwindDests.emplace_back (FuncInfo.MBBMap [ EHPadBB] , Prob);
2113
+ UnwindDests.emplace_back (FuncInfo.getMBB ( EHPadBB) , Prob);
2114
2114
UnwindDests.back ().first ->setIsEHScopeEntry ();
2115
2115
UnwindDests.back ().first ->setIsEHFuncletEntry ();
2116
2116
break ;
2117
2117
} else if (const auto *CatchSwitch = dyn_cast<CatchSwitchInst>(Pad)) {
2118
2118
// Add the catchpad handlers to the possible destinations.
2119
2119
for (const BasicBlock *CatchPadBB : CatchSwitch->handlers ()) {
2120
- UnwindDests.emplace_back (FuncInfo.MBBMap [ CatchPadBB] , Prob);
2120
+ UnwindDests.emplace_back (FuncInfo.getMBB ( CatchPadBB) , Prob);
2121
2121
// For MSVC++ and the CLR, catchblocks are funclets and need prologues.
2122
2122
if (IsMSVCCXX || IsCoreCLR)
2123
2123
UnwindDests.back ().first ->setIsEHFuncletEntry ();
@@ -2777,7 +2777,7 @@ void SelectionDAGBuilder::visitBr(const BranchInst &I) {
2777
2777
MachineBasicBlock *BrMBB = FuncInfo.MBB ;
2778
2778
2779
2779
// Update machine-CFG edges.
2780
- MachineBasicBlock *Succ0MBB = FuncInfo.MBBMap [ I.getSuccessor (0 )] ;
2780
+ MachineBasicBlock *Succ0MBB = FuncInfo.getMBB ( I.getSuccessor (0 )) ;
2781
2781
2782
2782
if (I.isUnconditional ()) {
2783
2783
// Update machine-CFG edges.
@@ -2799,7 +2799,7 @@ void SelectionDAGBuilder::visitBr(const BranchInst &I) {
2799
2799
// If this condition is one of the special cases we handle, do special stuff
2800
2800
// now.
2801
2801
const Value *CondVal = I.getCondition ();
2802
- MachineBasicBlock *Succ1MBB = FuncInfo.MBBMap [ I.getSuccessor (1 )] ;
2802
+ MachineBasicBlock *Succ1MBB = FuncInfo.getMBB ( I.getSuccessor (1 )) ;
2803
2803
2804
2804
// If this is a series of conditions that are or'd or and'd together, emit
2805
2805
// this as a sequence of branches instead of setcc's with and/or operations.
@@ -3317,9 +3317,9 @@ void SelectionDAGBuilder::visitInvoke(const InvokeInst &I) {
3317
3317
3318
3318
// Retrieve successors. Look through artificial IR level blocks like
3319
3319
// catchswitch for successors.
3320
- MachineBasicBlock *Return = FuncInfo.MBBMap [ I.getSuccessor (0 )] ;
3320
+ MachineBasicBlock *Return = FuncInfo.getMBB ( I.getSuccessor (0 )) ;
3321
3321
const BasicBlock *EHPadBB = I.getSuccessor (1 );
3322
- MachineBasicBlock *EHPadMBB = FuncInfo.MBBMap [ EHPadBB] ;
3322
+ MachineBasicBlock *EHPadMBB = FuncInfo.getMBB ( EHPadBB) ;
3323
3323
3324
3324
// Deopt and ptrauth bundles are lowered in helper functions, and we don't
3325
3325
// have to do anything here to lower funclet bundles.
@@ -3427,13 +3427,13 @@ void SelectionDAGBuilder::visitCallBr(const CallBrInst &I) {
3427
3427
// Retrieve successors.
3428
3428
SmallPtrSet<BasicBlock *, 8 > Dests;
3429
3429
Dests.insert (I.getDefaultDest ());
3430
- MachineBasicBlock *Return = FuncInfo.MBBMap [ I.getDefaultDest ()] ;
3430
+ MachineBasicBlock *Return = FuncInfo.getMBB ( I.getDefaultDest ()) ;
3431
3431
3432
3432
// Update successor info.
3433
3433
addSuccessorWithProb (CallBrMBB, Return, BranchProbability::getOne ());
3434
3434
for (unsigned i = 0 , e = I.getNumIndirectDests (); i < e; ++i) {
3435
3435
BasicBlock *Dest = I.getIndirectDest (i);
3436
- MachineBasicBlock *Target = FuncInfo.MBBMap [ Dest] ;
3436
+ MachineBasicBlock *Target = FuncInfo.getMBB ( Dest) ;
3437
3437
Target->setIsInlineAsmBrIndirectTarget ();
3438
3438
Target->setMachineBlockAddressTaken ();
3439
3439
Target->setLabelMustBeEmitted ();
@@ -3525,7 +3525,7 @@ void SelectionDAGBuilder::visitIndirectBr(const IndirectBrInst &I) {
3525
3525
if (!Inserted)
3526
3526
continue ;
3527
3527
3528
- MachineBasicBlock *Succ = FuncInfo.MBBMap [BB] ;
3528
+ MachineBasicBlock *Succ = FuncInfo.getMBB (BB) ;
3529
3529
addSuccessorWithProb (IndirectBrMBB, Succ);
3530
3530
}
3531
3531
IndirectBrMBB->normalizeSuccProbs ();
@@ -8628,7 +8628,7 @@ SDValue SelectionDAGBuilder::lowerStartEH(SDValue Chain,
8628
8628
unsigned CallSiteIndex = FuncInfo.getCurrentCallSite ();
8629
8629
if (CallSiteIndex) {
8630
8630
MF.setCallSiteBeginLabel (BeginLabel, CallSiteIndex);
8631
- LPadToCallSiteMap[FuncInfo.MBBMap [ EHPadBB] ].push_back (CallSiteIndex);
8631
+ LPadToCallSiteMap[FuncInfo.getMBB ( EHPadBB) ].push_back (CallSiteIndex);
8632
8632
8633
8633
// Now that the call site is handled, stop tracking it.
8634
8634
FuncInfo.setCurrentCallSite (0 );
@@ -8659,7 +8659,7 @@ SDValue SelectionDAGBuilder::lowerEndEH(SDValue Chain, const InvokeInst *II,
8659
8659
EHInfo->addIPToStateRange (II, BeginLabel, EndLabel);
8660
8660
} else if (!isScopedEHPersonality (Pers)) {
8661
8661
assert (EHPadBB);
8662
- MF.addInvoke (FuncInfo.MBBMap [ EHPadBB] , BeginLabel, EndLabel);
8662
+ MF.addInvoke (FuncInfo.getMBB ( EHPadBB) , BeginLabel, EndLabel);
8663
8663
}
8664
8664
8665
8665
return Chain;
@@ -11826,7 +11826,7 @@ SelectionDAGBuilder::HandlePHINodesInSuccessorBlocks(const BasicBlock *LLVMBB) {
11826
11826
// block.
11827
11827
for (const BasicBlock *SuccBB : successors (LLVMBB->getTerminator ())) {
11828
11828
if (!isa<PHINode>(SuccBB->begin ())) continue ;
11829
- MachineBasicBlock *SuccMBB = FuncInfo.MBBMap [ SuccBB] ;
11829
+ MachineBasicBlock *SuccMBB = FuncInfo.getMBB ( SuccBB) ;
11830
11830
11831
11831
// If this terminator has multiple identical successors (common for
11832
11832
// switches), only handle each succ once.
@@ -12306,15 +12306,15 @@ void SelectionDAGBuilder::visitSwitch(const SwitchInst &SI) {
12306
12306
CaseClusterVector Clusters;
12307
12307
Clusters.reserve (SI.getNumCases ());
12308
12308
for (auto I : SI.cases ()) {
12309
- MachineBasicBlock *Succ = FuncInfo.MBBMap [ I.getCaseSuccessor ()] ;
12309
+ MachineBasicBlock *Succ = FuncInfo.getMBB ( I.getCaseSuccessor ()) ;
12310
12310
const ConstantInt *CaseVal = I.getCaseValue ();
12311
12311
BranchProbability Prob =
12312
12312
BPI ? BPI->getEdgeProbability (SI.getParent (), I.getSuccessorIndex ())
12313
12313
: BranchProbability (1 , SI.getNumCases () + 1 );
12314
12314
Clusters.push_back (CaseCluster::range (CaseVal, CaseVal, Succ, Prob));
12315
12315
}
12316
12316
12317
- MachineBasicBlock *DefaultMBB = FuncInfo.MBBMap [ SI.getDefaultDest ()] ;
12317
+ MachineBasicBlock *DefaultMBB = FuncInfo.getMBB ( SI.getDefaultDest ()) ;
12318
12318
12319
12319
// Cluster adjacent cases with the same destination. We do this at all
12320
12320
// optimization levels because it's cheap to do and will make codegen faster
@@ -12368,7 +12368,7 @@ void SelectionDAGBuilder::visitSwitch(const SwitchInst &SI) {
12368
12368
// Scale the branchprobability for DefaultMBB if the peel occurs and
12369
12369
// DefaultMBB is not replaced.
12370
12370
if (PeeledCaseProb != BranchProbability::getZero () &&
12371
- DefaultMBB == FuncInfo.MBBMap [ SI.getDefaultDest ()] )
12371
+ DefaultMBB == FuncInfo.getMBB ( SI.getDefaultDest ()) )
12372
12372
DefaultProb = scaleCaseProbality (DefaultProb, PeeledCaseProb);
12373
12373
WorkList.push_back (
12374
12374
{PeeledSwitchMBB, First, Last, nullptr , nullptr , DefaultProb});
0 commit comments