mirror of
https://github.com/intel/llvm.git
synced 2026-01-17 14:48:27 +08:00
[NFC] Cleanup: Remove Function::getBasicBlockList() when not required.
This is part of a series of patches that aim at making Function::getBasicBlockList() private. Differential Revision: https://reviews.llvm.org/D139910
This commit is contained in:
@@ -128,7 +128,7 @@ static void resolveTopLevelMetadata(llvm::Function *Fn,
|
||||
|
||||
// Find all llvm.dbg.declare intrinsics and resolve the DILocalVariable nodes
|
||||
// they are referencing.
|
||||
for (auto &BB : Fn->getBasicBlockList()) {
|
||||
for (auto &BB : *Fn) {
|
||||
for (auto &I : BB) {
|
||||
if (auto *DII = dyn_cast<llvm::DbgVariableIntrinsic>(&I)) {
|
||||
auto *DILocal = DII->getVariable();
|
||||
|
||||
@@ -122,7 +122,7 @@ findRSCallSites(llvm::Module &module, std::set<llvm::CallInst *> &rs_callsites,
|
||||
bool found = false;
|
||||
|
||||
for (auto &func : module.getFunctionList())
|
||||
for (auto &block : func.getBasicBlockList())
|
||||
for (auto &block : func)
|
||||
for (auto &inst : block) {
|
||||
llvm::CallInst *call_inst =
|
||||
llvm::dyn_cast_or_null<llvm::CallInst>(&inst);
|
||||
|
||||
@@ -136,7 +136,7 @@ SequenceBBQuery::BlockListTy
|
||||
SequenceBBQuery::rearrangeBB(const Function &F, const BlockListTy &BBList) {
|
||||
BlockListTy RearrangedBBSet;
|
||||
|
||||
for (auto &Block : F.getBasicBlockList())
|
||||
for (auto &Block : F)
|
||||
if (llvm::is_contained(BBList, &Block))
|
||||
RearrangedBBSet.push_back(&Block);
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ bool SMEABI::updateNewZAFunctions(Module *M, Function *F,
|
||||
Builder.CreateCall(EnableZAIntr->getFunctionType(), EnableZAIntr);
|
||||
|
||||
// Before returning, disable pstate.za
|
||||
for (BasicBlock &BB : F->getBasicBlockList()) {
|
||||
for (BasicBlock &BB : *F) {
|
||||
Instruction *T = BB.getTerminator();
|
||||
if (!T || !isa<ReturnInst>(T))
|
||||
continue;
|
||||
|
||||
@@ -272,7 +272,7 @@ bool CFGuard::runOnFunction(Function &F) {
|
||||
// instructions. Make a separate list of pointers to indirect
|
||||
// call/invoke/callbr instructions because the original instructions will be
|
||||
// deleted as the checks are added.
|
||||
for (BasicBlock &BB : F.getBasicBlockList()) {
|
||||
for (BasicBlock &BB : F) {
|
||||
for (Instruction &I : BB) {
|
||||
auto *CB = dyn_cast<CallBase>(&I);
|
||||
if (CB && CB->isIndirectCall() && !CB->hasFnAttr("guard_nocf")) {
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
TargetTransformInfo &TTI = TTIWP->getTTI(*Callee);
|
||||
|
||||
bool RemarksEnabled = false;
|
||||
const auto &BBs = CB.getCaller()->getBasicBlockList();
|
||||
const auto &BBs = *CB.getCaller();
|
||||
if (!BBs.empty()) {
|
||||
auto DI = OptimizationRemark(DEBUG_TYPE, "", DebugLoc(), &BBs.front());
|
||||
if (DI.isEnabled())
|
||||
|
||||
@@ -1836,10 +1836,9 @@ void DevirtModule::rebuildGlobal(VTableBits &B) {
|
||||
bool DevirtModule::areRemarksEnabled() {
|
||||
const auto &FL = M.getFunctionList();
|
||||
for (const Function &Fn : FL) {
|
||||
const auto &BBL = Fn.getBasicBlockList();
|
||||
if (BBL.empty())
|
||||
if (Fn.empty())
|
||||
continue;
|
||||
auto DI = OptimizationRemark(DEBUG_TYPE, "", DebugLoc(), &BBL.front());
|
||||
auto DI = OptimizationRemark(DEBUG_TYPE, "", DebugLoc(), &Fn.front());
|
||||
return DI.isEnabled();
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -1692,7 +1692,7 @@ void ModuleAddressSanitizer::poisonOneInitializer(Function &GlobalInit,
|
||||
IRB.CreateCall(AsanPoisonGlobals, ModuleNameAddr);
|
||||
|
||||
// Add calls to unpoison all globals before each return instruction.
|
||||
for (auto &BB : GlobalInit.getBasicBlockList())
|
||||
for (auto &BB : GlobalInit)
|
||||
if (ReturnInst *RI = dyn_cast<ReturnInst>(BB.getTerminator()))
|
||||
CallInst::Create(AsanUnpoisonGlobals, "", RI);
|
||||
}
|
||||
|
||||
@@ -381,7 +381,7 @@ int FunctionComparator::cmpConstants(const Constant *L,
|
||||
BasicBlock *RBB = RBA->getBasicBlock();
|
||||
if (LBB == RBB)
|
||||
return 0;
|
||||
for (BasicBlock &BB : F->getBasicBlockList()) {
|
||||
for (BasicBlock &BB : *F) {
|
||||
if (&BB == LBB) {
|
||||
assert(&BB != RBB);
|
||||
return -1;
|
||||
|
||||
@@ -2758,7 +2758,7 @@ llvm::InlineResult llvm::InlineFunction(CallBase &CB, InlineFunctionInfo &IFI,
|
||||
OrigBB->splice(CB.getIterator(), &*FirstNewBlock, FirstNewBlock->begin(),
|
||||
FirstNewBlock->end());
|
||||
// Remove the cloned basic block.
|
||||
Caller->getBasicBlockList().pop_back();
|
||||
Caller->back().eraseFromParent();
|
||||
|
||||
// If the call site was an invoke instruction, add a branch to the normal
|
||||
// destination.
|
||||
@@ -2932,7 +2932,7 @@ llvm::InlineResult llvm::InlineFunction(CallBase &CB, InlineFunctionInfo &IFI,
|
||||
Br->eraseFromParent();
|
||||
|
||||
// Now we can remove the CalleeEntry block, which is now empty.
|
||||
Caller->getBasicBlockList().erase(CalleeEntry);
|
||||
CalleeEntry->eraseFromParent();
|
||||
|
||||
// If we inserted a phi node, check to see if it has a single value (e.g. all
|
||||
// the entries are the same or undef). If so, remove the PHI so it doesn't
|
||||
|
||||
@@ -505,14 +505,14 @@ static void VerifyBlockShuffle(StringRef Source) {
|
||||
std::unique_ptr<Module> M = parseAssembly(Source.data(), Ctx);
|
||||
Function *F = &*M->begin();
|
||||
DenseMap<BasicBlock *, int> PreShuffleInstCnt;
|
||||
for (BasicBlock &BB : F->getBasicBlockList()) {
|
||||
for (BasicBlock &BB : *F) {
|
||||
PreShuffleInstCnt.insert({&BB, BB.size()});
|
||||
}
|
||||
std::mt19937 mt(Seed);
|
||||
std::uniform_int_distribution<int> RandInt(INT_MIN, INT_MAX);
|
||||
for (int i = 0; i < 100; i++) {
|
||||
Mutator->mutateModule(*M, RandInt(mt), Source.size(), Source.size() + 1024);
|
||||
for (BasicBlock &BB : F->getBasicBlockList()) {
|
||||
for (BasicBlock &BB : *F) {
|
||||
int PostShuffleIntCnt = BB.size();
|
||||
EXPECT_EQ(PostShuffleIntCnt, PreShuffleInstCnt[&BB]);
|
||||
}
|
||||
|
||||
@@ -1516,7 +1516,7 @@ if.end:
|
||||
}
|
||||
)");
|
||||
Function *Foo = M->getFunction("foo");
|
||||
auto BBs = Foo->getBasicBlockList().begin();
|
||||
auto BBs = Foo->begin();
|
||||
CallBrInst &CBI = cast<CallBrInst>(BBs->front());
|
||||
++BBs;
|
||||
++BBs;
|
||||
|
||||
@@ -321,8 +321,7 @@ getTopologicallySortedBlocks(llvm::Function *func) {
|
||||
blocks.insert(traversal.begin(), traversal.end());
|
||||
}
|
||||
}
|
||||
assert(blocks.size() == func->getBasicBlockList().size() &&
|
||||
"some blocks are not sorted");
|
||||
assert(blocks.size() == func->size() && "some blocks are not sorted");
|
||||
|
||||
return blocks;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user