aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2008-09-03 20:16:26 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2008-09-03 18:16:26 +0000
commit39ecc018798bc85d22bfc3c3155986ab5b35f5ac (patch)
tree2ec6cd14c2fd416d7473c8942ba129ded5f4824b /gcc/gimple.c
parentcafea0e43647f764861b625232460c584fe11086 (diff)
downloadgcc-39ecc018798bc85d22bfc3c3155986ab5b35f5ac.zip
gcc-39ecc018798bc85d22bfc3c3155986ab5b35f5ac.tar.gz
gcc-39ecc018798bc85d22bfc3c3155986ab5b35f5ac.tar.bz2
re PR tree-optimization/37315 (gcc.c-torture/execute/931018-1.c int-compare.c ieee/inf-2.c mzero6.c)
PR tree-optimization/37315 * cgraph.c (cgraph_create_edge): Use gimple_has_body_p. * cgraphunit.c (verify_cgraph_node): drop gimple_body check. (cgraph_analyze_functions): Use node->analyzed (cgraph_mark_functions_to_output): Likewise. (cgraph_expand_function): All functions can be released after expanding. (cgraph_optimize): Use gimple_has_body_p. * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag. (cgraph_decide_inlining_incrementally): Likewise. (inline_transform): Inline transform. * tree-inline.c (initialize_cfun): Do now shallow copy structure; copy fields needed. (inlinable_function_p): Drop gimple_body check. (expand_call_inline): Use gimple_has_body_p. * gimple.c (gimple_has_body_p): New. * gimple.h (gimple_has_body_p): Add prototype. * tree-cfg.c (execute_build_cfg): Remove gimple_body. (dump_function_to_file): Use gimple_has_body_p check. From-SVN: r139945
Diffstat (limited to 'gcc/gimple.c')
-rw-r--r--gcc/gimple.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/gimple.c b/gcc/gimple.c
index 6e203b7..7419d85 100644
--- a/gcc/gimple.c
+++ b/gcc/gimple.c
@@ -1816,6 +1816,14 @@ gimple_body (tree fndecl)
return fn ? fn->gimple_body : NULL;
}
+/* Return true when FNDECL has Gimple body either in unlowered
+ or CFG form. */
+bool
+gimple_has_body_p (tree fndecl)
+{
+ struct function *fn = DECL_STRUCT_FUNCTION (fndecl);
+ return (gimple_body (fndecl) || (fn && fn->cfg));
+}
/* Detect flags from a GIMPLE_CALL. This is just like
call_expr_flags, but for gimple tuples. */