GCC Middle and Back End API Reference
|
Data Fields | |
enum pure_const_state_e | pure_const_state |
enum pure_const_state_e | state_previously_known |
bool | looping_previously_known |
bool | looping |
bool | can_throw |
Holder for the const_state. There is one of these per function decl.
bool funct_state_d::can_throw |
Referenced by special_builtin_state().
bool funct_state_d::looping |
True if the function could possibly infinite loop. There are a lot of ways that this could be determined. We are pretty conservative here. While it is possible to cse pure and const calls, it is not legal to have dce get rid of the call if there is a possibility that the call could infinite loop since this is a behavioral change.
Referenced by analyze_function(), check_call(), check_stmt(), skip_function_for_local_pure_const(), and special_builtin_state().
bool funct_state_d::looping_previously_known |
Referenced by self_recursive_p().
enum pure_const_state_e funct_state_d::pure_const_state |
See above.
Referenced by check_call(), and check_stmt().
enum pure_const_state_e funct_state_d::state_previously_known |
What user set here; we can be always sure about this.
Referenced by self_recursive_p().