[eigen] binary bloat with recent sse stuff |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: [eigen] binary bloat with recent sse stuff
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 3 Apr 2009 22:24:15 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=r2Foqe/xag/x316xYVnLYE4CdC4K6X/Iq3+H0oqLcmk=; b=tR4P4kBkk0Mof0fFqxqgt8/bUVgsIkez39XooSt8RjAh9O4pivNde6GtFXUCl0OMYo Fq3DxYslOGiyDWtlEIgGKC/SIF9ts2BNVBTt/O6b4tYjl0bYIiODrowmZHcVDoMNne2B PrcriyIVDkM+7IBhWLBhWRke+OB1e67o8EShU=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=W8Y4LuxwwkJRVElYn4N9RWDS47+7K6y5L+p0PzQsA13xdQPAkdkMrUWT2CkwOLDdfh X6fUf1yGjw8tVUzDZ0ZzZX0b7oBDVft44bbl8Co+Be/1Q4vqV4LxwKmfx7/Nf0TJXAMs 2W+m69MJfMnl3tDMaA1rwSu67u21GgJBOucng=
Hi,
Take the following advanced program:
#include <Eigen/Core>
int main(){}
Compile with -msse2 and look at the generated symbols:
bjacob@kiwi:~> g++ -msse2 -O2 -I kde/kdesupport/eigen2/ b.cpp -o b &&
nm b | grep Eigen
080485e0 t _GLOBAL__I__ZN5Eigen7ei_plogIU8__vectorfEET_S2_
08048a20 T _ZN5Eigen7ei_pcosIU8__vectorfEET_S2_
08048c00 T _ZN5Eigen7ei_pexpIU8__vectorfEET_S2_
08048cc0 T _ZN5Eigen7ei_plogIU8__vectorfEET_S2_
08048b10 T _ZN5Eigen7ei_psinIU8__vectorfEET_S2_
0804a2f0 b _ZN5EigenL10ei_p4f_2piE
0804a050 b _ZN5EigenL11ei_p4f_halfE
0804a0d0 b _ZN5EigenL11ei_p4i_0x7fE
0804a0a0 b _ZN5EigenL11ei_p4i_not1E
0804a1a0 b _ZN5EigenL13ei_p4f_exp_hiE
0804a1b0 b _ZN5EigenL13ei_p4f_exp_loE
0804a2b0 b _ZN5EigenL16ei_p4f_coscof_p0E
0804a2c0 b _ZN5EigenL16ei_p4f_coscof_p1E
0804a2d0 b _ZN5EigenL16ei_p4f_coscof_p2E
0804a080 b _ZN5EigenL16ei_p4f_sign_maskE
0804a280 b _ZN5EigenL16ei_p4f_sincof_p0E
0804a290 b _ZN5EigenL16ei_p4f_sincof_p1E
0804a2a0 b _ZN5EigenL16ei_p4f_sincof_p2E
0804a2e0 b _ZN5EigenL18ei_p4f_cephes_FOPIE
0804a060 b _ZN5EigenL19ei_p4f_min_norm_posE
0804a1c0 b _ZN5EigenL20ei_p4f_cephes_LOG2EFE
0804a0e0 b _ZN5EigenL20ei_p4f_cephes_SQRTHFE
0804a1d0 b _ZN5EigenL20ei_p4f_cephes_exp_C1E
0804a1e0 b _ZN5EigenL20ei_p4f_cephes_exp_C2E
0804a1f0 b _ZN5EigenL20ei_p4f_cephes_exp_p0E
0804a200 b _ZN5EigenL20ei_p4f_cephes_exp_p1E
0804a210 b _ZN5EigenL20ei_p4f_cephes_exp_p2E
0804a220 b _ZN5EigenL20ei_p4f_cephes_exp_p3E
0804a230 b _ZN5EigenL20ei_p4f_cephes_exp_p4E
0804a240 b _ZN5EigenL20ei_p4f_cephes_exp_p5E
0804a0f0 b _ZN5EigenL20ei_p4f_cephes_log_p0E
0804a100 b _ZN5EigenL20ei_p4f_cephes_log_p1E
0804a110 b _ZN5EigenL20ei_p4f_cephes_log_p2E
0804a120 b _ZN5EigenL20ei_p4f_cephes_log_p3E
0804a130 b _ZN5EigenL20ei_p4f_cephes_log_p4E
0804a140 b _ZN5EigenL20ei_p4f_cephes_log_p5E
0804a150 b _ZN5EigenL20ei_p4f_cephes_log_p6E
0804a160 b _ZN5EigenL20ei_p4f_cephes_log_p7E
0804a170 b _ZN5EigenL20ei_p4f_cephes_log_p8E
0804a180 b _ZN5EigenL20ei_p4f_cephes_log_q1E
0804a190 b _ZN5EigenL20ei_p4f_cephes_log_q2E
0804a070 b _ZN5EigenL20ei_p4f_inv_mant_maskE
0804a250 b _ZN5EigenL23ei_p4f_minus_cephes_DP1E
0804a260 b _ZN5EigenL23ei_p4f_minus_cephes_DP2E
0804a270 b _ZN5EigenL23ei_p4f_minus_cephes_DP3E
0804a040 b _ZN5EigenL8ei_p4f_1E
0804a090 b _ZN5EigenL8ei_p4i_1E
0804a0b0 b _ZN5EigenL8ei_p4i_2E
0804a0c0 b _ZN5EigenL8ei_p4i_4E
How can we prevent these unused constants from being generated?
Also, why are the ei_pcos/sin/exp/log functions being generated?
The code size is 17 kB.
Benoit