From: rguenth Date: Mon, 31 May 2010 11:01:32 +0000 (+0000) Subject: 2010-05-31 Richard Guenther X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a7b938d92bed9f068038d1409e9b0a5e94ffc57;p=thirdparty%2Fgcc.git 2010-05-31 Richard Guenther * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160067 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f21ba34e4f62..48206e579fcc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-05-31 Richard Guenther + + * tree-ssa-structalias.c (find_func_aliases): Handle + BUILT_IN_RETURN. + 2010-05-30 Jan Hubicka * predict.c (maybe_hot_edge_p): Calls to functions called once is cold. diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index a851ef2e2e9a..d70b36c3498f 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -4241,6 +4241,26 @@ find_func_aliases (gimple origt) /* va_end doesn't have any effect that matters. */ case BUILT_IN_VA_END: return; + /* Alternate return. Simply give up for now. */ + case BUILT_IN_RETURN: + { + fi = NULL; + if (!in_ipa_mode + || !(fi = get_vi_for_tree (cfun->decl))) + make_constraint_from (get_varinfo (escaped_id), anything_id); + else if (in_ipa_mode + && fi != NULL) + { + struct constraint_expr lhs, rhs; + lhs = get_function_part_constraint (fi, fi_result); + rhs.var = anything_id; + rhs.offset = 0; + rhs.type = SCALAR; + get_constraint_for (gimple_return_retval (t), &rhsc); + process_constraint (new_constraint (lhs, rhs)); + } + return; + } /* printf-style functions may have hooks to set pointers to point to somewhere into the generated string. Leave them for a later excercise... */