Skip to content
Draft
4 changes: 4 additions & 0 deletions include/tsar/Support/Directives.td
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,10 @@ def Rename : Clause<"rename", Transform>;
def LoopInterchange : Clause<"interchange", Transform,
[LParen, PPIdentifier, Comma, PPIdentifier, RParen]>;

def RemoveRedarray : Clause<"remove_redarray", Transform,
[LParen, Identifier, LSquare, NumericConstant, RSquare,
ZeroOrMore<[Comma, Identifier, LSquare, NumericConstant, RSquare]>, RParen]>;

def Replace : Clause<"replace", Transform,
[ZeroOrOne<[LParen, Identifier, ZeroOrMore<[Comma, Identifier]>, RParen]>]>;

Expand Down
2 changes: 2 additions & 0 deletions include/tsar/Transform/Clang/Passes.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@ void initializeClangLoopInterchangePass(PassRegistry &Registry);
/// Initialize a pass to reverse loop.
void initializeClangLoopReversePass(PassRegistry &Registry);

void initializeClangRemoveRedarrayPass(PassRegistry &Registry);

/// Create a pass to reverse loop.
ModulePass *createClangLoopReverse();
}
Expand Down
3 changes: 2 additions & 1 deletion lib/Transform/Clang/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ set(TRANSFORM_SOURCES Passes.cpp ExprPropagation.cpp Inline.cpp RenameLocal.cpp
DeadDeclsElimination.cpp Format.cpp OpenMPAutoPar.cpp DVMHWriter.cpp
SharedMemoryAutoPar.cpp DVMHDirecitves.cpp DVMHSMAutoPar.cpp
DVMHDataTransferIPO.cpp StructureReplacement.cpp LoopInterchange.cpp
LoopReversal.cpp)
LoopReversal.cpp RemoveRedarray.cpp)


if(MSVC_IDE)
file(GLOB_RECURSE TRANSFORM_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
Expand Down
1 change: 1 addition & 0 deletions lib/Transform/Clang/Passes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,6 @@ void llvm::initializeClangTransform(PassRegistry &Registry) {
initializeClangDVMHSMParallelizationPass(Registry);
initializeDVMHDataTransferIPOPassPass(Registry);
initializeClangLoopInterchangePass(Registry);
initializeClangRemoveRedarrayPass(Registry);
initializeClangLoopReversePass(Registry);
}
Loading