Commit 9f9ca914 by Jeff Law Committed by Jeff Law

re PR tree-optimization/47086 (ICE: verify_flow_info failed: BB 3 can not throw…

re PR tree-optimization/47086 (ICE: verify_flow_info failed: BB 3 can not throw but has an EH edge with -O -fexceptions -fnon-call-exceptions -ftrapv)


	* PR tree-optimization/47086
	* tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
	IVs from statements that might throw.

	* PR tree-optimization/47086
	* gcc.dg/pr47086.c: New test.

From-SVN: r168659
parent a67e7daa
2011-01-11 Jeff Law <law@redhat.com>
* PR tree-optimization/47086
* tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
IVs from statements that might throw.
2011-01-10 Jan Hubicka <jh@suse.cz> 2011-01-10 Jan Hubicka <jh@suse.cz>
PR lto/45375 PR lto/45375
......
2011-01-11 Jeff Law <law@redhat.com>
* PR tree-optimization/47086
* gcc.dg/pr47086.c: New test.
2011-01-11 Jason Merrill <jason@redhat.com> 2011-01-11 Jason Merrill <jason@redhat.com>
PR c++/46658 PR c++/46658
......
/* { dg-do compile } */
/* { dg-options "-O -fexceptions -fnon-call-exceptions -ftrapv" } */
void
foo ()
{
int n = 0;
while (1)
{
int i[n % 1];
n++;
}
}
/* Induction variable optimizations. /* Induction variable optimizations.
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -1102,6 +1102,12 @@ find_givs_in_stmt_scev (struct ivopts_data *data, gimple stmt, affine_iv *iv) ...@@ -1102,6 +1102,12 @@ find_givs_in_stmt_scev (struct ivopts_data *data, gimple stmt, affine_iv *iv)
|| contains_abnormal_ssa_name_p (iv->step)) || contains_abnormal_ssa_name_p (iv->step))
return false; return false;
/* If STMT could throw, then do not consider STMT as defining a GIV.
While this will suppress optimizations, we can not safely delete this
GIV and associated statements, even if it appears it is not used. */
if (stmt_could_throw_p (stmt))
return false;
return true; return true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment