|
GCC Middle and Back End API Reference
|

Public Member Functions | |
| split_info () | |
| ~split_info () | |
Data Fields | |
| basic_block * | bbs |
| auto_vec< gimple * > | memory_stores |
| int | need_init |
| auto_vec< hash_set< basic_block > * > | control_deps |
Another transformation of loops like:
for (i = INIT (); CHECK (i); i = NEXT ())
{
if (expr (a_1, a_2, ..., a_n)) // expr is pure
a_j = ...; // change at least one a_j
else
S; // not change any a_j
}
into:
for (i = INIT (); CHECK (i); i = NEXT ())
{
if (expr (a_1, a_2, ..., a_n))
a_j = ...;
else
{
S;
i = NEXT ();
break;
}
}
for (; CHECK (i); i = NEXT ())
{
S;
}
Data structure to hold temporary information during loop split upon semi-invariant conditional statement.
|
inline |
References bbs, control_deps, free(), and i.
| basic_block* split_info::bbs |
Referenced by split_info(), split_loop_on_cond(), and ~split_info().
| auto_vec<hash_set<basic_block> *> split_info::control_deps |
Referenced by ~split_info().
Referenced by find_vdef_in_loop(), and vuse_semi_invariant_p().
| int split_info::need_init |
Referenced by find_vdef_in_loop(), split_info(), and vuse_semi_invariant_p().