From b83c13808a066e04514a50133de23528871ac7a7 Mon Sep 17 00:00:00 2001 From: Mark Horvath Date: Fri, 12 Apr 2024 17:17:54 +0200 Subject: [PATCH 1/2] vscode disassemble task --- .devcontainer/disassemble.sh | 31 +++++++++++++++++++++++++++++++ .devcontainer/install_deps.sh | 2 +- .vscode/tasks.json | 18 ++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100755 .devcontainer/disassemble.sh diff --git a/.devcontainer/disassemble.sh b/.devcontainer/disassemble.sh new file mode 100755 index 000000000..4173251c7 --- /dev/null +++ b/.devcontainer/disassemble.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +# SPDX-FileCopyrightText: 2024 Arm Limited and/or its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +set -eu + +FILE_PATH="$1" + +echo "Active file: ${FILE_PATH}" + +if [[ ! "${FILE_PATH}" =~ ^kleidicv/src/.*/.*[_neon|_sve2|_sme2].cpp$ ]]; then + echo "Wrong source file! Please open a .cpp file from the 'kleidicv/src' directory ending '_neon', '_sve2' or '_sme2'!" + exit 0 +fi + +if [[ "${FILE_PATH}" =~ _neon.cpp$ ]]; then + SIMD_BUILD_DIRECTORY=kleidicv_neon.dir +elif [[ "${FILE_PATH}" =~ _sve2.cpp$ ]]; then + SIMD_BUILD_DIRECTORY=kleidicv_sve2.dir +elif [[ "${FILE_PATH}" =~ _sme2.cpp$ ]]; then + SIMD_BUILD_DIRECTORY=kleidicv_sme2.dir +else + echo "Unexpected filename!" + exit 1 +fi + +OBJECT_PATH="build/kleidicv/kleidicv/CMakeFiles/${SIMD_BUILD_DIRECTORY}/${FILE_PATH#kleidicv/}.o" + +llvm-objdump -d -r --mattr=+sme2 "${OBJECT_PATH}" diff --git a/.devcontainer/install_deps.sh b/.devcontainer/install_deps.sh index a0c61e4b8..ec1bffeed 100755 --- a/.devcontainer/install_deps.sh +++ b/.devcontainer/install_deps.sh @@ -9,7 +9,7 @@ set -exu sudo apt-get update DEBIAN_FRONTEND=noninteractive sudo apt-get install --no-install-recommends -y \ qemu-user \ - clangd-${LLVM_VERSION} \ + "clangd-${LLVM_VERSION}" \ ccache \ gdb-multiarch \ git-email \ diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 4d4555906..fac18f466 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -171,7 +171,25 @@ "OPENCV_VERSION": "4.9.0", "OPENCV_URL": "/opt/opencv-4.9.0.tar.gz" } + }, + "group": { + "kind": "test" } + }, + { + "label": "Disassemble KleidiCV", + "type": "shell", + "command": "${workspaceFolder}/.devcontainer/disassemble.sh", + "args": [ + "${relativeFile}", + ], + "options": { + "cwd": "${workspaceFolder}" + }, + "dependsOn": [ + "Build KleidiCV" + ], + "problemMatcher": [] } ], "options": { -- GitLab From 8af8dcb84f73615b05ebad56afcfc0e64da8b6ff Mon Sep 17 00:00:00 2001 From: Mark Horvath Date: Mon, 15 Apr 2024 11:25:42 +0200 Subject: [PATCH 2/2] vscode coverage task --- .devcontainer/coverage.sh | 29 +++++++++++++++++++++++++++++ .vscode/tasks.json | 9 +++++++++ 2 files changed, 38 insertions(+) create mode 100755 .devcontainer/coverage.sh diff --git a/.devcontainer/coverage.sh b/.devcontainer/coverage.sh new file mode 100755 index 000000000..d16b5ed14 --- /dev/null +++ b/.devcontainer/coverage.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +# SPDX-FileCopyrightText: 2024 Arm Limited and/or its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +set -eu + +BUILD_ID="kleidicv-coverage" \ +CMAKE_CXX_FLAGS="--target=aarch64-linux-gnu --coverage" \ +CMAKE_EXE_LINKER_FLAGS="--rtlib=compiler-rt -static -fuse-ld=lld" \ +EXTRA_CMAKE_ARGS="-DKLEIDICV_ENABLE_SVE2=ON -DKLEIDICV_ENABLE_SVE2_SELECTIVELY=OFF" \ +./scripts/build.sh kleidicv-test + +# Clean any coverage results from previous runs +find build/kleidicv-coverage/ -type f -name *.gcda -delete + +LONG_VECTOR_TESTS="GRAY2.*:RGB*" +EXCLUDE_FLOAT_CONVERSION_TESTS="-FloatConversion*" + +qemu-aarch64 build/kleidicv-coverage/test/framework/kleidicv-framework-test +qemu-aarch64 -cpu cortex-a35 build/kleidicv-coverage/test/api/kleidicv-api-test --gtest_filter="${EXCLUDE_FLOAT_CONVERSION_TESTS}" +qemu-aarch64 -cpu max,sve128=on,sme=off build/kleidicv-coverage/test/api/kleidicv-api-test --vector-length=16 +qemu-aarch64 -cpu max,sve2048=on,sve-default-vector-length=256,sme=off \ + build/kleidicv-coverage/test/api/kleidicv-api-test --gtest_filter="${LONG_VECTOR_TESTS}" --vector-length=256 +qemu-aarch64 -cpu max,sve128=on,sme512=on build/kleidicv-coverage/test/api/kleidicv-api-test --vector-length=64 + +# Generate test coverage report +LLVM_COV=llvm-cov scripts/generate_coverage_report.py diff --git a/.vscode/tasks.json b/.vscode/tasks.json index fac18f466..3e6b35632 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -190,6 +190,15 @@ "Build KleidiCV" ], "problemMatcher": [] + }, + { + "label": "Generate coverage", + "type": "shell", + "command": "${workspaceFolder}/.devcontainer/coverage.sh", + "options": { + "cwd": "${workspaceFolder}" + }, + "problemMatcher": ["$gcc"] } ], "options": { -- GitLab