mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-02 22:26:07 +00:00
[NFC] Cleanup: BasicBlock::getInstList() and BasicBlock::getSublistAccess() are now private
We now have an adequate set of API functions, including BasicBlock::splice(), BasicBlock::erase(), Instruction::insertAt() etc. that we shouldn't need access to the underlying instruction list. Differential Revision: https://reviews.llvm.org/D139905
This commit is contained in:
parent
70174b8035
commit
c143b77b30
@ -89,6 +89,14 @@ public:
|
||||
using reverse_iterator = InstListType::reverse_iterator;
|
||||
using const_reverse_iterator = InstListType::const_reverse_iterator;
|
||||
|
||||
// These functions and classes need access to the instruction list.
|
||||
friend void Instruction::removeFromParent();
|
||||
friend iplist<Instruction>::iterator Instruction::eraseFromParent();
|
||||
friend BasicBlock::iterator Instruction::insertAt(BasicBlock *BB,
|
||||
BasicBlock::iterator It);
|
||||
friend class llvm::SymbolTableListTraits<llvm::Instruction>;
|
||||
friend class llvm::ilist_node_with_parent<llvm::Instruction, llvm::BasicBlock>;
|
||||
|
||||
/// Creates a new BasicBlock.
|
||||
///
|
||||
/// If the Parent parameter is specified, the basic block is automatically
|
||||
@ -366,18 +374,21 @@ public:
|
||||
}
|
||||
iterator_range<phi_iterator> phis();
|
||||
|
||||
private:
|
||||
/// Return the underlying instruction list container.
|
||||
///
|
||||
/// Currently you need to access the underlying instruction list container
|
||||
/// directly if you want to modify it.
|
||||
/// This is deliberately private because we have implemented an adequate set
|
||||
/// of functions to modify the list, including BasicBlock::splice(),
|
||||
/// BasicBlock::erase(), Instruction::insertAt() etc.
|
||||
const InstListType &getInstList() const { return InstList; }
|
||||
InstListType &getInstList() { return InstList; }
|
||||
InstListType &getInstList() { return InstList; }
|
||||
|
||||
/// Returns a pointer to a member of the instruction list.
|
||||
static InstListType BasicBlock::*getSublistAccess(Instruction*) {
|
||||
/// This is private on purpose, just like `getInstList()`.
|
||||
static InstListType BasicBlock::*getSublistAccess(Instruction *) {
|
||||
return &BasicBlock::InstList;
|
||||
}
|
||||
|
||||
public:
|
||||
/// Returns a pointer to the symbol table if one exists.
|
||||
ValueSymbolTable *getValueSymbolTable();
|
||||
|
||||
|
@ -482,7 +482,7 @@ void BasicBlock::splice(BasicBlock::iterator ToIt, BasicBlock *FromBB,
|
||||
|
||||
BasicBlock::iterator BasicBlock::erase(BasicBlock::iterator FromIt,
|
||||
BasicBlock::iterator ToIt) {
|
||||
return getInstList().erase(FromIt, ToIt);
|
||||
return InstList.erase(FromIt, ToIt);
|
||||
}
|
||||
|
||||
void BasicBlock::replacePhiUsesWith(BasicBlock *Old, BasicBlock *New) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user