aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenFunction.h
diff options
context:
space:
mode:
authorAlexander Musman <alexander.musman@gmail.com>2014-05-22 08:54:05 +0000
committerAlexander Musman <alexander.musman@gmail.com>2014-05-22 08:54:05 +0000
commit515ad8c490582d9b3b71274ed9255dc4a23c4610 (patch)
tree1e04ab0b2131931f706383edba46261e93c58fc4 /clang/lib/CodeGen/CodeGenFunction.h
parent5f3ea477cf3b48710a5ef839624606311f0c4ab7 (diff)
downloadllvm-515ad8c490582d9b3b71274ed9255dc4a23c4610.zip
llvm-515ad8c490582d9b3b71274ed9255dc4a23c4610.tar.gz
llvm-515ad8c490582d9b3b71274ed9255dc4a23c4610.tar.bz2
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
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r--clang/lib/CodeGen/CodeGenFunction.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h
index 8c4029a..944a0cf1 100644
--- a/clang/lib/CodeGen/CodeGenFunction.h
+++ b/clang/lib/CodeGen/CodeGenFunction.h
@@ -16,6 +16,7 @@
#include "CGBuilder.h"
#include "CGDebugInfo.h"
+#include "CGLoopInfo.h"
#include "CGValue.h"
#include "CodeGenModule.h"
#include "CodeGenPGO.h"
@@ -129,8 +130,15 @@ public:
const TargetInfo &Target;
typedef std::pair<llvm::Value *, llvm::Value *> ComplexPairTy;
+ LoopInfoStack LoopStack;
CGBuilderTy Builder;
+ /// \brief CGBuilder insert helper. This function is called after an
+ /// instruction is created using Builder.
+ void InsertHelper(llvm::Instruction *I, const llvm::Twine &Name,
+ llvm::BasicBlock *BB,
+ llvm::BasicBlock::iterator InsertPt) const;
+
/// CurFuncDecl - Holds the Decl for the current outermost
/// non-closure context.
const Decl *CurFuncDecl;
@@ -1883,6 +1891,7 @@ public:
llvm::Value *GenerateCapturedStmtArgument(const CapturedStmt &S);
void EmitOMPParallelDirective(const OMPParallelDirective &S);
+ void EmitOMPSimdDirective(const OMPSimdDirective &S);
//===--------------------------------------------------------------------===//
// LValue Expression Emission