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>
|
2011-11-29 Sameera Deshpande <sameera.deshpande@arm.com>
|
||||||
|
|
||||||
* config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE.
|
* 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;
|
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"
|
#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_ior_addresses_taken (bitmap, gimple);
|
||||||
extern bool gimple_call_builtin_p (gimple, enum built_in_function);
|
extern bool gimple_call_builtin_p (gimple, enum built_in_function);
|
||||||
extern bool gimple_asm_clobbers_memory_p (const_gimple);
|
extern bool gimple_asm_clobbers_memory_p (const_gimple);
|
||||||
|
extern void gimple_call_set_cannot_inline (gimple, bool);
|
||||||
|
|
||||||
/* In gimplify.c */
|
/* In gimplify.c */
|
||||||
extern tree create_tmp_var_raw (tree, const char *);
|
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. */
|
/* Return true if GIMPLE_CALL S cannot be inlined. */
|
||||||
|
|
||||||
static inline bool
|
static inline bool
|
||||||
|
|
Loading…
Add table
Reference in a new issue