Commit 903a33c9 by Daniel Berlin Committed by Daniel Berlin

lambda-code.c (can_convert_to_perfect_nest): Make checking match up with what…

lambda-code.c (can_convert_to_perfect_nest): Make checking match up with what perfect_nestify can actually handle.


2004-12-18  Daniel Berlin  <dberlin@dberlin.org>

        * lambda-code.c (can_convert_to_perfect_nest): Make checking
	match up with what perfect_nestify can actually handle.
	(perfect_nestify): Don't return false in the phi node loop.

From-SVN: r92381
parent 9548f059
2004-12-18 Daniel Berlin <dberlin@dberlin.org>
* lambda-code.c (can_convert_to_perfect_nest): Make checking
match up with what perfect_nestify can actually handle.
(perfect_nestify): Don't return false in the phi node loop.
2004-12-18 Richard Henderson <rth@redhat.com>
* config/i386/i386.md (SSEINT16): New.
......
......@@ -2189,9 +2189,10 @@ can_convert_to_perfect_nest (struct loop *loop,
VEC (tree) *loopivs)
{
basic_block *bbs;
tree exit_condition;
tree exit_condition, phi;
size_t i;
block_stmt_iterator bsi;
basic_block exitdest;
/* Can't handle triply nested+ loops yet. */
if (!loop->inner || loop->inner->inner)
......@@ -2233,6 +2234,16 @@ can_convert_to_perfect_nest (struct loop *loop,
}
}
}
/* We also need to make sure the loop exit only has simple copy phis in it,
otherwise we don't know how to transform it into a perfect nest right
now. */
exitdest = loop->single_exit->dest;
for (phi = phi_nodes (exitdest); phi; phi = PHI_CHAIN (phi))
if (PHI_NUM_ARGS (phi) != 1)
return false;
return true;
}
......@@ -2309,9 +2320,6 @@ perfect_nestify (struct loops *loops,
for (phi = phi_nodes (olddest); phi; phi = PHI_CHAIN (phi))
{
/* These should be simple exit phi copies. */
if (PHI_NUM_ARGS (phi) != 1)
return false;
VEC_safe_push (tree, phis, PHI_RESULT (phi));
VEC_safe_push (tree, phis, PHI_ARG_DEF (phi, 0));
mark_for_rewrite (PHI_RESULT (phi));
......
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