1156b1279SFrank Derry Wanye //===--- AlteraTidyModule.cpp - clang-tidy --------------------------------===// 2156b1279SFrank Derry Wanye // 3156b1279SFrank Derry Wanye // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4156b1279SFrank Derry Wanye // See https://llvm.org/LICENSE.txt for license information. 5156b1279SFrank Derry Wanye // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6156b1279SFrank Derry Wanye // 7156b1279SFrank Derry Wanye //===----------------------------------------------------------------------===// 8156b1279SFrank Derry Wanye 9156b1279SFrank Derry Wanye #include "../ClangTidy.h" 10156b1279SFrank Derry Wanye #include "../ClangTidyModule.h" 11156b1279SFrank Derry Wanye #include "../ClangTidyModuleRegistry.h" 1283af66e1SFrank Derry Wanye #include "IdDependentBackwardBranchCheck.h" 139ca6fc4eSFrank Derry Wanye #include "KernelNameRestrictionCheck.h" 14e69e551eSFrank Derry Wanye #include "SingleWorkItemBarrierCheck.h" 15156b1279SFrank Derry Wanye #include "StructPackAlignCheck.h" 165a87f81fSFrank Derry Wanye #include "UnrollLoopsCheck.h" 17156b1279SFrank Derry Wanye 18156b1279SFrank Derry Wanye using namespace clang::ast_matchers; 19156b1279SFrank Derry Wanye 20*7d2ea6c4SCarlos Galvez namespace clang::tidy { 21156b1279SFrank Derry Wanye namespace altera { 22156b1279SFrank Derry Wanye 23156b1279SFrank Derry Wanye class AlteraModule : public ClangTidyModule { 24156b1279SFrank Derry Wanye public: addCheckFactories(ClangTidyCheckFactories & CheckFactories)25156b1279SFrank Derry Wanye void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { 2683af66e1SFrank Derry Wanye CheckFactories.registerCheck<IdDependentBackwardBranchCheck>( 2783af66e1SFrank Derry Wanye "altera-id-dependent-backward-branch"); 289ca6fc4eSFrank Derry Wanye CheckFactories.registerCheck<KernelNameRestrictionCheck>( 299ca6fc4eSFrank Derry Wanye "altera-kernel-name-restriction"); 30e69e551eSFrank Derry Wanye CheckFactories.registerCheck<SingleWorkItemBarrierCheck>( 31e69e551eSFrank Derry Wanye "altera-single-work-item-barrier"); 32156b1279SFrank Derry Wanye CheckFactories.registerCheck<StructPackAlignCheck>( 33156b1279SFrank Derry Wanye "altera-struct-pack-align"); 345a87f81fSFrank Derry Wanye CheckFactories.registerCheck<UnrollLoopsCheck>("altera-unroll-loops"); 35156b1279SFrank Derry Wanye } 36156b1279SFrank Derry Wanye }; 37156b1279SFrank Derry Wanye 38156b1279SFrank Derry Wanye } // namespace altera 39156b1279SFrank Derry Wanye 40156b1279SFrank Derry Wanye // Register the AlteraTidyModule using this statically initialized variable. 41156b1279SFrank Derry Wanye static ClangTidyModuleRegistry::Add<altera::AlteraModule> 42156b1279SFrank Derry Wanye X("altera-module", "Adds Altera FPGA OpenCL lint checks."); 43156b1279SFrank Derry Wanye 44156b1279SFrank Derry Wanye // This anchor is used to force the linker to link in the generated object file 45156b1279SFrank Derry Wanye // and thus register the AlteraModule. 46156b1279SFrank Derry Wanye volatile int AlteraModuleAnchorSource = 0; 47156b1279SFrank Derry Wanye 48*7d2ea6c4SCarlos Galvez } // namespace clang::tidy 49