1//===--- AlteraTidyModule.cpp - clang-tidy --------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#include "../ClangTidy.h"
10#include "../ClangTidyModule.h"
11#include "../ClangTidyModuleRegistry.h"
12#include "IdDependentBackwardBranchCheck.h"
13#include "KernelNameRestrictionCheck.h"
14#include "SingleWorkItemBarrierCheck.h"
15#include "StructPackAlignCheck.h"
16#include "UnrollLoopsCheck.h"
17
18using namespace clang::ast_matchers;
19
20namespace clang::tidy {
21namespace altera {
22
23class AlteraModule : public ClangTidyModule {
24public:
25 void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
26 CheckFactories.registerCheck<IdDependentBackwardBranchCheck>(
27 CheckName: "altera-id-dependent-backward-branch");
28 CheckFactories.registerCheck<KernelNameRestrictionCheck>(
29 CheckName: "altera-kernel-name-restriction");
30 CheckFactories.registerCheck<SingleWorkItemBarrierCheck>(
31 CheckName: "altera-single-work-item-barrier");
32 CheckFactories.registerCheck<StructPackAlignCheck>(
33 CheckName: "altera-struct-pack-align");
34 CheckFactories.registerCheck<UnrollLoopsCheck>(CheckName: "altera-unroll-loops");
35 }
36};
37
38} // namespace altera
39
40// Register the AlteraTidyModule using this statically initialized variable.
41static ClangTidyModuleRegistry::Add<altera::AlteraModule>
42 X("altera-module", "Adds Altera FPGA OpenCL lint checks.");
43
44// This anchor is used to force the linker to link in the generated object file
45// and thus register the AlteraModule.
46volatile int AlteraModuleAnchorSource = 0;
47
48} // namespace clang::tidy
49

source code of clang-tools-extra/clang-tidy/altera/AlteraTidyModule.cpp