Bug 37353 - [4.4 Regression] ICE: vector VEC(gimple,base) push domain error, in tree_call_cdce at tree-call-cdce.c:890
Summary: [4.4 Regression] ICE: vector VEC(gimple,base) push domain error, in tree_call...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 4.4.0
: P1 normal
Target Milestone: 4.4.0
Assignee: Jakub Jelinek
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2008-09-03 16:30 UTC by Martin Michlmayr
Modified: 2008-09-10 08:04 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2008-09-09 16:51:31


Attachments
Preprocessed code (138.85 KB, application/octet-stream)
2008-09-03 16:30 UTC, Martin Michlmayr
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Michlmayr 2008-09-03 16:30:10 UTC
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
Comment 1 Martin Michlmayr 2008-09-03 16:30:44 UTC
Created attachment 16208 [details]
Preprocessed code
Comment 2 Andrew Pinski 2008-09-03 20:53:28 UTC
Reducing ...
Comment 3 Andrew Pinski 2008-09-04 04:08:32 UTC
Down to 340 lines or so and still going.
Comment 4 Andrew Pinski 2008-09-04 06:53:32 UTC
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);
}
Comment 5 Jakub Jelinek 2008-09-09 16:51:31 UTC
Mine.
Comment 6 Jakub Jelinek 2008-09-10 08:02:03 UTC
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

Comment 7 Jakub Jelinek 2008-09-10 08:04:14 UTC
Fixed.