vporpo created this revision.
vporpo added reviewers: aeubanks, asbirlea.
Herald added subscribers: Moerafaat, zero9178, Enna1, bzcheeseman, mattd,
awarzynski, sdasgup3, wenzhicui, wrengr, ormris, cota, teijeong, rdzhabarov,
tatianashp, msifontes, jurahul, Kayjukh, grosul1, Joonsoo, liufengdb, aartbik,
mgester, arpith-jacob, antiagainst, shauheen, rriddle, mehdi_amini, hiraditya.
Herald added a reviewer: ftynse.
Herald added a project: All.
vporpo requested review of this revision.
Herald added subscribers: llvm-commits, lldb-commits, cfe-commits,
stephenneuendorffer, nicolasvasilache.
Herald added a reviewer: dcaballe.
Herald added projects: clang, LLDB, MLIR, LLVM.
This is part of a series of patches that aim at making
Function::getBasicBlockList() private.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D139910
Files:
clang/lib/CodeGen/CGVTables.cpp
lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp
llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp
llvm/lib/Target/AArch64/SMEABIPass.cpp
llvm/lib/Transforms/CFGuard/CFGuard.cpp
llvm/lib/Transforms/IPO/InlineSimple.cpp
llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
llvm/lib/Transforms/Utils/FunctionComparator.cpp
llvm/lib/Transforms/Utils/InlineFunction.cpp
llvm/unittests/FuzzMutate/StrategiesTest.cpp
llvm/unittests/IR/InstructionsTest.cpp
mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
Index: mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
===================================================================
--- mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
+++ mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
@@ -321,8 +321,7 @@
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;
}
Index: llvm/unittests/IR/InstructionsTest.cpp
===================================================================
--- llvm/unittests/IR/InstructionsTest.cpp
+++ llvm/unittests/IR/InstructionsTest.cpp
@@ -1516,7 +1516,7 @@
}
)");
Function *Foo = M->getFunction("foo");
- auto BBs = Foo->getBasicBlockList().begin();
+ auto BBs = Foo->begin();
CallBrInst &CBI = cast<CallBrInst>(BBs->front());
++BBs;
++BBs;
Index: llvm/unittests/FuzzMutate/StrategiesTest.cpp
===================================================================
--- llvm/unittests/FuzzMutate/StrategiesTest.cpp
+++ llvm/unittests/FuzzMutate/StrategiesTest.cpp
@@ -505,14 +505,14 @@
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]);
}
Index: llvm/lib/Transforms/Utils/InlineFunction.cpp
===================================================================
--- llvm/lib/Transforms/Utils/InlineFunction.cpp
+++ llvm/lib/Transforms/Utils/InlineFunction.cpp
@@ -2758,7 +2758,7 @@
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 @@
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
Index: llvm/lib/Transforms/Utils/FunctionComparator.cpp
===================================================================
--- llvm/lib/Transforms/Utils/FunctionComparator.cpp
+++ llvm/lib/Transforms/Utils/FunctionComparator.cpp
@@ -381,7 +381,7 @@
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;
Index: llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
===================================================================
--- llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+++ llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
@@ -1692,7 +1692,7 @@
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);
}
Index: llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
===================================================================
--- llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
+++ llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
@@ -1836,10 +1836,9 @@
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;
Index: llvm/lib/Transforms/IPO/InlineSimple.cpp
===================================================================
--- llvm/lib/Transforms/IPO/InlineSimple.cpp
+++ llvm/lib/Transforms/IPO/InlineSimple.cpp
@@ -50,7 +50,7 @@
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())
Index: llvm/lib/Transforms/CFGuard/CFGuard.cpp
===================================================================
--- llvm/lib/Transforms/CFGuard/CFGuard.cpp
+++ llvm/lib/Transforms/CFGuard/CFGuard.cpp
@@ -272,7 +272,7 @@
// 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")) {
Index: llvm/lib/Target/AArch64/SMEABIPass.cpp
===================================================================
--- llvm/lib/Target/AArch64/SMEABIPass.cpp
+++ llvm/lib/Target/AArch64/SMEABIPass.cpp
@@ -113,7 +113,7 @@
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;
Index: llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp
===================================================================
--- llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp
+++ llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp
@@ -136,7 +136,7 @@
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);
Index: lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp
===================================================================
--- lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp
+++ lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp
@@ -122,7 +122,7 @@
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);
Index: clang/lib/CodeGen/CGVTables.cpp
===================================================================
--- clang/lib/CodeGen/CGVTables.cpp
+++ clang/lib/CodeGen/CGVTables.cpp
@@ -128,7 +128,7 @@
// 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();
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits