This patch adds a helper class (CGLoopInfo) for marking memory instructions with llvm.mem.parallel_loop_access metadata.
It also adds a simple initial version of codegen for pragma omp simd (it will change in the future to support all the clauses). Differential revision: http://reviews.llvm.org/D3644 llvm-svn: 209411
This commit is contained in:
@@ -35,7 +35,8 @@ using namespace CodeGen;
|
||||
|
||||
CodeGenFunction::CodeGenFunction(CodeGenModule &cgm, bool suppressNewContext)
|
||||
: CodeGenTypeCache(cgm), CGM(cgm), Target(cgm.getTarget()),
|
||||
Builder(cgm.getModule().getContext()), CapturedStmtInfo(nullptr),
|
||||
Builder(cgm.getModule().getContext(), llvm::ConstantFolder(),
|
||||
CGBuilderInserterTy(this)), CapturedStmtInfo(nullptr),
|
||||
SanitizePerformTypeCheck(CGM.getSanOpts().Null |
|
||||
CGM.getSanOpts().Alignment |
|
||||
CGM.getSanOpts().ObjectSize |
|
||||
@@ -1644,3 +1645,30 @@ llvm::Value *CodeGenFunction::EmitFieldAnnotations(const FieldDecl *D,
|
||||
}
|
||||
|
||||
CodeGenFunction::CGCapturedStmtInfo::~CGCapturedStmtInfo() { }
|
||||
|
||||
void CodeGenFunction::InsertHelper(llvm::Instruction *I,
|
||||
const llvm::Twine &Name,
|
||||
llvm::BasicBlock *BB,
|
||||
llvm::BasicBlock::iterator InsertPt) const {
|
||||
LoopStack.InsertHelper(I);
|
||||
}
|
||||
|
||||
template <bool PreserveNames>
|
||||
void CGBuilderInserter<PreserveNames>::InsertHelper(
|
||||
llvm::Instruction *I, const llvm::Twine &Name, llvm::BasicBlock *BB,
|
||||
llvm::BasicBlock::iterator InsertPt) const {
|
||||
llvm::IRBuilderDefaultInserter<PreserveNames>::InsertHelper(I, Name, BB,
|
||||
InsertPt);
|
||||
if (CGF)
|
||||
CGF->InsertHelper(I, Name, BB, InsertPt);
|
||||
}
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define PreserveNames false
|
||||
#else
|
||||
#define PreserveNames true
|
||||
#endif
|
||||
template void CGBuilderInserter<PreserveNames>::InsertHelper(
|
||||
llvm::Instruction *I, const llvm::Twine &Name, llvm::BasicBlock *BB,
|
||||
llvm::BasicBlock::iterator InsertPt) const;
|
||||
#undef PreserveNames
|
||||
|
||||
Reference in New Issue
Block a user