Skip to content

Trk::Surfaces. Reduce the number of @plt (out-of-line) calls to Eigen::internal methods

Christos Anastopoulos requested to merge ATLAS-EGamma/athena:CaloEx_test into master

Trk::Surfaces. Reduce the number of @plt (out-of-line) calls to Eigen::internal methods

The following prb target @amete

What this does

If you do something like

 llvm-objdump -D -s -C -g  /cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-05-25T2101/Athena/23.0.0/InstallArea/x86_64-centos7-gcc11-opt/lib/libTrkSurfaces.so > log_gcc

one can get

cat log_after_gcc | grep call | grep plt |wc
   2569   23093  237875
 cat log_gcc | grep plt |grep call |wc
   2601   23381  246939
 cat log_clang | grep plt |grep call |wc
   2566   23094  223838

Futhermore

ls -ltsh x86_64-centos7-gcc11-opt/lib/libTrkSurfaces.so -lts
616K -rwxr-xr-x. 1 christos zp 615K Jun  2 00:34 x86_64-centos7-gcc11-opt/lib/libTrkSurfaces.so

ls -ltsh /cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-05-31T2101/Athena/23.0.0/InstallArea/x86_64-centos7-gcc11-opt/lib/libTrkSurfaces.so
623K -rwxr-xr-x. 1 cvmfs cvmfs 623K May 31 21:37 /cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc11-opt/2022-05-31T2101/Athena/23.0.0/InstallArea/x86_64-centos7-gcc11-opt/lib/libTrkSurfaces.so

The plt calls to Eigen methods go down and the .so size also ... Now I can reduce a bit further but 1st lets see if makes any difference to something like CaloExtensionBuilderAlg1st. (I think we skimmed ~5ms per event but still this one is ~15 ms slower in gcc than clang)

Edited by Christos Anastopoulos

Merge request reports