Commit 22a5d013 by Michael Matz Committed by Michael Matz

re PR tree-optimization/33855 (Segfault in verify_ssa/execute_function_todo with -O)

        PR tree-optimization/33855

        * tree-ssa-phiopt.c (cond_store_replacement): Handle
        * COMPLEX_TYPE
        and VECTOR_TYPE.

        * gcc.c-torture/compile/pr33855.c: New testcase.

From-SVN: r129551
parent 174f8765
2007-10-22 Michael Matz <matz@suse.de>
PR tree-optimization/33855
* tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
and VECTOR_TYPE.
2007-10-22 Ira Rosen <irar@il.ibm.com> 2007-10-22 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/33854 PR tree-optimization/33854
2007-10-22 Michael Matz <matz@suse.de>
PR tree-optimization/33855
* gcc.c-torture/compile/pr33855.c: New testcase.
2007-10-22 Ira Rosen <irar@il.ibm.com> 2007-10-22 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/33854 PR tree-optimization/33854
/* Testcase by Martin Michlmayr <tbm@cyrius.com> */
/* Used to segfault due to cselim not marking the complex temp var
as GIMPLE reg. */
typedef struct {
int nsant, nvqd;
_Complex long double *vqd;
} vsorc_t;
vsorc_t vsorc;
void foo(int next_job, int ain_num, int iped, long t) {
long double zpnorm;
while (!next_job)
if (ain_num)
{
if (iped == 1)
zpnorm = 0.0;
int indx = vsorc.nvqd-1;
vsorc.vqd[indx] = t*1.0fj;
if (cabsl(vsorc.vqd[indx]) < 1.e-20)
vsorc.vqd[indx] = 0.0fj;
zpnorm = t;
if (zpnorm > 0.0)
iped = vsorc.nsant;
}
}
...@@ -1287,6 +1287,9 @@ cond_store_replacement (basic_block middle_bb, basic_block join_bb, ...@@ -1287,6 +1287,9 @@ cond_store_replacement (basic_block middle_bb, basic_block join_bb,
{ {
condstoretemp = create_tmp_var (TREE_TYPE (lhs), "cstore"); condstoretemp = create_tmp_var (TREE_TYPE (lhs), "cstore");
get_var_ann (condstoretemp); get_var_ann (condstoretemp);
if (TREE_CODE (TREE_TYPE (lhs)) == COMPLEX_TYPE
|| TREE_CODE (TREE_TYPE (lhs)) == VECTOR_TYPE)
DECL_GIMPLE_REG_P (condstoretemp) = 1;
} }
add_referenced_var (condstoretemp); add_referenced_var (condstoretemp);
......
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