Skip to content
Snippets Groups Projects
Commit df921aef authored by John McCall's avatar John McCall
Browse files

Make CGBuilderTy a typedef again; its functionality has been rolled back

into IRBuilder.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107687 91177308-0d34-0410-b5e6-96231b3b80d8
parent 1693e154
No related branches found
No related tags found
No related merge requests found
......@@ -17,58 +17,11 @@ namespace CodeGen {
// Don't preserve names on values in an optimized build.
#ifdef NDEBUG
typedef llvm::IRBuilder<false> CGBuilderSuperTy;
typedef llvm::IRBuilder<false> CGBuilderTy;
#else
typedef llvm::IRBuilder<> CGBuilderSuperTy;
typedef llvm::IRBuilder<> CGBuilderTy;
#endif
/// IR generation's wrapper around an LLVM IRBuilder.
class CGBuilderTy : public CGBuilderSuperTy {
public:
CGBuilderTy(llvm::LLVMContext &Context) : CGBuilderSuperTy(Context) {}
CGBuilderTy(llvm::BasicBlock *Block) : CGBuilderSuperTy(Block) {}
CGBuilderTy(llvm::BasicBlock *Block, llvm::BasicBlock::iterator Point)
: CGBuilderSuperTy(Block, Point) {}
CGBuilderTy(const CGBuilderTy &Builder)
: CGBuilderSuperTy(Builder.getContext()) {
if (Builder.GetInsertBlock())
SetInsertPoint(Builder.GetInsertBlock(), Builder.GetInsertPoint());
}
/// A saved insertion point.
class InsertPoint {
llvm::BasicBlock *Block;
llvm::BasicBlock::iterator Point;
public:
InsertPoint(llvm::BasicBlock *Block, llvm::BasicBlock::iterator Point)
: Block(Block), Point(Point) {}
bool isSet() const { return (Block != 0); }
llvm::BasicBlock *getBlock() const { return Block; }
llvm::BasicBlock::iterator getPoint() const { return Point; }
};
InsertPoint saveIP() const {
return InsertPoint(GetInsertBlock(), GetInsertPoint());
}
InsertPoint saveAndClearIP() {
InsertPoint IP(GetInsertBlock(), GetInsertPoint());
ClearInsertionPoint();
return IP;
}
void restoreIP(InsertPoint IP) {
if (IP.isSet())
SetInsertPoint(IP.getBlock(), IP.getPoint());
else
ClearInsertionPoint();
}
};
} // end namespace CodeGen
} // end namespace clang
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment