With trunk: (sid)988:tbm@em64t: ~] /usr/lib/gcc-snapshot/bin/g++ -O2 qucs-hic2_full.core.ii hic2_full.core.cpp: In member function 'void hic2_full::calcVerilog()': hic2_full.core.cpp:345: internal compiler error: vector VEC(gimple,base) push domain error, in tree_call_cdce at tree-call-cdce.c:890 Please submit a full bug report, with preprocessed source if appropriate. Works fine at -O
Created attachment 16208 [details] Preprocessed code
Reducing ...
Down to 340 lines or so and still going.
Reduced enough for me (40 lines): extern "C" { extern double exp (double __x) throw (); extern double log (double __x) throw (); extern double sqrt (double __x) throw (); } int hic2_full() { double zcx, zs, latl, FCxb, FCa_ck; double FCa, FFx, Dv_r; double Dv_j1, Dv_e; double Cjei, DFb, DIOY, vds_t, abet_t, ajep_t; double v_e, d00_logE0 ; sqrt(FFx); sqrt(FFx); sqrt(FFx); sqrt(FFx); sqrt(FFx); sqrt(FFx); sqrt(FFx); sqrt(FFx); sqrt(FFx); sqrt(FFx); sqrt(FFx); sqrt(FCa); sqrt(FCa); sqrt(FCa); sqrt(FCa); sqrt(FCa); sqrt(FCa); sqrt(FCa); sqrt(FCa); sqrt(FCa); log(FCxb); exp(FCa_ck); exp(FCa_ck); exp(FCa_ck); exp(FCa_ck); exp(FCa_ck); exp(FCa_ck); exp(FCa_ck); exp(FCa_ck); exp(FCa_ck); log(latl); exp(DIOY); log(ajep_t); sqrt(v_e); sqrt(v_e); sqrt(v_e); exp(abet_t); log(Cjei); exp((d00_logE0)/zcx); exp((d00_logE0)/zs); exp(Dv_e); exp(Dv_e); exp(Dv_e); exp(Dv_e); exp(Dv_e); exp(Dv_r); exp(Dv_r); exp(Dv_r); exp(Dv_r); exp(Dv_r); exp(Dv_r); log(1.0-(Dv_j1/vds_t)); exp(DFb); exp(DFb); exp(DFb); exp(DFb); exp(DFb); exp(DFb); exp(DFb); exp(DFb); exp(DFb); exp(DFb); exp(DFb); exp(DFb); exp(DFb); }
Mine.
Subject: Bug 37353 Author: jakub Date: Wed Sep 10 08:00:40 2008 New Revision: 140208 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140208 Log: PR tree-optimization/37353 * tree-call-cdce.c (cond_dead_built_in_calls): Remove. (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use calls instead of cond_dead_built_in_calls. (tree_call_cdce): Add cond_dead_built_in_calls automatic variable, initalize the vector only before adding first entry. Use VEC_safe_push instead of VEC_quick_push. Pass cond_dead_built_in_calls to shrink_wrap_conditional_dead_built_in_calls call. * gcc.dg/pr37353.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr37353.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-call-cdce.c
Fixed.