This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
tree-ssa/lno compute_may_aliases failure
- From: Dorit Naishlos <DORIT at il dot ibm dot com>
- To: gcc at gcc dot gnu dot org
- Cc: Diego Novillo <dnovillo at redhat dot com>
- Date: Sun, 9 May 2004 23:36:48 +0300
- Subject: tree-ssa/lno compute_may_aliases failure
I added an invocation of compute_may_aliases pass (I need it after the
vectorizer, as suggested in http://gcc.gnu.org/ml/gcc/2004-02/msg01292.html
), and got a compilation failure during ssa_verify which directly follows
this new invocation of compute_may_aliases. Here is where I added the new
invocation (tree-optimize.c):
NEXT_PASS (pass_dse);
NEXT_PASS (DUP_PASS (pass_forwprop));
NEXT_PASS (DUP_PASS (pass_phiopt));
NEXT_PASS (pass_ccp);
NEXT_PASS (DUP_PASS (pass_redundant_phi));
NEXT_PASS (pass_fold_builtins);
NEXT_PASS (pass_split_crit_edges);
NEXT_PASS (pass_pre);
NEXT_PASS (pass_scev);
+ NEXT_PASS (DUP_PASS (pass_build_pta));
+ NEXT_PASS (DUP_PASS (pass_may_alias));
+ NEXT_PASS (DUP_PASS (pass_del_pta));
NEXT_PASS (pass_loop);
Is there a known reason why compute_may_aliases shouldn't be applied where
I applied it? should I have called an additional pass before it?
The compilation failure occurred in 6 SPEC benchmarks. Here is a small
test-case which triggers the problem (from SPEC's mesa):
float *gl_copy_map_points1f( int target,
int ustride, int uorder,
const float *points, unsigned int size)
{
float *buffer, *p;
unsigned int i, k;
buffer = (float *) malloc(uorder * size * sizeof(float));
if (buffer)
for(i=0, p=buffer; i<uorder; i++, points+=ustride)
for(k=0; k<size; k++)
*p++ = points[k];
return buffer;
}
This is the error I get (compiling the file above with just -O1):
In function `gl_copy_map_points1f':
eval_snippet.c:4: error: Missing definition
for SSA_NAME: TMT.12<D1116>_43
in statement:
TMT.12<D1116>_4 = PHI <TMT.12<D1116>_38(13), TMT.12<D1116>_43(10)>;
PHI argument
TMT.12<D1116>_43
for PHI node
TMT.12<D1116>_4 = PHI <TMT.12<D1116>_38(13), TMT.12<D1116>_43(10)>;
eval_snippet.c:4: error: Missing definition
for SSA_NAME: TMT.12<D1116>_43
in statement:
TMT.12<D1116>_39 = PHI <TMT.12<D1116>_38(14), TMT.12<D1116>_43(9)>;
PHI argument
TMT.12<D1116>_43
for PHI node
TMT.12<D1116>_39 = PHI <TMT.12<D1116>_38(14), TMT.12<D1116>_43(9)>;
eval_snippet.c:4: internal compiler error: verify_ssa failed.
thanks,
dorit