gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
* 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: r181803
This commit is contained in:
parent
635a48fbd6
commit
e62acfd26f
3 changed files with 38 additions and 13 deletions
|
@ -1,3 +1,10 @@
|
|||
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-11-29 Sameera Deshpande <sameera.deshpande@arm.com>
|
||||
|
||||
* config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE.
|
||||
|
|
30
gcc/gimple.c
30
gcc/gimple.c
|
@ -5558,4 +5558,34 @@ 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"
|
||||
|
|
14
gcc/gimple.h
14
gcc/gimple.h
|
@ -1035,6 +1035,7 @@ 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 *);
|
||||
|
@ -2343,19 +2344,6 @@ 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
|
||||
|
|
Loading…
Add table
Reference in a new issue