7 return "arm_compute/core/NEON/kernels/assembly " \
8 "arm_compute/core/NEON/kernels/convolution/common " \
9 "arm_compute/core/NEON/kernels/convolution/depthwise " \
10 "arm_compute/core/NEON/kernels/convolution/winograd " \
11 "src/core/NEON/kernels/assembly " \
12 "src/core/NEON/kernels/convolution/winograd " \
13 "include/linux include " \
17 assert arch
in [
"armv7",
"aarch64"]
18 flags = [
"-std=c++14"]
19 flags.append(
"-DARM_COMPUTE_CPP_SCHEDULER=1")
20 flags.append(
"-DARM_COMPUTE_CL")
22 flags.append(
"-DARM_COMPUTE_AARCH64_V8_2")
28 if os.path.splitext(f)[1] !=
".cpp":
31 if ((
"OMPScheduler.cpp" in f)
or 32 (
"CLTracePoint.cpp" in f)
or 33 (
"NETracePoint.cpp" in f)
or 34 (
"TracePoint.cpp" in f)):
42 for i
in range(0, len(lines)):
45 if "/arm_conv/" in line:
48 if "/arm_gemm/" in line:
51 if "/convolution/" in line:
54 if "/validate_examples/" in line:
58 if ((
"Version.cpp" in line
and "arm_compute_version.embed" in line
and "file not found" in line)
or 59 (
"arm_fp16.h" in line)
or 61 (
"cast from pointer to smaller type 'uintptr_t' (aka 'unsigned int') loses information" in line)
or 62 (
"cast from pointer to smaller type 'cl_context_properties' (aka 'int') loses information" in line)
or 63 (
"cast from pointer to smaller type 'std::uintptr_t' (aka 'unsigned int') loses information" in line)
or 64 (
"NEMath.inl" in line
and "statement expression not allowed at file scope" in line)
or 65 (
"Utils.h" in line
and "no member named 'unmap' in 'arm_compute::Tensor'" in line)
or 66 (
"Utils.h" in line
and "no member named 'map' in 'arm_compute::Tensor'" in line)
or 67 (
"CPUUtils.cpp" in line
and "'asm/hwcap.h' file not found" in line)
or 68 (
"CPUUtils.cpp" in line
and "use of undeclared identifier 'HWCAP_SVE'" in line)
or 69 (
"'arm_compute_version.embed' file not found" in line) ):
75 elif "warning:" in line:
76 if (
"uninitialized record type: '__ret'" in line
or 77 "local variable '__bound_functor' is still referred to by the global variable '__once_callable'" in line
or 78 "assigning newly created 'gsl::owner<>'" in line
or 79 "calling legacy resource function without passing a 'gsl::owner<>'" in line
or 80 "deleting a pointer through a type that is not marked 'gsl::owner<>'" in line
or 81 (any(f
in line
for f
in [
"Error.cpp",
"Error.h"])
and "thrown exception type is not nothrow copy constructible" in line)
or 82 (any(f
in line
for f
in [
"Error.cpp",
"Error.h"])
and "uninitialized record type: 'args'" in line)
or 83 (any(f
in line
for f
in [
"Error.cpp",
"Error.h"])
and "do not call c-style vararg functions" in line)
or 84 (any(f
in line
for f
in [
"Error.cpp",
"Error.h"])
and "do not define a C-style variadic function" in line)
or 85 (
"TensorAllocator.cpp" in line
and "warning: pointer parameter 'ptr' can be pointer to const" in line)
or 86 (
"TensorAllocator.cpp" in line
and "warning: do not declare C-style arrays" in line)
or 87 (
"RawTensor.cpp" in line
and "warning: pointer parameter 'ptr' can be pointer to const" in line)
or 88 (
"RawTensor.cpp" in line
and "warning: do not declare C-style arrays" in line)
or 89 (
"NEMinMaxLocationKernel.cpp" in line
and "move constructors should be marked noexcept" in line)
or 90 (
"NEMinMaxLocationKernel.cpp" in line
and "move assignment operators should be marked noexcept" in line)
or 91 (
"CLMinMaxLocationKernel.cpp" in line
and "Forming reference to null pointer" in line)
or 92 (
"PMUCounter.cpp" in line
and "consider replacing 'long long' with 'int64'" in line)
or 93 (
"Validation.cpp" in line
and "parameter 'classified_labels' is unused" in line)
or 94 (
"Validation.cpp" in line
and "parameter 'expected_labels' is unused" in line)
or 95 (
"Reference.cpp" in line
and "parameter 'rois' is unused" in line)
or 96 (
"Reference.cpp" in line
and "parameter 'shapes' is unused" in line)
or 97 (
"Reference.cpp" in line
and re.search(
r"parameter '[^']+' is unused", line))
or 98 (
"ReferenceCPP.cpp" in line
and "parameter 'rois' is unused" in line)
or 99 (
"ReferenceCPP.cpp" in line
and "parameter 'srcs' is unused" in line)
or 100 (
"ReferenceCPP.cpp" in line
and re.search(
r"parameter '[^']+' is unused", line))
or 101 (
"NEGEMMMatrixMultiplyKernel.cpp" in line
and "do not use C-style cast to convert between unrelated types" in line)
or 102 (
"NEPoolingLayerKernel.cpp" in line
and "do not use C-style cast to convert between unrelated types" in line)
or 103 (
"NESoftmaxLayerKernel.cpp" in line
and "macro argument should be enclosed in parentheses" in line)
or 104 (
"GraphUtils.cpp" in line
and "consider replacing 'unsigned long' with 'uint32'" in line)
or 105 (
"GraphUtils.cpp" in line
and "consider replacing 'unsigned long' with 'uint64'" in line)
or 106 (
"ConvolutionLayer.cpp" in line
and "move assignment operators should be marked noexcept" in line)
or 107 (
"ConvolutionLayer.cpp" in line
and "move constructors should be marked noexcept" in line)
or 108 (
"parameter 'memory_manager' is unused" in line)
or 109 (
"parameter 'memory_manager' is copied for each invocation but only used as a const reference" in line)
or 110 (
"DeconvolutionLayer.cpp" in line
and "casting (double + 0.5) to integer leads to incorrect rounding; consider using lround" in line)
or 111 (
"NEWinogradLayerKernel.cpp" in line
and "use '= default' to define a trivial destructor" in line)
or 112 (
"NEGEMMLowpMatrixMultiplyCore.cpp" in line
and "constructor does not initialize these fields" in line)
or 113 (
"NEGEMMLowpAssemblyMatrixMultiplyCore" in line
and "constructor does not initialize these fields" in line)
or 114 (
"CpuDepthwiseConvolutionNativeKernel" in line
and re.search(
r"parameter '[^']+' is unused", line))
or 115 (
"CpuDepthwiseConvolutionAssemblyDispatch" in line
and re.search(
r"parameter '[^']+' is unused", line))
or 116 (
"CpuDepthwiseConvolutionAssemblyDispatch" in line
and "modernize-use-equals-default" in line)
or 117 (
"CPUUtils.cpp" in line
and "consider replacing 'unsigned long' with 'uint64'" in line)
or 118 (
"CPUUtils.cpp" in line
and "parameter 'cpusv' is unused" in line)
or 119 (
"CPUUtils.cpp" in line
and "warning: uninitialized record type" in line)
or 120 (
"Utils.h" in line
and "warning: Use of zero-allocated memory" in line)
or 121 (
"CpuDepthwiseConvolutionNativeKernel.cpp" in line
and "misc-non-private-member-variables-in-classes" in line)
or 122 (
"CpuDepthwiseConvolutionNativeKernel.cpp" in line
and "cppcoreguidelines-pro-type-member-init" in line)):
126 if "do not use C-style cast to convert between unrelated types" in line:
127 if i + 1 < len(lines)
and "vgetq_lane_f16" in lines[i + 1]:
131 if "use 'using' instead of 'typedef'" in line:
132 if i + 1 < len(lines)
and "BOOST_FIXTURE_TEST_SUITE" in lines[i + 1]:
136 if "do not call c-style vararg functions" in line:
137 if (i + 1 < len(lines)
and 138 (
"BOOST_TEST" in lines[i + 1]
or 139 "BOOST_FAIL" in lines[i + 1]
or 140 "BOOST_CHECK_THROW" in lines[i + 1]
or 141 "ARM_COMPUTE_ERROR_VAR" in lines[i + 1]
or 142 "ARM_COMPUTE_RETURN_ON" in lines[i + 1]
or 143 "syscall" in lines[i + 1])):
149 elif ((
"CLMinMaxLocationKernel.cpp" in line
and "'?' condition is false" in line)
or 150 (
"CLMinMaxLocationKernel.cpp" in line
and "Assuming the condition is false" in line)
or 151 (
"CLMinMaxLocationKernel.cpp" in line
and "Assuming pointer value is null" in line)
or 152 (
"CLMinMaxLocationKernel.cpp" in line
and "Forming reference to null pointer" in line)):
160 if __name__ ==
"__main__":
161 if len(sys.argv) != 2:
162 print(
"usage: {} CLANG-TIDY_OUTPUT_FILE".format(sys.argv[0]))
166 with open(sys.argv[1], mode=
"r")
as clang_tidy_file:
167 lines = clang_tidy_file.readlines()
169 print(
"\n".
join(errors))
171 sys.exit(0
if len(errors) == 0
else 1)
std::string join(T first, T last, const std::string &separator)
Helper function to concatenate multiple strings.
def filter_clang_tidy_lines(lines)
def get_list_flags(filename, arch)
SimpleTensor< T > range(SimpleTensor< T > &dst, float start, const size_t num_of_elements, float step)
def filter_files(list_files)