Skip to content

Commit ee388d3

Browse files
committed
add pragma 'removefirstprivate'
1 parent fae1226 commit ee388d3

File tree

5 files changed

+14
-6
lines changed

5 files changed

+14
-6
lines changed

include/tsar/Support/Directives.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,9 @@ def AssertNoMacro : Clause<"nomacro", Assert>;
154154
def RegionName : Clause<"name", Region,
155155
[LParen, PPIdentifier, ZeroOrMore<[Comma, PPIdentifier]>, RParen]>;
156156

157+
def RemoveFirstPrivate : Clause<"removefirstprivate", Transform,
158+
[LParen, Identifier, Comma, OneOf<[Identifier, NumericConstant]>, RParen, ZeroOrMore<[Comma, LParen, Identifier, Comma, OneOf<[Identifier, NumericConstant]>, RParen]>]>;
159+
157160
def ReplaceMetadata : Clause<"replace", Metadata,
158161
[LParen,
159162
Identifier, LParen,

include/tsar/Transform/Clang/Passes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ llvm::ModulePass * createClangRenameLocalPass();
5757
void initializeClangRenameLocalPassPass(PassRegistry &Registry);
5858

5959
/// Creates a pass to perform remove-firstprivate.
60-
FunctionPass * createClangRemoveFirstPrivate();
60+
ModulePass * createClangRemoveFirstPrivate();
6161

6262
/// Initializes a pass to perform remove-firstprivate.
6363
void initializeClangRemoveFirstPrivatePass(PassRegistry &Registry);

include/tsar/Transform/Clang/RemoveFirstPrivate.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,16 @@
3131

3232
namespace llvm {
3333

34-
class ClangRemoveFirstPrivate : public FunctionPass, private bcl::Uncopyable {
34+
class ClangRemoveFirstPrivate : public ModulePass, private bcl::Uncopyable {
3535
public:
3636
static char ID;
3737

38-
ClangRemoveFirstPrivate() : FunctionPass(ID) {
38+
ClangRemoveFirstPrivate() : ModulePass(ID) {
3939
initializeClangRemoveFirstPrivatePass(*PassRegistry::getPassRegistry());
4040
}
4141

42-
bool runOnFunction(Function &F) override;
42+
bool runOnModule(Module &F) override;
4343
void getAnalysisUsage(AnalysisUsage &AU) const override;
4444
};
4545
}
46-
#endif//TSAR_CLANG_RFP_H
46+
#endif//TSAR_CLANG_RFP_H

lib/Transform/Clang/Passes.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,5 @@ void llvm::initializeClangTransform(PassRegistry &Registry) {
3737
initializeClangDVMHSMParallelizationPass(Registry);
3838
initializeClangLoopInterchangePass(Registry);
3939
initializeClangLoopReversePass(Registry);
40+
initializeClangRemoveFirstPrivatePass(Registry);
4041
}

lib/Transform/Clang/RemoveFirstPrivate.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ void ClangRemoveFirstPrivate::getAnalysisUsage(AnalysisUsage &AU) const {
6666
AU.setPreservesAll();
6767
}
6868

69-
FunctionPass *llvm::createClangRemoveFirstPrivate() {
69+
bool ClangRemoveFirstPrivate::runOnModule(Module &M) {
70+
return false;
71+
}
72+
73+
ModulePass *llvm::createClangRemoveFirstPrivate() {
7074
return new ClangRemoveFirstPrivate();
7175
}

0 commit comments

Comments
 (0)