https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91858
Bug ID: 91858 Summary: [9/10 Regression] Compile time hog w/ complex float trigonometric functions Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: compile-time-hog Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: x86_64-unknown-linux-gnu g++-10.0.0-alpha20190915 snapshot (r275736) linked against GNU MP 6.1.2 takes indefinite time when compiling the following testcase, reduced from test/std/numerics/complex.number/complex.transcendentals/tan.pass.cpp from the libcxx 9.0.0 test suite, w/ -O1: template <typename> class yx; template <typename wk> void operator== (yx<wk>, yx<wk>); template <> struct yx<float> { yx (_Complex float ph) : lu{ph} { } yx (float c0 = 0.0f, float m5 = 0.0f) : lu{c0, m5} { } _Complex float lu; }; template <class um> void al (yx<um> qo) { _Complex float xy = qo.lu, ny = __builtin_ctanf (xy); yx<float> k2 = ny, oi (1); k2 == oi; } void al () { al (yx<float> (10000, 10000)); } % timeout 10 g++-10.0.0-alpha20190915 -O1 -c ahpihctw.cpp zsh: exit 124 timeout 10 g++-10.0.0-alpha20190915 -O1 -c ahpihctw.cpp Some perf top entries: 51.41% libgmp.so.10.3.2 [.] __gmpn_mul_basecase 15.23% libgmp.so.10.3.2 [.] __gmpn_sub_n 11.09% libgmp.so.10.3.2 [.] __gmpn_add_n 10.50% libgmp.so.10.3.2 [.] __gmpn_sqr_basecase 6.00% libgmp.so.10.3.2 [.] __gmpn_rsblsh1_n 1.97% libgmp.so.10.3.2 [.] 0x00000000000468e3 1.84% libgmp.so.10.3.2 [.] __gmpn_lshiftc 0.69% libgmp.so.10.3.2 [.] __gmpn_copyi 0.53% libgmp.so.10.3.2 [.] __gmpn_lshift 0.36% libgmp.so.10.3.2 [.] __gmpn_rsh1sub_n 0.27% libgmp.so.10.3.2 [.] __gmpn_bdiv_dbm1c 0.03% libgmp.so.10.3.2 [.] 0x00000000000462fb 0.03% libgmp.so.10.3.2 [.] 0x000000000003c251 0.03% libgmp.so.10.3.2 [.] __gmpn_rsh1add_n I believe this was already reported somewhere but I failed to find the PR.