2011-11-29   Diego Novillo  <dnovillo@google.com>

		* gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
		Update field call_stmt_cannot_inline_p from call
		graph edge, if needed.
		* gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.

From-SVN: r181893
This commit is contained in:
Diego Novillo 2011-12-01 16:04:21 -05:00 committed by Diego Novillo
parent 0e485da09d
commit d4e5417a2f
3 changed files with 24 additions and 31 deletions

View File

@ -1,3 +1,14 @@
2011-12-01 Diego Novillo <dnovillo@google.com>
Revert
2011-11-29 Diego Novillo <dnovillo@google.com>
* gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
Update field call_stmt_cannot_inline_p from call
graph edge, if needed.
* gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
2011-12-01 Nathan Sidwell <nathan@acm.org>
PR gcov-profile/51113

View File

@ -5558,34 +5558,4 @@ gimple_asm_clobbers_memory_p (const_gimple stmt)
return false;
}
/* Set the inlinable status of GIMPLE_CALL S to INLINABLE_P. */
void
gimple_call_set_cannot_inline (gimple s, bool inlinable_p)
{
bool prev_inlinable_p;
GIMPLE_CHECK (s, GIMPLE_CALL);
prev_inlinable_p = gimple_call_cannot_inline_p (s);
if (inlinable_p)
s->gsbase.subcode |= GF_CALL_CANNOT_INLINE;
else
s->gsbase.subcode &= ~GF_CALL_CANNOT_INLINE;
/* If we have changed the inlinable attribute, and there is a call
graph edge going out of this statement, update its inlinable
attribute as well. */
if (current_function_decl && prev_inlinable_p != inlinable_p)
{
struct cgraph_node *n = cgraph_get_node (current_function_decl);
struct cgraph_edge *e = cgraph_edge (n, s);
if (e)
e->call_stmt_cannot_inline_p = inlinable_p;
}
}
#include "gt-gimple.h"

View File

@ -1035,7 +1035,6 @@ extern bool walk_stmt_load_store_ops (gimple, void *,
extern bool gimple_ior_addresses_taken (bitmap, gimple);
extern bool gimple_call_builtin_p (gimple, enum built_in_function);
extern bool gimple_asm_clobbers_memory_p (const_gimple);
extern void gimple_call_set_cannot_inline (gimple, bool);
/* In gimplify.c */
extern tree create_tmp_var_raw (tree, const char *);
@ -2344,6 +2343,19 @@ gimple_call_tail_p (gimple s)
}
/* Set the inlinable status of GIMPLE_CALL S to INLINABLE_P. */
static inline void
gimple_call_set_cannot_inline (gimple s, bool inlinable_p)
{
GIMPLE_CHECK (s, GIMPLE_CALL);
if (inlinable_p)
s->gsbase.subcode |= GF_CALL_CANNOT_INLINE;
else
s->gsbase.subcode &= ~GF_CALL_CANNOT_INLINE;
}
/* Return true if GIMPLE_CALL S cannot be inlined. */
static inline bool