diff --git a/scripts/callgrind.bash b/scripts/callgrind.bash index 9f13c7b..dd38a6b 100755 --- a/scripts/callgrind.bash +++ b/scripts/callgrind.bash @@ -4,10 +4,23 @@ set -euo pipefail IFS=$'\n\t' DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +: ${PROFILE:="perf"} +function main { + local additional_flags=() + if [ "$PROFILE" = "dev" ] || [ "$PROFILE" = "debug" ]; then + PROFILE="debug" + else + additional_flags+=(--profile "$PROFILE") + # We have to disable avx512 because valgrind does not yet support it. + export RUSTFLAGS="-C target-feature=-avx512" + fi -(cd "$DIR/../" && RUSTFLAGS="-C opt-level=0" cargo build --no-default-features) -valgrind --tool=callgrind --callgrind-out-file="$DIR/../callgrind.out" "$DIR/../target/debug/parse" "${@}" + (cd "$DIR/../" && RUSTFLAGS="-C target-cpu=x86-64-v3" cargo build --no-default-features "${additional_flags[@]}") + valgrind --tool=callgrind --callgrind-out-file="$DIR/../callgrind.out" "$DIR/../target/${PROFILE}/parse" "${@}" -echo "You probably want to run:" -echo "callgrind_annotate --auto=yes '$DIR/../callgrind.out'" + echo "You probably want to run:" + echo "callgrind_annotate --auto=yes '$DIR/../callgrind.out'" +} + +main "${@}" diff --git a/src/lib.rs b/src/lib.rs index c522cf6..de24125 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,3 @@ -#![feature(round_char_boundary)] #![feature(exit_status_error)] #![feature(trait_alias)] // TODO: #![warn(missing_docs)]