From 019d656ee3a2b839ad1419056dc00e572bfbf82e Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Thu, 28 Mar 2024 16:50:40 +0100 Subject: [PATCH] ActsPatternRecognition: Additional optimization in dbg build. Compile some additional functions with optimization and Eigen inlining in the dbg build because they're too slow otherwise. Speeds up tests in ActsMonitoring. --- Tracking/Acts/ActsPatternRecognition/CMakeLists.txt | 13 ++++++++++++- .../ActsPatternRecognition/src/GbtsSeedingTool.cxx | 9 ++++++++- .../src/OrthogonalSeedingTool.cxx | 9 ++++++++- .../Acts/ActsPatternRecognition/src/SeedingTool.cxx | 9 ++++++++- 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/Tracking/Acts/ActsPatternRecognition/CMakeLists.txt b/Tracking/Acts/ActsPatternRecognition/CMakeLists.txt index 158fec695ee7..53c15d9f76f2 100644 --- a/Tracking/Acts/ActsPatternRecognition/CMakeLists.txt +++ b/Tracking/Acts/ActsPatternRecognition/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ActsPatternRecognition ) @@ -36,3 +36,14 @@ atlas_add_component( ActsPatternRecognition xAODInDetMeasurement ) atlas_install_data( share/*.txt ) + + +if ( "${CMAKE_BUILD_TYPE}" STREQUAL "Debug" ) + set_source_files_properties( + ${CMAKE_CURRENT_SOURCE_DIR}/src/SeedingTool.cxx + ${CMAKE_CURRENT_SOURCE_DIR}/src/GbtsSeedingTool.cxx + ${CMAKE_CURRENT_SOURCE_DIR}/src/OrthogonalSeedingTool.cxx + PROPERTIES + COMPILE_FLAGS "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -UNDEBUG -fvisibility-inlines-hidden " + COMPILE_DEFINITIONS "FLATTEN" ) +endif() diff --git a/Tracking/Acts/ActsPatternRecognition/src/GbtsSeedingTool.cxx b/Tracking/Acts/ActsPatternRecognition/src/GbtsSeedingTool.cxx index 659770042412..c656d7f64f84 100644 --- a/Tracking/Acts/ActsPatternRecognition/src/GbtsSeedingTool.cxx +++ b/Tracking/Acts/ActsPatternRecognition/src/GbtsSeedingTool.cxx @@ -1,8 +1,14 @@ /* - Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration */ +#if defined(FLATTEN) && defined(__GNUC__) +// Avoid warning in dbg build +#pragma GCC optimize "-fno-var-tracking-assignments" +#endif + #include "src/GbtsSeedingTool.h" +#include "CxxUtils/inline_hints.h" namespace ActsTrk { @@ -43,6 +49,7 @@ namespace ActsTrk { return StatusCode::SUCCESS; } + ATH_FLATTEN StatusCode GbtsSeedingTool::createSeeds(const EventContext& ctx, const Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>& spContainer, diff --git a/Tracking/Acts/ActsPatternRecognition/src/OrthogonalSeedingTool.cxx b/Tracking/Acts/ActsPatternRecognition/src/OrthogonalSeedingTool.cxx index 9ed069765e96..170fd51e47d5 100644 --- a/Tracking/Acts/ActsPatternRecognition/src/OrthogonalSeedingTool.cxx +++ b/Tracking/Acts/ActsPatternRecognition/src/OrthogonalSeedingTool.cxx @@ -1,8 +1,14 @@ /* - Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration */ +#if defined(FLATTEN) && defined(__GNUC__) +// Avoid warning in dbg build +#pragma GCC optimize "-fno-var-tracking-assignments" +#endif + #include "src/OrthogonalSeedingTool.h" +#include "CxxUtils/inline_hints.h" namespace ActsTrk { @@ -91,6 +97,7 @@ namespace ActsTrk { return StatusCode::SUCCESS; } + ATH_FLATTEN StatusCode OrthogonalSeedingTool::createSeeds(const EventContext& /*ctx*/, const Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>& spContainer, diff --git a/Tracking/Acts/ActsPatternRecognition/src/SeedingTool.cxx b/Tracking/Acts/ActsPatternRecognition/src/SeedingTool.cxx index 9ee205402db4..19cdb0c48a74 100644 --- a/Tracking/Acts/ActsPatternRecognition/src/SeedingTool.cxx +++ b/Tracking/Acts/ActsPatternRecognition/src/SeedingTool.cxx @@ -1,6 +1,11 @@ -/* Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +/* Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration */ +#if defined(FLATTEN) && defined(__GNUC__) +// Avoid warning in dbg build +#pragma GCC optimize "-fno-var-tracking-assignments" +#endif + #include "src/SeedingTool.h" // ACTS @@ -11,6 +16,7 @@ #include "Acts/Seeding/SeedFinderConfig.hpp" #include "Acts/Definitions/Units.hpp" #include "Acts/Seeding/SeedConfirmationRangeConfig.hpp" +#include "CxxUtils/inline_hints.h" using namespace Acts::HashedStringLiteral; @@ -202,6 +208,7 @@ namespace ActsTrk { return StatusCode::SUCCESS; } +ATH_FLATTEN StatusCode SeedingTool::createSeeds(const EventContext& /*ctx*/, const Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>& spContainer, -- GitLab