don't declare header-defined functions both static and inline
Many functions defined in our headers are declared 'static inline' which is a C idiom whose use predates our move to C++ as the implementation language. But in C++ the inline keyword is more than just a compiler hint, and is sufficient to give the function the intended semantics. In fact declaring a function both static and inline is a pessimization since static effectively disables the desired definition merging behavior enabled by inline, and is also a source of (harmless) ODR violations when a static inline function gets called from a non-static inline one (such as tree_operand_check calling tree_operand_length). This patch mechanically fixes the vast majority of occurrences of this anti-pattern throughout the compiler's headers via the command line sed -i 's/^static inline/inline/g' gcc/*.h gcc/*/*.h There's also a manual change to remove the redundant declarations of is_ivar and lookup_category in gcc/objc/objc-act.cc which would otherwise conflict with their modified definitions in objc-act.h (due to the difference in staticness). Besides fixing some ODR violations, this speeds up stage1 cc1plus by about 2% and reduces the size of its text segment by 1.5MB. gcc/ChangeLog: * addresses.h: Mechanically drop 'static' from 'static inline' functions via s/^static inline/inline/g. * asan.h: Likewise. * attribs.h: Likewise. * basic-block.h: Likewise. * bitmap.h: Likewise. * cfghooks.h: Likewise. * cfgloop.h: Likewise. * cgraph.h: Likewise. * cselib.h: Likewise. * data-streamer.h: Likewise. * debug.h: Likewise. * df.h: Likewise. * diagnostic.h: Likewise. * dominance.h: Likewise. * dumpfile.h: Likewise. * emit-rtl.h: Likewise. * except.h: Likewise. * expmed.h: Likewise. * expr.h: Likewise. * fixed-value.h: Likewise. * gengtype.h: Likewise. * gimple-expr.h: Likewise. * gimple-iterator.h: Likewise. * gimple-predict.h: Likewise. * gimple-range-fold.h: Likewise. * gimple-ssa.h: Likewise. * gimple.h: Likewise. * graphite.h: Likewise. * hard-reg-set.h: Likewise. * hash-map.h: Likewise. * hash-set.h: Likewise. * hash-table.h: Likewise. * hwint.h: Likewise. * input.h: Likewise. * insn-addr.h: Likewise. * internal-fn.h: Likewise. * ipa-fnsummary.h: Likewise. * ipa-icf-gimple.h: Likewise. * ipa-inline.h: Likewise. * ipa-modref.h: Likewise. * ipa-prop.h: Likewise. * ira-int.h: Likewise. * ira.h: Likewise. * lra-int.h: Likewise. * lra.h: Likewise. * lto-streamer.h: Likewise. * memmodel.h: Likewise. * omp-general.h: Likewise. * optabs-query.h: Likewise. * optabs.h: Likewise. * plugin.h: Likewise. * pretty-print.h: Likewise. * range.h: Likewise. * read-md.h: Likewise. * recog.h: Likewise. * regs.h: Likewise. * rtl-iter.h: Likewise. * rtl.h: Likewise. * sbitmap.h: Likewise. * sched-int.h: Likewise. * sel-sched-ir.h: Likewise. * sese.h: Likewise. * sparseset.h: Likewise. * ssa-iterators.h: Likewise. * system.h: Likewise. * target-globals.h: Likewise. * target.h: Likewise. * timevar.h: Likewise. * tree-chrec.h: Likewise. * tree-data-ref.h: Likewise. * tree-iterator.h: Likewise. * tree-outof-ssa.h: Likewise. * tree-phinodes.h: Likewise. * tree-scalar-evolution.h: Likewise. * tree-sra.h: Likewise. * tree-ssa-alias.h: Likewise. * tree-ssa-live.h: Likewise. * tree-ssa-loop-manip.h: Likewise. * tree-ssa-loop.h: Likewise. * tree-ssa-operands.h: Likewise. * tree-ssa-propagate.h: Likewise. * tree-ssa-sccvn.h: Likewise. * tree-ssa.h: Likewise. * tree-ssanames.h: Likewise. * tree-streamer.h: Likewise. * tree-switch-conversion.h: Likewise. * tree-vectorizer.h: Likewise. * tree.h: Likewise. * wide-int.h: Likewise. gcc/c-family/ChangeLog: * c-common.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. gcc/c/ChangeLog: * c-parser.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. gcc/cp/ChangeLog: * cp-tree.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. gcc/fortran/ChangeLog: * gfortran.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. gcc/jit/ChangeLog: * jit-dejagnu.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. * jit-recording.h: Likewise. gcc/objc/ChangeLog: * objc-act.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. * objc-map.h: Likewise. * objc-act.cc: Remove the redundant redeclarations of is_ivar and lookup_category.
This commit is contained in:
parent
a5de17d912
commit
cb3e0eac26
98 changed files with 1278 additions and 1280 deletions
|
@ -24,7 +24,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
#ifndef GCC_ADDRESSES_H
|
||||
#define GCC_ADDRESSES_H
|
||||
|
||||
static inline enum reg_class
|
||||
inline enum reg_class
|
||||
base_reg_class (machine_mode mode ATTRIBUTE_UNUSED,
|
||||
addr_space_t as ATTRIBUTE_UNUSED,
|
||||
enum rtx_code outer_code ATTRIBUTE_UNUSED,
|
||||
|
@ -51,7 +51,7 @@ base_reg_class (machine_mode mode ATTRIBUTE_UNUSED,
|
|||
REGNO_OK_FOR_BASE_P.
|
||||
Arguments as for the REGNO_MODE_CODE_OK_FOR_BASE_P macro. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ok_for_base_p_1 (unsigned regno ATTRIBUTE_UNUSED,
|
||||
machine_mode mode ATTRIBUTE_UNUSED,
|
||||
addr_space_t as ATTRIBUTE_UNUSED,
|
||||
|
@ -77,7 +77,7 @@ ok_for_base_p_1 (unsigned regno ATTRIBUTE_UNUSED,
|
|||
/* Wrapper around ok_for_base_p_1, for use after register allocation is
|
||||
complete. Arguments as for the called function. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
regno_ok_for_base_p (unsigned regno, machine_mode mode, addr_space_t as,
|
||||
enum rtx_code outer_code, enum rtx_code index_code)
|
||||
{
|
||||
|
|
14
gcc/asan.h
14
gcc/asan.h
|
@ -140,7 +140,7 @@ extern bool asan_mark_p (gimple *stmt, enum asan_mark_flags flag);
|
|||
/* Return the size of padding needed to insert after a protected
|
||||
decl of SIZE. */
|
||||
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
asan_red_zone_size (unsigned int size)
|
||||
{
|
||||
unsigned int c = size & (ASAN_RED_ZONE_SIZE - 1);
|
||||
|
@ -150,7 +150,7 @@ asan_red_zone_size (unsigned int size)
|
|||
/* Return how much a stack variable occupis on a stack
|
||||
including a space for red zone. */
|
||||
|
||||
static inline unsigned HOST_WIDE_INT
|
||||
inline unsigned HOST_WIDE_INT
|
||||
asan_var_and_redzone_size (unsigned HOST_WIDE_INT size)
|
||||
{
|
||||
if (size <= 4)
|
||||
|
@ -182,7 +182,7 @@ extern hash_set<tree> *asan_handled_variables;
|
|||
/* Return TRUE if builtin with given FCODE will be intercepted by
|
||||
libasan. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
asan_intercepted_p (enum built_in_function fcode)
|
||||
{
|
||||
if (hwasan_sanitize_p ())
|
||||
|
@ -213,7 +213,7 @@ asan_intercepted_p (enum built_in_function fcode)
|
|||
|
||||
/* Return TRUE if we should instrument for use-after-scope sanity checking. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
asan_sanitize_use_after_scope (void)
|
||||
{
|
||||
return (flag_sanitize_address_use_after_scope
|
||||
|
@ -222,7 +222,7 @@ asan_sanitize_use_after_scope (void)
|
|||
|
||||
/* Return true if DECL should be guarded on the stack. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
asan_protect_stack_decl (tree decl)
|
||||
{
|
||||
return DECL_P (decl)
|
||||
|
@ -233,7 +233,7 @@ asan_protect_stack_decl (tree decl)
|
|||
/* Return true when flag_sanitize & FLAG is non-zero. If FN is non-null,
|
||||
remove all flags mentioned in "no_sanitize" of DECL_ATTRIBUTES. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
sanitize_flags_p (unsigned int flag, const_tree fn = current_function_decl)
|
||||
{
|
||||
unsigned int result_flags = flag_sanitize & flag;
|
||||
|
@ -252,7 +252,7 @@ sanitize_flags_p (unsigned int flag, const_tree fn = current_function_decl)
|
|||
|
||||
/* Return true when coverage sanitization should happend for FN function. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
sanitize_coverage_p (const_tree fn = current_function_decl)
|
||||
{
|
||||
return (flag_sanitize_coverage
|
||||
|
|
|
@ -148,7 +148,7 @@ canonicalize_attr_name (const char *&s, T &l)
|
|||
/* For a given IDENTIFIER_NODE, strip leading and trailing '_' characters
|
||||
so that we have a canonical form of attribute names. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
canonicalize_attr_name (tree attr_name)
|
||||
{
|
||||
size_t l = IDENTIFIER_LENGTH (attr_name);
|
||||
|
@ -163,7 +163,7 @@ canonicalize_attr_name (tree attr_name)
|
|||
/* Compare attribute identifiers ATTR1 and ATTR2 with length ATTR1_LEN and
|
||||
ATTR2_LEN. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
cmp_attribs (const char *attr1, size_t attr1_len,
|
||||
const char *attr2, size_t attr2_len)
|
||||
{
|
||||
|
@ -172,7 +172,7 @@ cmp_attribs (const char *attr1, size_t attr1_len,
|
|||
|
||||
/* Compare attribute identifiers ATTR1 and ATTR2. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
cmp_attribs (const char *attr1, const char *attr2)
|
||||
{
|
||||
return cmp_attribs (attr1, strlen (attr1), attr2, strlen (attr2));
|
||||
|
@ -181,7 +181,7 @@ cmp_attribs (const char *attr1, const char *attr2)
|
|||
/* Given an identifier node IDENT and a string ATTR_NAME, return true
|
||||
if the identifier node is a valid attribute name for the string. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_attribute_p (const char *attr_name, const_tree ident)
|
||||
{
|
||||
return cmp_attribs (attr_name, strlen (attr_name),
|
||||
|
@ -193,7 +193,7 @@ is_attribute_p (const char *attr_name, const_tree ident)
|
|||
for standard attribute (NULL get_attribute_namespace) or "gnu"
|
||||
namespace. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_attribute_namespace_p (const char *attr_ns, const_tree attr)
|
||||
{
|
||||
tree ident = get_attribute_namespace (attr);
|
||||
|
@ -212,7 +212,7 @@ is_attribute_namespace_p (const char *attr_ns, const_tree attr)
|
|||
occurrences are wanted. ATTR_NAME must be in the form 'text' (not
|
||||
'__text__'). */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
lookup_attribute (const char *attr_name, tree list)
|
||||
{
|
||||
if (CHECKING_P && attr_name[0] != '_')
|
||||
|
@ -236,7 +236,7 @@ lookup_attribute (const char *attr_name, tree list)
|
|||
/* Similar to lookup_attribute, but also match the attribute namespace.
|
||||
ATTR_NS "" stands for either standard attribute or "gnu" namespace. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
lookup_attribute (const char *attr_ns, const char *attr_name, tree list)
|
||||
{
|
||||
if (CHECKING_P && attr_name[0] != '_')
|
||||
|
@ -269,7 +269,7 @@ lookup_attribute (const char *attr_ns, const char *attr_name, tree list)
|
|||
starts with ATTR_NAME. ATTR_NAME must be in the form 'text' (not
|
||||
'__text__'). */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
lookup_attribute_by_prefix (const char *attr_name, tree list)
|
||||
{
|
||||
gcc_checking_assert (attr_name[0] != '_');
|
||||
|
|
|
@ -309,7 +309,7 @@ enum cfg_bb_flags
|
|||
|
||||
/* Returns true if BB has precisely one successor. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
single_succ_p (const_basic_block bb)
|
||||
{
|
||||
return EDGE_COUNT (bb->succs) == 1;
|
||||
|
@ -317,7 +317,7 @@ single_succ_p (const_basic_block bb)
|
|||
|
||||
/* Returns true if BB has precisely one predecessor. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
single_pred_p (const_basic_block bb)
|
||||
{
|
||||
return EDGE_COUNT (bb->preds) == 1;
|
||||
|
@ -326,7 +326,7 @@ single_pred_p (const_basic_block bb)
|
|||
/* Returns the single successor edge of basic block BB. Aborts if
|
||||
BB does not have exactly one successor. */
|
||||
|
||||
static inline edge
|
||||
inline edge
|
||||
single_succ_edge (const_basic_block bb)
|
||||
{
|
||||
gcc_checking_assert (single_succ_p (bb));
|
||||
|
@ -336,7 +336,7 @@ single_succ_edge (const_basic_block bb)
|
|||
/* Returns the single predecessor edge of basic block BB. Aborts
|
||||
if BB does not have exactly one predecessor. */
|
||||
|
||||
static inline edge
|
||||
inline edge
|
||||
single_pred_edge (const_basic_block bb)
|
||||
{
|
||||
gcc_checking_assert (single_pred_p (bb));
|
||||
|
@ -346,7 +346,7 @@ single_pred_edge (const_basic_block bb)
|
|||
/* Returns the single successor block of basic block BB. Aborts
|
||||
if BB does not have exactly one successor. */
|
||||
|
||||
static inline basic_block
|
||||
inline basic_block
|
||||
single_succ (const_basic_block bb)
|
||||
{
|
||||
return single_succ_edge (bb)->dest;
|
||||
|
@ -355,7 +355,7 @@ single_succ (const_basic_block bb)
|
|||
/* Returns the single predecessor block of basic block BB. Aborts
|
||||
if BB does not have exactly one predecessor.*/
|
||||
|
||||
static inline basic_block
|
||||
inline basic_block
|
||||
single_pred (const_basic_block bb)
|
||||
{
|
||||
return single_pred_edge (bb)->src;
|
||||
|
@ -368,7 +368,7 @@ struct edge_iterator {
|
|||
vec<edge, va_gc> **container;
|
||||
};
|
||||
|
||||
static inline vec<edge, va_gc> *
|
||||
inline vec<edge, va_gc> *
|
||||
ei_container (edge_iterator i)
|
||||
{
|
||||
gcc_checking_assert (i.container);
|
||||
|
@ -379,7 +379,7 @@ ei_container (edge_iterator i)
|
|||
#define ei_last(iter) ei_last_1 (&(iter))
|
||||
|
||||
/* Return an iterator pointing to the start of an edge vector. */
|
||||
static inline edge_iterator
|
||||
inline edge_iterator
|
||||
ei_start_1 (vec<edge, va_gc> **ev)
|
||||
{
|
||||
edge_iterator i;
|
||||
|
@ -392,7 +392,7 @@ ei_start_1 (vec<edge, va_gc> **ev)
|
|||
|
||||
/* Return an iterator pointing to the last element of an edge
|
||||
vector. */
|
||||
static inline edge_iterator
|
||||
inline edge_iterator
|
||||
ei_last_1 (vec<edge, va_gc> **ev)
|
||||
{
|
||||
edge_iterator i;
|
||||
|
@ -404,7 +404,7 @@ ei_last_1 (vec<edge, va_gc> **ev)
|
|||
}
|
||||
|
||||
/* Is the iterator `i' at the end of the sequence? */
|
||||
static inline bool
|
||||
inline bool
|
||||
ei_end_p (edge_iterator i)
|
||||
{
|
||||
return (i.index == EDGE_COUNT (ei_container (i)));
|
||||
|
@ -412,14 +412,14 @@ ei_end_p (edge_iterator i)
|
|||
|
||||
/* Is the iterator `i' at one position before the end of the
|
||||
sequence? */
|
||||
static inline bool
|
||||
inline bool
|
||||
ei_one_before_end_p (edge_iterator i)
|
||||
{
|
||||
return (i.index + 1 == EDGE_COUNT (ei_container (i)));
|
||||
}
|
||||
|
||||
/* Advance the iterator to the next element. */
|
||||
static inline void
|
||||
inline void
|
||||
ei_next (edge_iterator *i)
|
||||
{
|
||||
gcc_checking_assert (i->index < EDGE_COUNT (ei_container (*i)));
|
||||
|
@ -427,7 +427,7 @@ ei_next (edge_iterator *i)
|
|||
}
|
||||
|
||||
/* Move the iterator to the previous element. */
|
||||
static inline void
|
||||
inline void
|
||||
ei_prev (edge_iterator *i)
|
||||
{
|
||||
gcc_checking_assert (i->index > 0);
|
||||
|
@ -435,7 +435,7 @@ ei_prev (edge_iterator *i)
|
|||
}
|
||||
|
||||
/* Return the edge pointed to by the iterator `i'. */
|
||||
static inline edge
|
||||
inline edge
|
||||
ei_edge (edge_iterator i)
|
||||
{
|
||||
return EDGE_I (ei_container (i), i.index);
|
||||
|
@ -444,7 +444,7 @@ ei_edge (edge_iterator i)
|
|||
/* Return an edge pointed to by the iterator. Do it safely so that
|
||||
NULL is returned when the iterator is pointing at the end of the
|
||||
sequence. */
|
||||
static inline edge
|
||||
inline edge
|
||||
ei_safe_edge (edge_iterator i)
|
||||
{
|
||||
return !ei_end_p (i) ? ei_edge (i) : NULL;
|
||||
|
@ -454,7 +454,7 @@ ei_safe_edge (edge_iterator i)
|
|||
*Edge P is set to the next edge if we are to continue to iterate
|
||||
and NULL otherwise. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ei_cond (edge_iterator ei, edge *p)
|
||||
{
|
||||
if (!ei_end_p (ei))
|
||||
|
@ -505,14 +505,14 @@ ei_cond (edge_iterator ei, edge *p)
|
|||
|
||||
/* Return true if BB is in a transaction. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
bb_in_transaction (basic_block bb)
|
||||
{
|
||||
return bb->flags & BB_IN_TRANSACTION;
|
||||
}
|
||||
|
||||
/* Return true when one of the predecessor edges of BB is marked with EDGE_EH. */
|
||||
static inline bool
|
||||
inline bool
|
||||
bb_has_eh_pred (basic_block bb)
|
||||
{
|
||||
edge e;
|
||||
|
@ -527,7 +527,7 @@ bb_has_eh_pred (basic_block bb)
|
|||
}
|
||||
|
||||
/* Return true when one of the predecessor edges of BB is marked with EDGE_ABNORMAL. */
|
||||
static inline bool
|
||||
inline bool
|
||||
bb_has_abnormal_pred (basic_block bb)
|
||||
{
|
||||
edge e;
|
||||
|
@ -542,7 +542,7 @@ bb_has_abnormal_pred (basic_block bb)
|
|||
}
|
||||
|
||||
/* Return the fallthru edge in EDGES if it exists, NULL otherwise. */
|
||||
static inline edge
|
||||
inline edge
|
||||
find_fallthru_edge (vec<edge, va_gc> *edges)
|
||||
{
|
||||
edge e;
|
||||
|
@ -557,7 +557,7 @@ find_fallthru_edge (vec<edge, va_gc> *edges)
|
|||
|
||||
/* Check tha probability is sane. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
check_probability (int prob)
|
||||
{
|
||||
gcc_checking_assert (prob >= 0 && prob <= REG_BR_PROB_BASE);
|
||||
|
@ -566,7 +566,7 @@ check_probability (int prob)
|
|||
/* Given PROB1 and PROB2, return PROB1*PROB2/REG_BR_PROB_BASE.
|
||||
Used to combine BB probabilities. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
combine_probabilities (int prob1, int prob2)
|
||||
{
|
||||
check_probability (prob1);
|
||||
|
@ -578,7 +578,7 @@ combine_probabilities (int prob1, int prob2)
|
|||
interface when potentially scaling up, so that SCALE is not
|
||||
constrained to be < REG_BR_PROB_BASE. */
|
||||
|
||||
static inline gcov_type
|
||||
inline gcov_type
|
||||
apply_scale (gcov_type freq, gcov_type scale)
|
||||
{
|
||||
return RDIV (freq * scale, REG_BR_PROB_BASE);
|
||||
|
@ -586,7 +586,7 @@ apply_scale (gcov_type freq, gcov_type scale)
|
|||
|
||||
/* Apply probability PROB on frequency or count FREQ. */
|
||||
|
||||
static inline gcov_type
|
||||
inline gcov_type
|
||||
apply_probability (gcov_type freq, int prob)
|
||||
{
|
||||
check_probability (prob);
|
||||
|
@ -595,7 +595,7 @@ apply_probability (gcov_type freq, int prob)
|
|||
|
||||
/* Return inverse probability for PROB. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
inverse_probability (int prob1)
|
||||
{
|
||||
check_probability (prob1);
|
||||
|
@ -604,7 +604,7 @@ inverse_probability (int prob1)
|
|||
|
||||
/* Return true if BB has at least one abnormal outgoing edge. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
has_abnormal_or_eh_outgoing_edge_p (basic_block bb)
|
||||
{
|
||||
edge e;
|
||||
|
@ -620,7 +620,7 @@ has_abnormal_or_eh_outgoing_edge_p (basic_block bb)
|
|||
/* Return true when one of the predecessor edges of BB is marked with
|
||||
EDGE_ABNORMAL_CALL or EDGE_EH. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
has_abnormal_call_or_eh_pred_edge_p (basic_block bb)
|
||||
{
|
||||
edge e;
|
||||
|
|
20
gcc/bitmap.h
20
gcc/bitmap.h
|
@ -461,7 +461,7 @@ extern void dump_bitmap_statistics (void);
|
|||
/* Initialize a bitmap header. OBSTACK indicates the bitmap obstack
|
||||
to allocate from, NULL for GC'd bitmap. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bitmap_initialize (bitmap head, bitmap_obstack *obstack CXX_MEM_STAT_INFO)
|
||||
{
|
||||
head->first = head->current = NULL;
|
||||
|
@ -476,7 +476,7 @@ bitmap_initialize (bitmap head, bitmap_obstack *obstack CXX_MEM_STAT_INFO)
|
|||
/* Release a bitmap (but not its head). This is suitable for pairing with
|
||||
bitmap_initialize. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bitmap_release (bitmap head)
|
||||
{
|
||||
bitmap_clear (head);
|
||||
|
@ -532,7 +532,7 @@ struct bitmap_iterator
|
|||
/* Initialize a single bitmap iterator. START_BIT is the first bit to
|
||||
iterate from. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bmp_iter_set_init (bitmap_iterator *bi, const_bitmap map,
|
||||
unsigned start_bit, unsigned *bit_no)
|
||||
{
|
||||
|
@ -576,7 +576,7 @@ bmp_iter_set_init (bitmap_iterator *bi, const_bitmap map,
|
|||
/* Initialize an iterator to iterate over the intersection of two
|
||||
bitmaps. START_BIT is the bit to commence from. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bmp_iter_and_init (bitmap_iterator *bi, const_bitmap map1, const_bitmap map2,
|
||||
unsigned start_bit, unsigned *bit_no)
|
||||
{
|
||||
|
@ -645,7 +645,7 @@ bmp_iter_and_init (bitmap_iterator *bi, const_bitmap map1, const_bitmap map2,
|
|||
|
||||
/* Initialize an iterator to iterate over the bits in MAP1 & ~MAP2. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bmp_iter_and_compl_init (bitmap_iterator *bi,
|
||||
const_bitmap map1, const_bitmap map2,
|
||||
unsigned start_bit, unsigned *bit_no)
|
||||
|
@ -696,7 +696,7 @@ bmp_iter_and_compl_init (bitmap_iterator *bi,
|
|||
/* Advance to the next bit in BI. We don't advance to the next
|
||||
nonzero bit yet. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bmp_iter_next (bitmap_iterator *bi, unsigned *bit_no)
|
||||
{
|
||||
bi->bits >>= 1;
|
||||
|
@ -705,7 +705,7 @@ bmp_iter_next (bitmap_iterator *bi, unsigned *bit_no)
|
|||
|
||||
/* Advance to first set bit in BI. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bmp_iter_next_bit (bitmap_iterator * bi, unsigned *bit_no)
|
||||
{
|
||||
#if (GCC_VERSION >= 3004)
|
||||
|
@ -728,7 +728,7 @@ bmp_iter_next_bit (bitmap_iterator * bi, unsigned *bit_no)
|
|||
already advanced past the just iterated bit. Return true if there
|
||||
is a bit to iterate. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
bmp_iter_set (bitmap_iterator *bi, unsigned *bit_no)
|
||||
{
|
||||
/* If our current word is nonzero, it contains the bit we want. */
|
||||
|
@ -774,7 +774,7 @@ bmp_iter_set (bitmap_iterator *bi, unsigned *bit_no)
|
|||
bitmaps. We will have already advanced past the just iterated bit.
|
||||
Return true if there is a bit to iterate. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
bmp_iter_and (bitmap_iterator *bi, unsigned *bit_no)
|
||||
{
|
||||
/* If our current word is nonzero, it contains the bit we want. */
|
||||
|
@ -843,7 +843,7 @@ bmp_iter_and (bitmap_iterator *bi, unsigned *bit_no)
|
|||
complemented bitmaps. We will have already advanced past the just
|
||||
iterated bit. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
bmp_iter_and_compl (bitmap_iterator *bi, unsigned *bit_no)
|
||||
{
|
||||
/* If our current word is nonzero, it contains the bit we want. */
|
||||
|
|
|
@ -923,7 +923,7 @@ extern tree shorten_binary_op (tree result_type, tree op0, tree op1, bool bitwis
|
|||
minimum or op1 is not -1, because e.g. (long long) INT_MIN / -1 is
|
||||
well defined INT_MAX + 1LL if long long is wider than int, but INT_MIN / -1
|
||||
is UB. */
|
||||
static inline bool
|
||||
inline bool
|
||||
may_shorten_divmod (tree op0, tree op1)
|
||||
{
|
||||
tree type0 = TREE_TYPE (op0);
|
||||
|
@ -1327,7 +1327,7 @@ extern const struct c_omp_directive *c_omp_categorize_directive (const char *,
|
|||
const char *);
|
||||
|
||||
/* Return next tree in the chain for chain_next walking of tree nodes. */
|
||||
static inline tree
|
||||
inline tree
|
||||
c_tree_chain_next (tree t)
|
||||
{
|
||||
/* TREE_CHAIN of a type is TYPE_STUB_DECL, which is different
|
||||
|
|
|
@ -161,7 +161,7 @@ extern bool old_style_parameter_scope (void);
|
|||
/* Return true if the next token from PARSER has the indicated
|
||||
TYPE. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
c_parser_next_token_is (c_parser *parser, enum cpp_ttype type)
|
||||
{
|
||||
return c_parser_peek_token (parser)->type == type;
|
||||
|
@ -170,7 +170,7 @@ c_parser_next_token_is (c_parser *parser, enum cpp_ttype type)
|
|||
/* Return true if the next token from PARSER does not have the
|
||||
indicated TYPE. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
c_parser_next_token_is_not (c_parser *parser, enum cpp_ttype type)
|
||||
{
|
||||
return !c_parser_next_token_is (parser, type);
|
||||
|
@ -179,7 +179,7 @@ c_parser_next_token_is_not (c_parser *parser, enum cpp_ttype type)
|
|||
/* Return true if the next token from PARSER is the indicated
|
||||
KEYWORD. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
c_parser_next_token_is_keyword (c_parser *parser, enum rid keyword)
|
||||
{
|
||||
return c_parser_peek_token (parser)->keyword == keyword;
|
||||
|
|
|
@ -206,7 +206,7 @@ extern void verify_flow_info (void);
|
|||
/* Check control flow invariants, if internal consistency checks are
|
||||
enabled. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
checking_verify_flow_info (void)
|
||||
{
|
||||
/* TODO: Add a separate option for -fchecking=cfg. */
|
||||
|
|
|
@ -280,21 +280,21 @@ public:
|
|||
#define LOOP_C_FINITE (1 << 1)
|
||||
|
||||
/* Set C to the LOOP constraint. */
|
||||
static inline void
|
||||
inline void
|
||||
loop_constraint_set (class loop *loop, unsigned c)
|
||||
{
|
||||
loop->constraints |= c;
|
||||
}
|
||||
|
||||
/* Clear C from the LOOP constraint. */
|
||||
static inline void
|
||||
inline void
|
||||
loop_constraint_clear (class loop *loop, unsigned c)
|
||||
{
|
||||
loop->constraints &= ~c;
|
||||
}
|
||||
|
||||
/* Check if C is set in the LOOP constraint. */
|
||||
static inline bool
|
||||
inline bool
|
||||
loop_constraint_set_p (class loop *loop, unsigned c)
|
||||
{
|
||||
return (loop->constraints & c) == c;
|
||||
|
@ -508,7 +508,7 @@ extern void iv_analysis_done (void);
|
|||
extern class niter_desc *get_simple_loop_desc (class loop *loop);
|
||||
extern void free_simple_loop_desc (class loop *loop);
|
||||
|
||||
static inline class niter_desc *
|
||||
inline class niter_desc *
|
||||
simple_loop_desc (class loop *loop)
|
||||
{
|
||||
return loop->simple_loop_desc;
|
||||
|
@ -518,7 +518,7 @@ simple_loop_desc (class loop *loop)
|
|||
|
||||
/* Returns the loop with index NUM from FNs loop tree. */
|
||||
|
||||
static inline class loop *
|
||||
inline class loop *
|
||||
get_loop (struct function *fn, unsigned num)
|
||||
{
|
||||
return (*loops_for_fn (fn)->larray)[num];
|
||||
|
@ -526,7 +526,7 @@ get_loop (struct function *fn, unsigned num)
|
|||
|
||||
/* Returns the number of superloops of LOOP. */
|
||||
|
||||
static inline unsigned
|
||||
inline unsigned
|
||||
loop_depth (const class loop *loop)
|
||||
{
|
||||
return vec_safe_length (loop->superloops);
|
||||
|
@ -535,7 +535,7 @@ loop_depth (const class loop *loop)
|
|||
/* Returns the immediate superloop of LOOP, or NULL if LOOP is the outermost
|
||||
loop. */
|
||||
|
||||
static inline class loop *
|
||||
inline class loop *
|
||||
loop_outer (const class loop *loop)
|
||||
{
|
||||
unsigned n = vec_safe_length (loop->superloops);
|
||||
|
@ -548,7 +548,7 @@ loop_outer (const class loop *loop)
|
|||
|
||||
/* Returns true if LOOP has at least one exit edge. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
loop_has_exit_edges (const class loop *loop)
|
||||
{
|
||||
return loop->exits->next->e != NULL;
|
||||
|
@ -569,7 +569,7 @@ get_loops (struct function *fn)
|
|||
/* Returns the number of loops in FN (including the removed
|
||||
ones and the fake loop that forms the root of the loop tree). */
|
||||
|
||||
static inline unsigned
|
||||
inline unsigned
|
||||
number_of_loops (struct function *fn)
|
||||
{
|
||||
struct loops *loops = loops_for_fn (fn);
|
||||
|
@ -582,13 +582,13 @@ number_of_loops (struct function *fn)
|
|||
/* Returns true if state of the loops satisfies all properties
|
||||
described by FLAGS. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
loops_state_satisfies_p (function *fn, unsigned flags)
|
||||
{
|
||||
return (loops_for_fn (fn)->state & flags) == flags;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
loops_state_satisfies_p (unsigned flags)
|
||||
{
|
||||
return loops_state_satisfies_p (cfun, flags);
|
||||
|
@ -596,13 +596,13 @@ loops_state_satisfies_p (unsigned flags)
|
|||
|
||||
/* Sets FLAGS to the loops state. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
loops_state_set (function *fn, unsigned flags)
|
||||
{
|
||||
loops_for_fn (fn)->state |= flags;
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
loops_state_set (unsigned flags)
|
||||
{
|
||||
loops_state_set (cfun, flags);
|
||||
|
@ -610,13 +610,13 @@ loops_state_set (unsigned flags)
|
|||
|
||||
/* Clears FLAGS from the loops state. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
loops_state_clear (function *fn, unsigned flags)
|
||||
{
|
||||
loops_for_fn (fn)->state &= ~flags;
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
loops_state_clear (unsigned flags)
|
||||
{
|
||||
if (!current_loops)
|
||||
|
@ -627,7 +627,7 @@ loops_state_clear (unsigned flags)
|
|||
/* Check loop structure invariants, if internal consistency checks are
|
||||
enabled. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
checking_verify_loop_structure (void)
|
||||
{
|
||||
/* VERIFY_LOOP_STRUCTURE essentially asserts that no loops need fixups.
|
||||
|
@ -897,7 +897,7 @@ extern void move_loop_invariants (void);
|
|||
extern auto_vec<basic_block> get_loop_hot_path (const class loop *loop);
|
||||
|
||||
/* Returns the outermost loop of the loop nest that contains LOOP.*/
|
||||
static inline class loop *
|
||||
inline class loop *
|
||||
loop_outermost (class loop *loop)
|
||||
{
|
||||
unsigned n = vec_safe_length (loop->superloops);
|
||||
|
@ -919,7 +919,7 @@ extern int bb_loop_depth (const_basic_block);
|
|||
|
||||
/* Converts VAL to widest_int. */
|
||||
|
||||
static inline widest_int
|
||||
inline widest_int
|
||||
gcov_type_to_wide_int (gcov_type val)
|
||||
{
|
||||
HOST_WIDE_INT a[2];
|
||||
|
|
|
@ -2650,7 +2650,7 @@ symtab_node::real_symbol_p (void)
|
|||
/* Return true if DECL should have entry in symbol table if used.
|
||||
Those are functions and static & external variables. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
decl_in_symtab_p (const_tree decl)
|
||||
{
|
||||
return (TREE_CODE (decl) == FUNCTION_DECL
|
||||
|
@ -3323,7 +3323,7 @@ cgraph_edge::frequency ()
|
|||
|
||||
|
||||
/* Return true if the TM_CLONE bit is set for a given FNDECL. */
|
||||
static inline bool
|
||||
inline bool
|
||||
decl_is_tm_clone (const_tree fndecl)
|
||||
{
|
||||
cgraph_node *n = cgraph_node::get (fndecl);
|
||||
|
@ -3539,7 +3539,7 @@ ipa_polymorphic_call_context::useless_p () const
|
|||
the name documents the intent. We require that no GC can occur
|
||||
within the fprintf call. */
|
||||
|
||||
static inline const char *
|
||||
inline const char *
|
||||
xstrdup_for_dump (const char *transient_str)
|
||||
{
|
||||
return ggc_strdup (transient_str);
|
||||
|
|
|
@ -4238,7 +4238,7 @@ more_aggr_init_expr_args_p (const aggr_init_expr_arg_iterator *iter)
|
|||
/* We have an expression tree T that represents a call, either CALL_EXPR
|
||||
or AGGR_INIT_EXPR. Return a reference to the Nth argument. */
|
||||
|
||||
static inline tree&
|
||||
inline tree&
|
||||
get_nth_callarg (tree t, int n)
|
||||
{
|
||||
switch (TREE_CODE (t))
|
||||
|
|
|
@ -113,7 +113,7 @@ extern void dump_cselib_table (FILE *);
|
|||
/* Return the canonical value for VAL, following the equivalence chain
|
||||
towards the earliest (== lowest uid) equivalent value. */
|
||||
|
||||
static inline cselib_val *
|
||||
inline cselib_val *
|
||||
canonical_cselib_val (cselib_val *val)
|
||||
{
|
||||
cselib_val *canon;
|
||||
|
@ -131,7 +131,7 @@ canonical_cselib_val (cselib_val *val)
|
|||
/* Return nonzero if we can prove that X and Y contain the same value, taking
|
||||
our gathered information into account. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
rtx_equal_for_cselib_p (rtx x, rtx y)
|
||||
{
|
||||
if (x == y)
|
||||
|
|
|
@ -91,7 +91,7 @@ wide_int streamer_read_wide_int (class lto_input_block *);
|
|||
widest_int streamer_read_widest_int (class lto_input_block *);
|
||||
|
||||
/* Returns a new bit-packing context for bit-packing into S. */
|
||||
static inline struct bitpack_d
|
||||
inline struct bitpack_d
|
||||
bitpack_create (struct lto_output_stream *s)
|
||||
{
|
||||
struct bitpack_d bp;
|
||||
|
@ -102,7 +102,7 @@ bitpack_create (struct lto_output_stream *s)
|
|||
}
|
||||
|
||||
/* Pack the NBITS bit sized value VAL into the bit-packing context BP. */
|
||||
static inline void
|
||||
inline void
|
||||
bp_pack_value (struct bitpack_d *bp, bitpack_word_t val, unsigned nbits)
|
||||
{
|
||||
bitpack_word_t word = bp->word;
|
||||
|
@ -132,7 +132,7 @@ bp_pack_value (struct bitpack_d *bp, bitpack_word_t val, unsigned nbits)
|
|||
|
||||
/* Pack VAL into the bit-packing context BP, using NBITS for each
|
||||
coefficient. */
|
||||
static inline void
|
||||
inline void
|
||||
bp_pack_poly_value (struct bitpack_d *bp,
|
||||
const poly_int<NUM_POLY_INT_COEFFS, bitpack_word_t> &val,
|
||||
unsigned nbits)
|
||||
|
@ -142,7 +142,7 @@ bp_pack_poly_value (struct bitpack_d *bp,
|
|||
}
|
||||
|
||||
/* Finishes bit-packing of BP. */
|
||||
static inline void
|
||||
inline void
|
||||
streamer_write_bitpack (struct bitpack_d *bp)
|
||||
{
|
||||
streamer_write_uhwi_stream ((struct lto_output_stream *) bp->stream,
|
||||
|
@ -152,7 +152,7 @@ streamer_write_bitpack (struct bitpack_d *bp)
|
|||
}
|
||||
|
||||
/* Returns a new bit-packing context for bit-unpacking from IB. */
|
||||
static inline struct bitpack_d
|
||||
inline struct bitpack_d
|
||||
streamer_read_bitpack (class lto_input_block *ib)
|
||||
{
|
||||
struct bitpack_d bp;
|
||||
|
@ -163,7 +163,7 @@ streamer_read_bitpack (class lto_input_block *ib)
|
|||
}
|
||||
|
||||
/* Unpacks NBITS bits from the bit-packing context BP and returns them. */
|
||||
static inline bitpack_word_t
|
||||
inline bitpack_word_t
|
||||
bp_unpack_value (struct bitpack_d *bp, unsigned nbits)
|
||||
{
|
||||
bitpack_word_t mask, val;
|
||||
|
@ -191,7 +191,7 @@ bp_unpack_value (struct bitpack_d *bp, unsigned nbits)
|
|||
|
||||
/* Unpacks a polynomial value from the bit-packing context BP in which each
|
||||
coefficient has NBITS bits. */
|
||||
static inline poly_int<NUM_POLY_INT_COEFFS, bitpack_word_t>
|
||||
inline poly_int<NUM_POLY_INT_COEFFS, bitpack_word_t>
|
||||
bp_unpack_poly_value (struct bitpack_d *bp, unsigned nbits)
|
||||
{
|
||||
poly_int_pod<NUM_POLY_INT_COEFFS, bitpack_word_t> x;
|
||||
|
@ -203,7 +203,7 @@ bp_unpack_poly_value (struct bitpack_d *bp, unsigned nbits)
|
|||
|
||||
/* Write a character to the output block. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
streamer_write_char_stream (struct lto_output_stream *obs, char c)
|
||||
{
|
||||
/* No space left. */
|
||||
|
@ -221,7 +221,7 @@ streamer_write_char_stream (struct lto_output_stream *obs, char c)
|
|||
|
||||
/* Read byte from the input block. */
|
||||
|
||||
static inline unsigned char
|
||||
inline unsigned char
|
||||
streamer_read_uchar (class lto_input_block *ib)
|
||||
{
|
||||
if (ib->p >= ib->len)
|
||||
|
@ -233,7 +233,7 @@ streamer_read_uchar (class lto_input_block *ib)
|
|||
to be compile time constant.
|
||||
Be host independent, limit range to 31bits. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
streamer_write_hwi_in_range (struct lto_output_stream *obs,
|
||||
HOST_WIDE_INT min,
|
||||
HOST_WIDE_INT max,
|
||||
|
@ -251,7 +251,7 @@ streamer_write_hwi_in_range (struct lto_output_stream *obs,
|
|||
/* Input VAL into OBS and verify it is in range MIN...MAX that is supposed
|
||||
to be compile time constant. PURPOSE is used for error reporting. */
|
||||
|
||||
static inline HOST_WIDE_INT
|
||||
inline HOST_WIDE_INT
|
||||
streamer_read_hwi_in_range (class lto_input_block *ib,
|
||||
const char *purpose,
|
||||
HOST_WIDE_INT min,
|
||||
|
@ -272,7 +272,7 @@ streamer_read_hwi_in_range (class lto_input_block *ib,
|
|||
to be compile time constant.
|
||||
Be host independent, limit range to 31bits. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bp_pack_int_in_range (struct bitpack_d *bp,
|
||||
HOST_WIDE_INT min,
|
||||
HOST_WIDE_INT max,
|
||||
|
@ -291,7 +291,7 @@ bp_pack_int_in_range (struct bitpack_d *bp,
|
|||
/* Input VAL into BP and verify it is in range MIN...MAX that is supposed
|
||||
to be compile time constant. PURPOSE is used for error reporting. */
|
||||
|
||||
static inline HOST_WIDE_INT
|
||||
inline HOST_WIDE_INT
|
||||
bp_unpack_int_in_range (struct bitpack_d *bp,
|
||||
const char *purpose,
|
||||
HOST_WIDE_INT min,
|
||||
|
@ -332,7 +332,7 @@ bp_unpack_int_in_range (struct bitpack_d *bp,
|
|||
|
||||
/* Output the start of a record with TAG to output block OB. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
streamer_write_record_start (struct output_block *ob, enum LTO_tags tag)
|
||||
{
|
||||
streamer_write_enum (ob->main_stream, LTO_tags, LTO_NUM_TAGS, tag);
|
||||
|
@ -340,7 +340,7 @@ streamer_write_record_start (struct output_block *ob, enum LTO_tags tag)
|
|||
|
||||
/* Return the next tag in the input block IB. */
|
||||
|
||||
static inline enum LTO_tags
|
||||
inline enum LTO_tags
|
||||
streamer_read_record_start (class lto_input_block *ib)
|
||||
{
|
||||
return streamer_read_enum (ib, LTO_tags, LTO_NUM_TAGS);
|
||||
|
|
|
@ -270,7 +270,7 @@ extern decl_to_instance_map_t *decl_to_instance_map;
|
|||
/* Allocate decl_to_instance_map with COUNT slots to begin wtih, if it
|
||||
* hasn't been allocated yet. */
|
||||
|
||||
static inline decl_to_instance_map_t *
|
||||
inline decl_to_instance_map_t *
|
||||
maybe_create_decl_to_instance_map (int count = 13)
|
||||
{
|
||||
if (!decl_to_instance_map)
|
||||
|
|
26
gcc/df.h
26
gcc/df.h
|
@ -1097,7 +1097,7 @@ extern void df_scan_verify (void);
|
|||
Public functions access functions for the dataflow problems.
|
||||
----------------------------------------------------------------------------*/
|
||||
|
||||
static inline struct df_scan_bb_info *
|
||||
inline struct df_scan_bb_info *
|
||||
df_scan_get_bb_info (unsigned int index)
|
||||
{
|
||||
if (index < df_scan->block_info_size)
|
||||
|
@ -1106,7 +1106,7 @@ df_scan_get_bb_info (unsigned int index)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static inline class df_rd_bb_info *
|
||||
inline class df_rd_bb_info *
|
||||
df_rd_get_bb_info (unsigned int index)
|
||||
{
|
||||
if (index < df_rd->block_info_size)
|
||||
|
@ -1115,7 +1115,7 @@ df_rd_get_bb_info (unsigned int index)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static inline class df_lr_bb_info *
|
||||
inline class df_lr_bb_info *
|
||||
df_lr_get_bb_info (unsigned int index)
|
||||
{
|
||||
if (index < df_lr->block_info_size)
|
||||
|
@ -1124,7 +1124,7 @@ df_lr_get_bb_info (unsigned int index)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static inline class df_md_bb_info *
|
||||
inline class df_md_bb_info *
|
||||
df_md_get_bb_info (unsigned int index)
|
||||
{
|
||||
if (index < df_md->block_info_size)
|
||||
|
@ -1133,7 +1133,7 @@ df_md_get_bb_info (unsigned int index)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static inline class df_live_bb_info *
|
||||
inline class df_live_bb_info *
|
||||
df_live_get_bb_info (unsigned int index)
|
||||
{
|
||||
if (index < df_live->block_info_size)
|
||||
|
@ -1142,7 +1142,7 @@ df_live_get_bb_info (unsigned int index)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static inline class df_word_lr_bb_info *
|
||||
inline class df_word_lr_bb_info *
|
||||
df_word_lr_get_bb_info (unsigned int index)
|
||||
{
|
||||
if (index < df_word_lr->block_info_size)
|
||||
|
@ -1151,7 +1151,7 @@ df_word_lr_get_bb_info (unsigned int index)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static inline class df_mir_bb_info *
|
||||
inline class df_mir_bb_info *
|
||||
df_mir_get_bb_info (unsigned int index)
|
||||
{
|
||||
if (index < df_mir->block_info_size)
|
||||
|
@ -1165,7 +1165,7 @@ df_mir_get_bb_info (unsigned int index)
|
|||
choose different dataflow problems depending on the optimization
|
||||
level. */
|
||||
|
||||
static inline bitmap
|
||||
inline bitmap
|
||||
df_get_live_out (basic_block bb)
|
||||
{
|
||||
gcc_checking_assert (df_lr);
|
||||
|
@ -1181,7 +1181,7 @@ df_get_live_out (basic_block bb)
|
|||
choose different dataflow problems depending on the optimization
|
||||
level. */
|
||||
|
||||
static inline bitmap
|
||||
inline bitmap
|
||||
df_get_live_in (basic_block bb)
|
||||
{
|
||||
gcc_checking_assert (df_lr);
|
||||
|
@ -1195,7 +1195,7 @@ df_get_live_in (basic_block bb)
|
|||
/* Get basic block info. */
|
||||
/* Get the artificial defs for a basic block. */
|
||||
|
||||
static inline df_ref
|
||||
inline df_ref
|
||||
df_get_artificial_defs (unsigned int bb_index)
|
||||
{
|
||||
return df_scan_get_bb_info (bb_index)->artificial_defs;
|
||||
|
@ -1204,7 +1204,7 @@ df_get_artificial_defs (unsigned int bb_index)
|
|||
|
||||
/* Get the artificial uses for a basic block. */
|
||||
|
||||
static inline df_ref
|
||||
inline df_ref
|
||||
df_get_artificial_uses (unsigned int bb_index)
|
||||
{
|
||||
return df_scan_get_bb_info (bb_index)->artificial_uses;
|
||||
|
@ -1213,7 +1213,7 @@ df_get_artificial_uses (unsigned int bb_index)
|
|||
/* If INSN defines exactly one register, return the associated reference,
|
||||
otherwise return null. */
|
||||
|
||||
static inline df_ref
|
||||
inline df_ref
|
||||
df_single_def (const df_insn_info *info)
|
||||
{
|
||||
df_ref defs = DF_INSN_INFO_DEFS (info);
|
||||
|
@ -1223,7 +1223,7 @@ df_single_def (const df_insn_info *info)
|
|||
/* If INSN uses exactly one register, return the associated reference,
|
||||
otherwise return null. */
|
||||
|
||||
static inline df_ref
|
||||
inline df_ref
|
||||
df_single_use (const df_insn_info *info)
|
||||
{
|
||||
df_ref uses = DF_INSN_INFO_USES (info);
|
||||
|
|
|
@ -416,7 +416,7 @@ struct diagnostic_context
|
|||
diagnostic_client_data_hooks *m_client_data_hooks;
|
||||
};
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
diagnostic_inhibit_notes (diagnostic_context * context)
|
||||
{
|
||||
context->inhibit_notes_p = true;
|
||||
|
@ -474,7 +474,7 @@ extern diagnostic_context *global_dc;
|
|||
/* Override the option index to be used for reporting a
|
||||
diagnostic. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
diagnostic_override_option_index (diagnostic_info *info, int optidx)
|
||||
{
|
||||
info->option_index = optidx;
|
||||
|
@ -546,7 +546,7 @@ int get_terminal_width (void);
|
|||
/* Return the location associated to this diagnostic. Parameter WHICH
|
||||
specifies which location. By default, expand the first one. */
|
||||
|
||||
static inline location_t
|
||||
inline location_t
|
||||
diagnostic_location (const diagnostic_info * diagnostic, int which = 0)
|
||||
{
|
||||
return diagnostic->message.get_location (which);
|
||||
|
@ -554,7 +554,7 @@ diagnostic_location (const diagnostic_info * diagnostic, int which = 0)
|
|||
|
||||
/* Return the number of locations to be printed in DIAGNOSTIC. */
|
||||
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
diagnostic_num_locations (const diagnostic_info * diagnostic)
|
||||
{
|
||||
return diagnostic->message.m_richloc->get_num_locations ();
|
||||
|
@ -564,7 +564,7 @@ diagnostic_num_locations (const diagnostic_info * diagnostic)
|
|||
consistency. Parameter WHICH specifies which location. By default,
|
||||
expand the first one. */
|
||||
|
||||
static inline expanded_location
|
||||
inline expanded_location
|
||||
diagnostic_expand_location (const diagnostic_info * diagnostic, int which = 0)
|
||||
{
|
||||
return diagnostic->richloc->get_expanded_location (which);
|
||||
|
@ -579,7 +579,7 @@ const int CARET_LINE_MARGIN = 10;
|
|||
caret line. This is used to build a prefix and also to determine
|
||||
whether to print one or two caret lines. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
diagnostic_same_line (const diagnostic_context *context,
|
||||
expanded_location s1, expanded_location s2)
|
||||
{
|
||||
|
|
|
@ -69,7 +69,7 @@ extern void verify_dominators (enum cdi_direction);
|
|||
/* Verify invariants of computed dominance information, if internal consistency
|
||||
checks are enabled. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
checking_verify_dominators (cdi_direction dir)
|
||||
{
|
||||
if (flag_checking)
|
||||
|
|
|
@ -208,27 +208,27 @@ enum dump_flag : uint32_t
|
|||
|
||||
typedef enum dump_flag dump_flags_t;
|
||||
|
||||
static inline dump_flags_t
|
||||
inline dump_flags_t
|
||||
operator| (dump_flags_t lhs, dump_flags_t rhs)
|
||||
{
|
||||
return (dump_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
|
||||
| (std::underlying_type<dump_flags_t>::type)rhs);
|
||||
}
|
||||
|
||||
static inline dump_flags_t
|
||||
inline dump_flags_t
|
||||
operator& (dump_flags_t lhs, dump_flags_t rhs)
|
||||
{
|
||||
return (dump_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
|
||||
& (std::underlying_type<dump_flags_t>::type)rhs);
|
||||
}
|
||||
|
||||
static inline dump_flags_t
|
||||
inline dump_flags_t
|
||||
operator~ (dump_flags_t flags)
|
||||
{
|
||||
return (dump_flags_t)~((std::underlying_type<dump_flags_t>::type)flags);
|
||||
}
|
||||
|
||||
static inline dump_flags_t &
|
||||
inline dump_flags_t &
|
||||
operator|= (dump_flags_t &lhs, dump_flags_t rhs)
|
||||
{
|
||||
lhs = (dump_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
|
||||
|
@ -236,7 +236,7 @@ operator|= (dump_flags_t &lhs, dump_flags_t rhs)
|
|||
return lhs;
|
||||
}
|
||||
|
||||
static inline dump_flags_t &
|
||||
inline dump_flags_t &
|
||||
operator&= (dump_flags_t &lhs, dump_flags_t rhs)
|
||||
{
|
||||
lhs = (dump_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
|
||||
|
@ -276,14 +276,14 @@ enum optgroup_flag
|
|||
|
||||
typedef enum optgroup_flag optgroup_flags_t;
|
||||
|
||||
static inline optgroup_flags_t
|
||||
inline optgroup_flags_t
|
||||
operator| (optgroup_flags_t lhs, optgroup_flags_t rhs)
|
||||
{
|
||||
return (optgroup_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
|
||||
| (std::underlying_type<dump_flags_t>::type)rhs);
|
||||
}
|
||||
|
||||
static inline optgroup_flags_t &
|
||||
inline optgroup_flags_t &
|
||||
operator|= (optgroup_flags_t &lhs, optgroup_flags_t rhs)
|
||||
{
|
||||
lhs = (optgroup_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
|
||||
|
@ -528,7 +528,7 @@ extern bool dumps_are_enabled;
|
|||
extern void set_dump_file (FILE *new_dump_file);
|
||||
|
||||
/* Return true if any of the dumps is enabled, false otherwise. */
|
||||
static inline bool
|
||||
inline bool
|
||||
dump_enabled_p (void)
|
||||
{
|
||||
return dumps_are_enabled;
|
||||
|
|
|
@ -400,7 +400,7 @@ extern bool need_atomic_barrier_p (enum memmodel, bool);
|
|||
|
||||
/* Return the current sequence. */
|
||||
|
||||
static inline struct sequence_stack *
|
||||
inline struct sequence_stack *
|
||||
get_current_sequence (void)
|
||||
{
|
||||
return &crtl->emit.seq;
|
||||
|
@ -408,7 +408,7 @@ get_current_sequence (void)
|
|||
|
||||
/* Return the outermost sequence. */
|
||||
|
||||
static inline struct sequence_stack *
|
||||
inline struct sequence_stack *
|
||||
get_topmost_sequence (void)
|
||||
{
|
||||
struct sequence_stack *seq, *top;
|
||||
|
@ -424,7 +424,7 @@ get_topmost_sequence (void)
|
|||
|
||||
/* Return the first insn of the current sequence or current function. */
|
||||
|
||||
static inline rtx_insn *
|
||||
inline rtx_insn *
|
||||
get_insns (void)
|
||||
{
|
||||
return get_current_sequence ()->first;
|
||||
|
@ -432,7 +432,7 @@ get_insns (void)
|
|||
|
||||
/* Specify a new insn as the first in the chain. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_first_insn (rtx_insn *insn)
|
||||
{
|
||||
gcc_checking_assert (!insn || !PREV_INSN (insn));
|
||||
|
@ -441,7 +441,7 @@ set_first_insn (rtx_insn *insn)
|
|||
|
||||
/* Return the last insn emitted in current sequence or current function. */
|
||||
|
||||
static inline rtx_insn *
|
||||
inline rtx_insn *
|
||||
get_last_insn (void)
|
||||
{
|
||||
return get_current_sequence ()->last;
|
||||
|
@ -449,7 +449,7 @@ get_last_insn (void)
|
|||
|
||||
/* Specify a new insn as the last in the chain. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_last_insn (rtx_insn *insn)
|
||||
{
|
||||
gcc_checking_assert (!insn || !NEXT_INSN (insn));
|
||||
|
@ -458,7 +458,7 @@ set_last_insn (rtx_insn *insn)
|
|||
|
||||
/* Return a number larger than any instruction's uid in this function. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
get_max_uid (void)
|
||||
{
|
||||
return crtl->emit.x_cur_insn_uid;
|
||||
|
|
|
@ -302,7 +302,7 @@ function_needs_eh_personality (struct function *);
|
|||
|
||||
/* Pre-order iteration within the eh_region tree. */
|
||||
|
||||
static inline eh_region
|
||||
inline eh_region
|
||||
ehr_next (eh_region r, eh_region start)
|
||||
{
|
||||
if (r->inner)
|
||||
|
|
102
gcc/expmed.h
102
gcc/expmed.h
|
@ -191,7 +191,7 @@ extern struct target_expmed *this_target_expmed;
|
|||
|
||||
/* Return a pointer to the alg_hash_entry at IDX. */
|
||||
|
||||
static inline struct alg_hash_entry *
|
||||
inline struct alg_hash_entry *
|
||||
alg_hash_entry_ptr (int idx)
|
||||
{
|
||||
return &this_target_expmed->x_alg_hash[idx];
|
||||
|
@ -199,7 +199,7 @@ alg_hash_entry_ptr (int idx)
|
|||
|
||||
/* Return true if the x_alg_hash field might have been used. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
alg_hash_used_p (void)
|
||||
{
|
||||
return this_target_expmed->x_alg_hash_used_p;
|
||||
|
@ -207,7 +207,7 @@ alg_hash_used_p (void)
|
|||
|
||||
/* Set whether the x_alg_hash field might have been used. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_alg_hash_used_p (bool usedp)
|
||||
{
|
||||
this_target_expmed->x_alg_hash_used_p = usedp;
|
||||
|
@ -215,7 +215,7 @@ set_alg_hash_used_p (bool usedp)
|
|||
|
||||
/* Compute an index into the cost arrays by mode class. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
expmed_mode_index (machine_mode mode)
|
||||
{
|
||||
switch (GET_MODE_CLASS (mode))
|
||||
|
@ -244,7 +244,7 @@ expmed_mode_index (machine_mode mode)
|
|||
a particular operation performed in MODE is cheap when optimizing
|
||||
for SPEED. */
|
||||
|
||||
static inline bool *
|
||||
inline bool *
|
||||
expmed_op_cheap_ptr (struct expmed_op_cheap *eoc, bool speed,
|
||||
machine_mode mode)
|
||||
{
|
||||
|
@ -255,7 +255,7 @@ expmed_op_cheap_ptr (struct expmed_op_cheap *eoc, bool speed,
|
|||
/* Return a pointer to a cost contained in COSTS when a particular
|
||||
operation is performed in MODE when optimizing for SPEED. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
expmed_op_cost_ptr (struct expmed_op_costs *costs, bool speed,
|
||||
machine_mode mode)
|
||||
{
|
||||
|
@ -265,7 +265,7 @@ expmed_op_cost_ptr (struct expmed_op_costs *costs, bool speed,
|
|||
|
||||
/* Subroutine of {set_,}sdiv_pow2_cheap. Not to be used otherwise. */
|
||||
|
||||
static inline bool *
|
||||
inline bool *
|
||||
sdiv_pow2_cheap_ptr (bool speed, machine_mode mode)
|
||||
{
|
||||
return expmed_op_cheap_ptr (&this_target_expmed->x_sdiv_pow2_cheap,
|
||||
|
@ -275,7 +275,7 @@ sdiv_pow2_cheap_ptr (bool speed, machine_mode mode)
|
|||
/* Set whether a signed division by a power of 2 is cheap in MODE
|
||||
when optimizing for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_sdiv_pow2_cheap (bool speed, machine_mode mode, bool cheap_p)
|
||||
{
|
||||
*sdiv_pow2_cheap_ptr (speed, mode) = cheap_p;
|
||||
|
@ -284,7 +284,7 @@ set_sdiv_pow2_cheap (bool speed, machine_mode mode, bool cheap_p)
|
|||
/* Return whether a signed division by a power of 2 is cheap in MODE
|
||||
when optimizing for SPEED. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
sdiv_pow2_cheap (bool speed, machine_mode mode)
|
||||
{
|
||||
return *sdiv_pow2_cheap_ptr (speed, mode);
|
||||
|
@ -292,7 +292,7 @@ sdiv_pow2_cheap (bool speed, machine_mode mode)
|
|||
|
||||
/* Subroutine of {set_,}smod_pow2_cheap. Not to be used otherwise. */
|
||||
|
||||
static inline bool *
|
||||
inline bool *
|
||||
smod_pow2_cheap_ptr (bool speed, machine_mode mode)
|
||||
{
|
||||
return expmed_op_cheap_ptr (&this_target_expmed->x_smod_pow2_cheap,
|
||||
|
@ -302,7 +302,7 @@ smod_pow2_cheap_ptr (bool speed, machine_mode mode)
|
|||
/* Set whether a signed modulo by a power of 2 is CHEAP in MODE when
|
||||
optimizing for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_smod_pow2_cheap (bool speed, machine_mode mode, bool cheap)
|
||||
{
|
||||
*smod_pow2_cheap_ptr (speed, mode) = cheap;
|
||||
|
@ -311,7 +311,7 @@ set_smod_pow2_cheap (bool speed, machine_mode mode, bool cheap)
|
|||
/* Return whether a signed modulo by a power of 2 is cheap in MODE
|
||||
when optimizing for SPEED. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
smod_pow2_cheap (bool speed, machine_mode mode)
|
||||
{
|
||||
return *smod_pow2_cheap_ptr (speed, mode);
|
||||
|
@ -319,7 +319,7 @@ smod_pow2_cheap (bool speed, machine_mode mode)
|
|||
|
||||
/* Subroutine of {set_,}zero_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
zero_cost_ptr (bool speed)
|
||||
{
|
||||
return &this_target_expmed->x_zero_cost[speed];
|
||||
|
@ -327,7 +327,7 @@ zero_cost_ptr (bool speed)
|
|||
|
||||
/* Set the COST of loading zero when optimizing for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_zero_cost (bool speed, int cost)
|
||||
{
|
||||
*zero_cost_ptr (speed) = cost;
|
||||
|
@ -335,7 +335,7 @@ set_zero_cost (bool speed, int cost)
|
|||
|
||||
/* Return the COST of loading zero when optimizing for SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
zero_cost (bool speed)
|
||||
{
|
||||
return *zero_cost_ptr (speed);
|
||||
|
@ -343,7 +343,7 @@ zero_cost (bool speed)
|
|||
|
||||
/* Subroutine of {set_,}add_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
add_cost_ptr (bool speed, machine_mode mode)
|
||||
{
|
||||
return expmed_op_cost_ptr (&this_target_expmed->x_add_cost, speed, mode);
|
||||
|
@ -351,7 +351,7 @@ add_cost_ptr (bool speed, machine_mode mode)
|
|||
|
||||
/* Set the COST of computing an add in MODE when optimizing for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_add_cost (bool speed, machine_mode mode, int cost)
|
||||
{
|
||||
*add_cost_ptr (speed, mode) = cost;
|
||||
|
@ -359,7 +359,7 @@ set_add_cost (bool speed, machine_mode mode, int cost)
|
|||
|
||||
/* Return the cost of computing an add in MODE when optimizing for SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
add_cost (bool speed, machine_mode mode)
|
||||
{
|
||||
return *add_cost_ptr (speed, mode);
|
||||
|
@ -367,7 +367,7 @@ add_cost (bool speed, machine_mode mode)
|
|||
|
||||
/* Subroutine of {set_,}neg_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
neg_cost_ptr (bool speed, machine_mode mode)
|
||||
{
|
||||
return expmed_op_cost_ptr (&this_target_expmed->x_neg_cost, speed, mode);
|
||||
|
@ -375,7 +375,7 @@ neg_cost_ptr (bool speed, machine_mode mode)
|
|||
|
||||
/* Set the COST of computing a negation in MODE when optimizing for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_neg_cost (bool speed, machine_mode mode, int cost)
|
||||
{
|
||||
*neg_cost_ptr (speed, mode) = cost;
|
||||
|
@ -384,7 +384,7 @@ set_neg_cost (bool speed, machine_mode mode, int cost)
|
|||
/* Return the cost of computing a negation in MODE when optimizing for
|
||||
SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
neg_cost (bool speed, machine_mode mode)
|
||||
{
|
||||
return *neg_cost_ptr (speed, mode);
|
||||
|
@ -392,7 +392,7 @@ neg_cost (bool speed, machine_mode mode)
|
|||
|
||||
/* Subroutine of {set_,}shift_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
shift_cost_ptr (bool speed, machine_mode mode, int bits)
|
||||
{
|
||||
return expmed_op_cost_ptr (&this_target_expmed->x_shift_cost[bits],
|
||||
|
@ -401,7 +401,7 @@ shift_cost_ptr (bool speed, machine_mode mode, int bits)
|
|||
|
||||
/* Set the COST of doing a shift in MODE by BITS when optimizing for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_shift_cost (bool speed, machine_mode mode, int bits, int cost)
|
||||
{
|
||||
*shift_cost_ptr (speed, mode, bits) = cost;
|
||||
|
@ -410,7 +410,7 @@ set_shift_cost (bool speed, machine_mode mode, int bits, int cost)
|
|||
/* Return the cost of doing a shift in MODE by BITS when optimizing for
|
||||
SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
shift_cost (bool speed, machine_mode mode, int bits)
|
||||
{
|
||||
return *shift_cost_ptr (speed, mode, bits);
|
||||
|
@ -418,7 +418,7 @@ shift_cost (bool speed, machine_mode mode, int bits)
|
|||
|
||||
/* Subroutine of {set_,}shiftadd_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
shiftadd_cost_ptr (bool speed, machine_mode mode, int bits)
|
||||
{
|
||||
return expmed_op_cost_ptr (&this_target_expmed->x_shiftadd_cost[bits],
|
||||
|
@ -428,7 +428,7 @@ shiftadd_cost_ptr (bool speed, machine_mode mode, int bits)
|
|||
/* Set the COST of doing a shift in MODE by BITS followed by an add when
|
||||
optimizing for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_shiftadd_cost (bool speed, machine_mode mode, int bits, int cost)
|
||||
{
|
||||
*shiftadd_cost_ptr (speed, mode, bits) = cost;
|
||||
|
@ -437,7 +437,7 @@ set_shiftadd_cost (bool speed, machine_mode mode, int bits, int cost)
|
|||
/* Return the cost of doing a shift in MODE by BITS followed by an add
|
||||
when optimizing for SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
shiftadd_cost (bool speed, machine_mode mode, int bits)
|
||||
{
|
||||
return *shiftadd_cost_ptr (speed, mode, bits);
|
||||
|
@ -445,7 +445,7 @@ shiftadd_cost (bool speed, machine_mode mode, int bits)
|
|||
|
||||
/* Subroutine of {set_,}shiftsub0_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
shiftsub0_cost_ptr (bool speed, machine_mode mode, int bits)
|
||||
{
|
||||
return expmed_op_cost_ptr (&this_target_expmed->x_shiftsub0_cost[bits],
|
||||
|
@ -455,7 +455,7 @@ shiftsub0_cost_ptr (bool speed, machine_mode mode, int bits)
|
|||
/* Set the COST of doing a shift in MODE by BITS and then subtracting a
|
||||
value when optimizing for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_shiftsub0_cost (bool speed, machine_mode mode, int bits, int cost)
|
||||
{
|
||||
*shiftsub0_cost_ptr (speed, mode, bits) = cost;
|
||||
|
@ -464,7 +464,7 @@ set_shiftsub0_cost (bool speed, machine_mode mode, int bits, int cost)
|
|||
/* Return the cost of doing a shift in MODE by BITS and then subtracting
|
||||
a value when optimizing for SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
shiftsub0_cost (bool speed, machine_mode mode, int bits)
|
||||
{
|
||||
return *shiftsub0_cost_ptr (speed, mode, bits);
|
||||
|
@ -472,7 +472,7 @@ shiftsub0_cost (bool speed, machine_mode mode, int bits)
|
|||
|
||||
/* Subroutine of {set_,}shiftsub1_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
shiftsub1_cost_ptr (bool speed, machine_mode mode, int bits)
|
||||
{
|
||||
return expmed_op_cost_ptr (&this_target_expmed->x_shiftsub1_cost[bits],
|
||||
|
@ -482,7 +482,7 @@ shiftsub1_cost_ptr (bool speed, machine_mode mode, int bits)
|
|||
/* Set the COST of subtracting a shift in MODE by BITS from a value when
|
||||
optimizing for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_shiftsub1_cost (bool speed, machine_mode mode, int bits, int cost)
|
||||
{
|
||||
*shiftsub1_cost_ptr (speed, mode, bits) = cost;
|
||||
|
@ -491,7 +491,7 @@ set_shiftsub1_cost (bool speed, machine_mode mode, int bits, int cost)
|
|||
/* Return the cost of subtracting a shift in MODE by BITS from a value
|
||||
when optimizing for SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
shiftsub1_cost (bool speed, machine_mode mode, int bits)
|
||||
{
|
||||
return *shiftsub1_cost_ptr (speed, mode, bits);
|
||||
|
@ -499,7 +499,7 @@ shiftsub1_cost (bool speed, machine_mode mode, int bits)
|
|||
|
||||
/* Subroutine of {set_,}mul_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
mul_cost_ptr (bool speed, machine_mode mode)
|
||||
{
|
||||
return expmed_op_cost_ptr (&this_target_expmed->x_mul_cost, speed, mode);
|
||||
|
@ -508,7 +508,7 @@ mul_cost_ptr (bool speed, machine_mode mode)
|
|||
/* Set the COST of doing a multiplication in MODE when optimizing for
|
||||
SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_mul_cost (bool speed, machine_mode mode, int cost)
|
||||
{
|
||||
*mul_cost_ptr (speed, mode) = cost;
|
||||
|
@ -517,7 +517,7 @@ set_mul_cost (bool speed, machine_mode mode, int cost)
|
|||
/* Return the cost of doing a multiplication in MODE when optimizing
|
||||
for SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
mul_cost (bool speed, machine_mode mode)
|
||||
{
|
||||
return *mul_cost_ptr (speed, mode);
|
||||
|
@ -525,7 +525,7 @@ mul_cost (bool speed, machine_mode mode)
|
|||
|
||||
/* Subroutine of {set_,}sdiv_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
sdiv_cost_ptr (bool speed, machine_mode mode)
|
||||
{
|
||||
return expmed_op_cost_ptr (&this_target_expmed->x_sdiv_cost, speed, mode);
|
||||
|
@ -534,7 +534,7 @@ sdiv_cost_ptr (bool speed, machine_mode mode)
|
|||
/* Set the COST of doing a signed division in MODE when optimizing
|
||||
for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_sdiv_cost (bool speed, machine_mode mode, int cost)
|
||||
{
|
||||
*sdiv_cost_ptr (speed, mode) = cost;
|
||||
|
@ -543,7 +543,7 @@ set_sdiv_cost (bool speed, machine_mode mode, int cost)
|
|||
/* Return the cost of doing a signed division in MODE when optimizing
|
||||
for SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
sdiv_cost (bool speed, machine_mode mode)
|
||||
{
|
||||
return *sdiv_cost_ptr (speed, mode);
|
||||
|
@ -551,7 +551,7 @@ sdiv_cost (bool speed, machine_mode mode)
|
|||
|
||||
/* Subroutine of {set_,}udiv_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
udiv_cost_ptr (bool speed, machine_mode mode)
|
||||
{
|
||||
return expmed_op_cost_ptr (&this_target_expmed->x_udiv_cost, speed, mode);
|
||||
|
@ -560,7 +560,7 @@ udiv_cost_ptr (bool speed, machine_mode mode)
|
|||
/* Set the COST of doing an unsigned division in MODE when optimizing
|
||||
for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_udiv_cost (bool speed, machine_mode mode, int cost)
|
||||
{
|
||||
*udiv_cost_ptr (speed, mode) = cost;
|
||||
|
@ -569,7 +569,7 @@ set_udiv_cost (bool speed, machine_mode mode, int cost)
|
|||
/* Return the cost of doing an unsigned division in MODE when
|
||||
optimizing for SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
udiv_cost (bool speed, machine_mode mode)
|
||||
{
|
||||
return *udiv_cost_ptr (speed, mode);
|
||||
|
@ -577,7 +577,7 @@ udiv_cost (bool speed, machine_mode mode)
|
|||
|
||||
/* Subroutine of {set_,}mul_widen_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
mul_widen_cost_ptr (bool speed, machine_mode mode)
|
||||
{
|
||||
gcc_assert (GET_MODE_CLASS (mode) == MODE_INT);
|
||||
|
@ -588,7 +588,7 @@ mul_widen_cost_ptr (bool speed, machine_mode mode)
|
|||
/* Set the COST for computing a widening multiplication in MODE when
|
||||
optimizing for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_mul_widen_cost (bool speed, machine_mode mode, int cost)
|
||||
{
|
||||
*mul_widen_cost_ptr (speed, mode) = cost;
|
||||
|
@ -597,7 +597,7 @@ set_mul_widen_cost (bool speed, machine_mode mode, int cost)
|
|||
/* Return the cost for computing a widening multiplication in MODE when
|
||||
optimizing for SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
mul_widen_cost (bool speed, machine_mode mode)
|
||||
{
|
||||
return *mul_widen_cost_ptr (speed, mode);
|
||||
|
@ -605,7 +605,7 @@ mul_widen_cost (bool speed, machine_mode mode)
|
|||
|
||||
/* Subroutine of {set_,}mul_highpart_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
mul_highpart_cost_ptr (bool speed, machine_mode mode)
|
||||
{
|
||||
gcc_assert (GET_MODE_CLASS (mode) == MODE_INT);
|
||||
|
@ -618,7 +618,7 @@ mul_highpart_cost_ptr (bool speed, machine_mode mode)
|
|||
/* Set the COST for computing the high part of a multiplication in MODE
|
||||
when optimizing for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_mul_highpart_cost (bool speed, machine_mode mode, int cost)
|
||||
{
|
||||
*mul_highpart_cost_ptr (speed, mode) = cost;
|
||||
|
@ -627,7 +627,7 @@ set_mul_highpart_cost (bool speed, machine_mode mode, int cost)
|
|||
/* Return the cost for computing the high part of a multiplication in MODE
|
||||
when optimizing for SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
mul_highpart_cost (bool speed, machine_mode mode)
|
||||
{
|
||||
return *mul_highpart_cost_ptr (speed, mode);
|
||||
|
@ -635,7 +635,7 @@ mul_highpart_cost (bool speed, machine_mode mode)
|
|||
|
||||
/* Subroutine of {set_,}convert_cost. Not to be used otherwise. */
|
||||
|
||||
static inline int *
|
||||
inline int *
|
||||
convert_cost_ptr (machine_mode to_mode, machine_mode from_mode,
|
||||
bool speed)
|
||||
{
|
||||
|
@ -651,7 +651,7 @@ convert_cost_ptr (machine_mode to_mode, machine_mode from_mode,
|
|||
/* Set the COST for converting from FROM_MODE to TO_MODE when optimizing
|
||||
for SPEED. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_convert_cost (machine_mode to_mode, machine_mode from_mode,
|
||||
bool speed, int cost)
|
||||
{
|
||||
|
@ -661,7 +661,7 @@ set_convert_cost (machine_mode to_mode, machine_mode from_mode,
|
|||
/* Return the cost for converting from FROM_MODE to TO_MODE when optimizing
|
||||
for SPEED. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
convert_cost (machine_mode to_mode, machine_mode from_mode,
|
||||
bool speed)
|
||||
{
|
||||
|
|
14
gcc/expr.h
14
gcc/expr.h
|
@ -84,19 +84,19 @@ extern rtx convert_wider_int_to_float (machine_mode mode, machine_mode imode,
|
|||
extern rtx emit_block_op_via_libcall (enum built_in_function, rtx, rtx, rtx,
|
||||
bool);
|
||||
|
||||
static inline rtx
|
||||
inline rtx
|
||||
emit_block_copy_via_libcall (rtx dst, rtx src, rtx size, bool tailcall = false)
|
||||
{
|
||||
return emit_block_op_via_libcall (BUILT_IN_MEMCPY, dst, src, size, tailcall);
|
||||
}
|
||||
|
||||
static inline rtx
|
||||
inline rtx
|
||||
emit_block_move_via_libcall (rtx dst, rtx src, rtx size, bool tailcall = false)
|
||||
{
|
||||
return emit_block_op_via_libcall (BUILT_IN_MEMMOVE, dst, src, size, tailcall);
|
||||
}
|
||||
|
||||
static inline rtx
|
||||
inline rtx
|
||||
emit_block_comp_via_libcall (rtx dst, rtx src, rtx size, bool tailcall = false)
|
||||
{
|
||||
return emit_block_op_via_libcall (BUILT_IN_MEMCMP, dst, src, size, tailcall);
|
||||
|
@ -178,14 +178,14 @@ extern void clobber_reg_mode (rtx *, rtx, machine_mode);
|
|||
extern rtx copy_blkmode_to_reg (machine_mode, tree);
|
||||
|
||||
/* Mark REG as holding a parameter for the next CALL_INSN. */
|
||||
static inline void
|
||||
inline void
|
||||
use_reg (rtx *fusage, rtx reg)
|
||||
{
|
||||
use_reg_mode (fusage, reg, VOIDmode);
|
||||
}
|
||||
|
||||
/* Mark REG as clobbered by the call with FUSAGE as CALL_INSN_FUNCTION_USAGE. */
|
||||
static inline void
|
||||
inline void
|
||||
clobber_reg (rtx *fusage, rtx reg)
|
||||
{
|
||||
clobber_reg_mode (fusage, reg, VOIDmode);
|
||||
|
@ -303,14 +303,14 @@ extern rtx expand_expr_real_2 (sepops, rtx, machine_mode,
|
|||
/* Generate code for computing expression EXP.
|
||||
An rtx for the computed value is returned. The value is never null.
|
||||
In the case of a void EXP, const0_rtx is returned. */
|
||||
static inline rtx
|
||||
inline rtx
|
||||
expand_expr (tree exp, rtx target, machine_mode mode,
|
||||
enum expand_modifier modifier)
|
||||
{
|
||||
return expand_expr_real (exp, target, mode, modifier, NULL, false);
|
||||
}
|
||||
|
||||
static inline rtx
|
||||
inline rtx
|
||||
expand_normal (tree exp)
|
||||
{
|
||||
return expand_expr_real (exp, NULL_RTX, VOIDmode, EXPAND_NORMAL, NULL, false);
|
||||
|
|
|
@ -51,7 +51,7 @@ extern FIXED_VALUE_TYPE fixed_from_double_int (double_int, scalar_mode);
|
|||
|
||||
/* Return a CONST_FIXED from a bit payload and machine mode MODE.
|
||||
The bits in PAYLOAD are sign-extended/zero-extended according to MODE. */
|
||||
static inline rtx
|
||||
inline rtx
|
||||
const_fixed_from_double_int (double_int payload,
|
||||
scalar_mode mode)
|
||||
{
|
||||
|
|
|
@ -3276,7 +3276,7 @@ void gfc_done_2 (void);
|
|||
int get_c_kind (const char *, CInteropKind_t *);
|
||||
|
||||
const char *gfc_closest_fuzzy_match (const char *, char **);
|
||||
static inline void
|
||||
inline void
|
||||
vec_push (char **&optr, size_t &osz, const char *elt)
|
||||
{
|
||||
/* {auto,}vec.safe_push () replacement. Don't ask.. */
|
||||
|
@ -3552,7 +3552,7 @@ void gfc_intrinsic_done_1 (void);
|
|||
|
||||
char gfc_type_letter (bt, bool logical_equals_int = false);
|
||||
int gfc_type_abi_kind (bt, int);
|
||||
static inline int
|
||||
inline int
|
||||
gfc_type_abi_kind (gfc_typespec *ts)
|
||||
{
|
||||
return gfc_type_abi_kind (ts->type, ts->kind);
|
||||
|
|
|
@ -77,7 +77,7 @@ input_file* input_file_by_name (const char* name);
|
|||
const char *get_file_srcdir_relative_path (const input_file *inpf);
|
||||
|
||||
/* Get the name of an input file. */
|
||||
static inline const char*
|
||||
inline const char*
|
||||
get_input_file_name (const input_file *inpf)
|
||||
{
|
||||
if (inpf)
|
||||
|
@ -94,7 +94,7 @@ get_input_file_name (const input_file *inpf)
|
|||
some GC roots may be missed, which is a much harder-to-debug problem.
|
||||
*/
|
||||
|
||||
static inline lang_bitmap
|
||||
inline lang_bitmap
|
||||
get_lang_bitmap (const input_file* inpf)
|
||||
{
|
||||
if (inpf == NULL)
|
||||
|
@ -104,7 +104,7 @@ get_lang_bitmap (const input_file* inpf)
|
|||
|
||||
/* Set the bitmap returned by get_lang_bitmap. The only legitimate
|
||||
callers of this function are read_input_list & read_state_*. */
|
||||
static inline void
|
||||
inline void
|
||||
set_lang_bitmap (input_file* inpf, lang_bitmap n)
|
||||
{
|
||||
gcc_assert (inpf);
|
||||
|
@ -346,7 +346,7 @@ extern struct type callback_type;
|
|||
|
||||
/* Test if a type is a union or a structure, perhaps a language
|
||||
specific one. */
|
||||
static inline bool
|
||||
inline bool
|
||||
union_or_struct_p (enum typekind kind)
|
||||
{
|
||||
return (kind == TYPE_UNION
|
||||
|
@ -355,14 +355,14 @@ union_or_struct_p (enum typekind kind)
|
|||
|| kind == TYPE_USER_STRUCT);
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
union_or_struct_p (const_type_p x)
|
||||
{
|
||||
return union_or_struct_p (x->kind);
|
||||
}
|
||||
|
||||
/* Give the file location of a type, if any. */
|
||||
static inline struct fileloc*
|
||||
inline struct fileloc*
|
||||
type_fileloc (type_p t)
|
||||
{
|
||||
if (!t)
|
||||
|
|
|
@ -60,7 +60,7 @@ extern tree canonicalize_cond_expr_cond (tree);
|
|||
/* Return true if a conversion from either type of TYPE1 and TYPE2
|
||||
to the other is not required. Otherwise return false. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
types_compatible_p (tree type1, tree type2)
|
||||
{
|
||||
return (type1 == type2
|
||||
|
@ -70,7 +70,7 @@ types_compatible_p (tree type1, tree type2)
|
|||
|
||||
/* Return true if TYPE is a suitable type for a scalar register variable. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_gimple_reg_type (tree type)
|
||||
{
|
||||
return !AGGREGATE_TYPE_P (type);
|
||||
|
@ -78,7 +78,7 @@ is_gimple_reg_type (tree type)
|
|||
|
||||
/* Return true if T is a variable. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_gimple_variable (tree t)
|
||||
{
|
||||
return (TREE_CODE (t) == VAR_DECL
|
||||
|
@ -89,7 +89,7 @@ is_gimple_variable (tree t)
|
|||
|
||||
/* Return true if T is a GIMPLE identifier (something with an address). */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_gimple_id (tree t)
|
||||
{
|
||||
return (is_gimple_variable (t)
|
||||
|
@ -102,7 +102,7 @@ is_gimple_id (tree t)
|
|||
|
||||
/* Return true if OP, an SSA name or a DECL is a virtual operand. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
virtual_operand_p (tree op)
|
||||
{
|
||||
if (TREE_CODE (op) == SSA_NAME)
|
||||
|
@ -116,7 +116,7 @@ virtual_operand_p (tree op)
|
|||
|
||||
/* Return true if T is something whose address can be taken. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_gimple_addressable (tree t)
|
||||
{
|
||||
return (is_gimple_id (t) || handled_component_p (t)
|
||||
|
@ -126,7 +126,7 @@ is_gimple_addressable (tree t)
|
|||
|
||||
/* Return true if T is a valid gimple constant. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_gimple_constant (const_tree t)
|
||||
{
|
||||
switch (TREE_CODE (t))
|
||||
|
@ -148,7 +148,7 @@ is_gimple_constant (const_tree t)
|
|||
/* A wrapper around extract_ops_from_tree with 3 ops, for callers which
|
||||
expect to see only a maximum of two operands. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
extract_ops_from_tree (tree expr, enum tree_code *code, tree *op0,
|
||||
tree *op1)
|
||||
{
|
||||
|
@ -160,7 +160,7 @@ extract_ops_from_tree (tree expr, enum tree_code *code, tree *op0,
|
|||
/* Given a valid GIMPLE_CALL function address return the FUNCTION_DECL
|
||||
associated with the callee if known. Otherwise return NULL_TREE. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
gimple_call_addr_fndecl (const_tree fn)
|
||||
{
|
||||
if (fn && TREE_CODE (fn) == ADDR_EXPR)
|
||||
|
|
|
@ -95,7 +95,7 @@ extern void update_modified_stmts (gimple_seq);
|
|||
|
||||
/* Return a new iterator pointing to GIMPLE_SEQ's first statement. */
|
||||
|
||||
static inline gimple_stmt_iterator
|
||||
inline gimple_stmt_iterator
|
||||
gsi_start (gimple_seq &seq)
|
||||
{
|
||||
gimple_stmt_iterator i;
|
||||
|
@ -107,7 +107,7 @@ gsi_start (gimple_seq &seq)
|
|||
return i;
|
||||
}
|
||||
|
||||
static inline gimple_stmt_iterator
|
||||
inline gimple_stmt_iterator
|
||||
gsi_none (void)
|
||||
{
|
||||
gimple_stmt_iterator i;
|
||||
|
@ -119,7 +119,7 @@ gsi_none (void)
|
|||
|
||||
/* Return a new iterator pointing to the first statement in basic block BB. */
|
||||
|
||||
static inline gimple_stmt_iterator
|
||||
inline gimple_stmt_iterator
|
||||
gsi_start_bb (basic_block bb)
|
||||
{
|
||||
gimple_stmt_iterator i;
|
||||
|
@ -137,7 +137,7 @@ gimple_stmt_iterator gsi_start_edge (edge e);
|
|||
|
||||
/* Return a new iterator initially pointing to GIMPLE_SEQ's last statement. */
|
||||
|
||||
static inline gimple_stmt_iterator
|
||||
inline gimple_stmt_iterator
|
||||
gsi_last (gimple_seq &seq)
|
||||
{
|
||||
gimple_stmt_iterator i;
|
||||
|
@ -151,7 +151,7 @@ gsi_last (gimple_seq &seq)
|
|||
|
||||
/* Return a new iterator pointing to the last statement in basic block BB. */
|
||||
|
||||
static inline gimple_stmt_iterator
|
||||
inline gimple_stmt_iterator
|
||||
gsi_last_bb (basic_block bb)
|
||||
{
|
||||
gimple_stmt_iterator i;
|
||||
|
@ -167,7 +167,7 @@ gsi_last_bb (basic_block bb)
|
|||
|
||||
/* Return true if I is at the end of its sequence. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
gsi_end_p (gimple_stmt_iterator i)
|
||||
{
|
||||
return i.ptr == NULL;
|
||||
|
@ -175,7 +175,7 @@ gsi_end_p (gimple_stmt_iterator i)
|
|||
|
||||
/* Return true if I is one statement before the end of its sequence. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
gsi_one_before_end_p (gimple_stmt_iterator i)
|
||||
{
|
||||
return i.ptr != NULL && i.ptr->next == NULL;
|
||||
|
@ -183,7 +183,7 @@ gsi_one_before_end_p (gimple_stmt_iterator i)
|
|||
|
||||
/* Advance the iterator to the next gimple statement. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
gsi_next (gimple_stmt_iterator *i)
|
||||
{
|
||||
i->ptr = i->ptr->next;
|
||||
|
@ -191,7 +191,7 @@ gsi_next (gimple_stmt_iterator *i)
|
|||
|
||||
/* Advance the iterator to the previous gimple statement. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
gsi_prev (gimple_stmt_iterator *i)
|
||||
{
|
||||
gimple *prev = i->ptr->prev;
|
||||
|
@ -203,7 +203,7 @@ gsi_prev (gimple_stmt_iterator *i)
|
|||
|
||||
/* Return the current stmt. */
|
||||
|
||||
static inline gimple *
|
||||
inline gimple *
|
||||
gsi_stmt (gimple_stmt_iterator i)
|
||||
{
|
||||
return i.ptr;
|
||||
|
@ -212,7 +212,7 @@ gsi_stmt (gimple_stmt_iterator i)
|
|||
/* Return a block statement iterator that points to the first
|
||||
non-label statement in block BB. */
|
||||
|
||||
static inline gimple_stmt_iterator
|
||||
inline gimple_stmt_iterator
|
||||
gsi_after_labels (basic_block bb)
|
||||
{
|
||||
gimple_stmt_iterator gsi = gsi_start_bb (bb);
|
||||
|
@ -231,7 +231,7 @@ gsi_after_labels (basic_block bb)
|
|||
/* Return a statement iterator that points to the first
|
||||
non-label statement in sequence SEQ. */
|
||||
|
||||
static inline gimple_stmt_iterator
|
||||
inline gimple_stmt_iterator
|
||||
gsi_after_labels (gimple_seq &seq)
|
||||
{
|
||||
gimple_stmt_iterator gsi = gsi_start (seq);
|
||||
|
@ -249,7 +249,7 @@ gsi_after_labels (gimple_seq &seq)
|
|||
|
||||
/* Advance the iterator to the next non-debug gimple statement. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
gsi_next_nondebug (gimple_stmt_iterator *i)
|
||||
{
|
||||
do
|
||||
|
@ -261,7 +261,7 @@ gsi_next_nondebug (gimple_stmt_iterator *i)
|
|||
|
||||
/* Advance the iterator to the previous non-debug gimple statement. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
gsi_prev_nondebug (gimple_stmt_iterator *i)
|
||||
{
|
||||
do
|
||||
|
@ -274,7 +274,7 @@ gsi_prev_nondebug (gimple_stmt_iterator *i)
|
|||
/* Return a new iterator pointing to the first non-debug statement in
|
||||
SEQ. */
|
||||
|
||||
static inline gimple_stmt_iterator
|
||||
inline gimple_stmt_iterator
|
||||
gsi_start_nondebug (gimple_seq seq)
|
||||
{
|
||||
gimple_stmt_iterator gsi = gsi_start (seq);
|
||||
|
@ -287,7 +287,7 @@ gsi_start_nondebug (gimple_seq seq)
|
|||
/* Return a new iterator pointing to the first non-debug statement in
|
||||
basic block BB. */
|
||||
|
||||
static inline gimple_stmt_iterator
|
||||
inline gimple_stmt_iterator
|
||||
gsi_start_nondebug_bb (basic_block bb)
|
||||
{
|
||||
gimple_stmt_iterator i = gsi_start_bb (bb);
|
||||
|
@ -301,7 +301,7 @@ gsi_start_nondebug_bb (basic_block bb)
|
|||
/* Return a new iterator pointing to the first non-debug non-label statement in
|
||||
basic block BB. */
|
||||
|
||||
static inline gimple_stmt_iterator
|
||||
inline gimple_stmt_iterator
|
||||
gsi_start_nondebug_after_labels_bb (basic_block bb)
|
||||
{
|
||||
gimple_stmt_iterator i = gsi_after_labels (bb);
|
||||
|
@ -315,7 +315,7 @@ gsi_start_nondebug_after_labels_bb (basic_block bb)
|
|||
/* Return a new iterator pointing to the last non-debug statement in
|
||||
basic block BB. */
|
||||
|
||||
static inline gimple_stmt_iterator
|
||||
inline gimple_stmt_iterator
|
||||
gsi_last_nondebug_bb (basic_block bb)
|
||||
{
|
||||
gimple_stmt_iterator i = gsi_last_bb (bb);
|
||||
|
@ -329,7 +329,7 @@ gsi_last_nondebug_bb (basic_block bb)
|
|||
/* Return true if I is followed only by debug statements in its
|
||||
sequence. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
gsi_one_nondebug_before_end_p (gimple_stmt_iterator i)
|
||||
{
|
||||
if (gsi_one_before_end_p (i))
|
||||
|
@ -343,7 +343,7 @@ gsi_one_nondebug_before_end_p (gimple_stmt_iterator i)
|
|||
/* Advance I statement iterator to the next non-virtual GIMPLE_PHI
|
||||
statement. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
gsi_next_nonvirtual_phi (gphi_iterator *i)
|
||||
{
|
||||
do
|
||||
|
@ -356,7 +356,7 @@ gsi_next_nonvirtual_phi (gphi_iterator *i)
|
|||
/* Return a new iterator pointing to the first non-virtual phi statement in
|
||||
basic block BB. */
|
||||
|
||||
static inline gphi_iterator
|
||||
inline gphi_iterator
|
||||
gsi_start_nonvirtual_phis (basic_block bb)
|
||||
{
|
||||
gphi_iterator i = gsi_start_phis (bb);
|
||||
|
@ -369,7 +369,7 @@ gsi_start_nonvirtual_phis (basic_block bb)
|
|||
|
||||
/* Return the basic block associated with this iterator. */
|
||||
|
||||
static inline basic_block
|
||||
inline basic_block
|
||||
gsi_bb (gimple_stmt_iterator i)
|
||||
{
|
||||
return i.bb;
|
||||
|
@ -377,7 +377,7 @@ gsi_bb (gimple_stmt_iterator i)
|
|||
|
||||
/* Return the sequence associated with this iterator. */
|
||||
|
||||
static inline gimple_seq
|
||||
inline gimple_seq
|
||||
gsi_seq (gimple_stmt_iterator i)
|
||||
{
|
||||
return *i.seq;
|
||||
|
@ -385,7 +385,7 @@ gsi_seq (gimple_stmt_iterator i)
|
|||
|
||||
/* Determine whether SEQ is a nondebug singleton. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
gimple_seq_nondebug_singleton_p (gimple_seq seq)
|
||||
{
|
||||
gimple_stmt_iterator gsi;
|
||||
|
|
|
@ -25,7 +25,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
|
||||
/* Return the predictor of GIMPLE_PREDICT statement GS. */
|
||||
|
||||
static inline enum br_predictor
|
||||
inline enum br_predictor
|
||||
gimple_predict_predictor (const gimple *gs)
|
||||
{
|
||||
GIMPLE_CHECK (gs, GIMPLE_PREDICT);
|
||||
|
@ -35,7 +35,7 @@ gimple_predict_predictor (const gimple *gs)
|
|||
|
||||
/* Set the predictor of GIMPLE_PREDICT statement GS to PREDICT. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
gimple_predict_set_predictor (gimple *gs, enum br_predictor predictor)
|
||||
{
|
||||
GIMPLE_CHECK (gs, GIMPLE_PREDICT);
|
||||
|
@ -46,7 +46,7 @@ gimple_predict_set_predictor (gimple *gs, enum br_predictor predictor)
|
|||
|
||||
/* Return the outcome of GIMPLE_PREDICT statement GS. */
|
||||
|
||||
static inline enum prediction
|
||||
inline enum prediction
|
||||
gimple_predict_outcome (const gimple *gs)
|
||||
{
|
||||
GIMPLE_CHECK (gs, GIMPLE_PREDICT);
|
||||
|
@ -56,7 +56,7 @@ gimple_predict_outcome (const gimple *gs)
|
|||
|
||||
/* Set the outcome of GIMPLE_PREDICT statement GS to OUTCOME. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
gimple_predict_set_outcome (gimple *gs, enum prediction outcome)
|
||||
{
|
||||
GIMPLE_CHECK (gs, GIMPLE_PREDICT);
|
||||
|
@ -82,7 +82,7 @@ gimple_build_predict (enum br_predictor predictor, enum prediction outcome)
|
|||
|
||||
/* Return true if GS is a GIMPLE_PREDICT statement. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_gimple_predict (const gimple *gs)
|
||||
{
|
||||
return gimple_code (gs) == GIMPLE_PREDICT;
|
||||
|
|
|
@ -44,7 +44,7 @@ bool fold_range (vrange &r, gimple *s, unsigned num_elements, vrange **vector);
|
|||
// Return the type of range which statement S calculates. If the type is
|
||||
// unsupported or no type can be determined, return NULL_TREE.
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
gimple_range_type (const gimple *s)
|
||||
{
|
||||
tree lhs = gimple_get_lhs (s);
|
||||
|
@ -73,7 +73,7 @@ gimple_range_type (const gimple *s)
|
|||
|
||||
// Return EXP if it is an SSA_NAME with a type supported by gimple ranges.
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
gimple_range_ssa_p (tree exp)
|
||||
{
|
||||
if (exp && TREE_CODE (exp) == SSA_NAME &&
|
||||
|
@ -86,7 +86,7 @@ gimple_range_ssa_p (tree exp)
|
|||
|
||||
// Return true if TYPE1 and TYPE2 are compatible range types.
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
range_compatible_p (tree type1, tree type2)
|
||||
{
|
||||
// types_compatible_p requires conversion in both directions to be useless.
|
||||
|
|
|
@ -119,14 +119,14 @@ struct GTY(()) gimple_df {
|
|||
gimple_in_ssa_p is queried by gimplifier in various early stages before SSA
|
||||
infrastructure is initialized. Check for presence of the datastructures
|
||||
at first place. */
|
||||
static inline bool
|
||||
inline bool
|
||||
gimple_in_ssa_p (const struct function *fun)
|
||||
{
|
||||
return fun && fun->gimple_df && fun->gimple_df->in_ssa_p;
|
||||
}
|
||||
|
||||
/* Artificial variable used for the virtual operand FUD chain. */
|
||||
static inline tree
|
||||
inline tree
|
||||
gimple_vop (const struct function *fun)
|
||||
{
|
||||
gcc_checking_assert (fun && fun->gimple_df);
|
||||
|
@ -135,7 +135,7 @@ gimple_vop (const struct function *fun)
|
|||
|
||||
/* Return the set of VUSE operand for statement G. */
|
||||
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
gimple_vuse_op (const gimple *g)
|
||||
{
|
||||
struct use_optype_d *ops;
|
||||
|
@ -152,7 +152,7 @@ gimple_vuse_op (const gimple *g)
|
|||
|
||||
/* Return the set of VDEF operand for statement G. */
|
||||
|
||||
static inline def_operand_p
|
||||
inline def_operand_p
|
||||
gimple_vdef_op (gimple *g)
|
||||
{
|
||||
gimple_statement_with_memory_ops *mem_ops_stmt =
|
||||
|
@ -166,7 +166,7 @@ gimple_vdef_op (gimple *g)
|
|||
|
||||
/* Mark statement S as modified, and update it. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
update_stmt (gimple *s)
|
||||
{
|
||||
if (gimple_has_ops (s))
|
||||
|
@ -178,7 +178,7 @@ update_stmt (gimple *s)
|
|||
|
||||
/* Update statement S if it has been optimized. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
update_stmt_if_modified (gimple *s)
|
||||
{
|
||||
if (gimple_modified_p (s))
|
||||
|
@ -187,7 +187,7 @@ update_stmt_if_modified (gimple *s)
|
|||
|
||||
/* Mark statement S as modified, and update it. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
update_stmt_fn (struct function *fn, gimple *s)
|
||||
{
|
||||
if (gimple_has_ops (s))
|
||||
|
|
1026
gcc/gimple.h
1026
gcc/gimple.h
File diff suppressed because it is too large
Load diff
|
@ -32,7 +32,7 @@ typedef struct scop *scop_p;
|
|||
|
||||
typedef unsigned graphite_dim_t;
|
||||
|
||||
static inline graphite_dim_t scop_nb_params (scop_p);
|
||||
inline graphite_dim_t scop_nb_params (scop_p);
|
||||
|
||||
/* A data reference can write or read some memory or we
|
||||
just know it may write some memory. */
|
||||
|
@ -189,7 +189,7 @@ void new_poly_dr (poly_bb_p, gimple *, enum poly_dr_type,
|
|||
void debug_pdr (poly_dr_p);
|
||||
void print_pdr (FILE *, poly_dr_p);
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
pdr_read_p (poly_dr_p pdr)
|
||||
{
|
||||
return PDR_TYPE (pdr) == PDR_READ;
|
||||
|
@ -197,7 +197,7 @@ pdr_read_p (poly_dr_p pdr)
|
|||
|
||||
/* Returns true when PDR is a "write". */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
pdr_write_p (poly_dr_p pdr)
|
||||
{
|
||||
return PDR_TYPE (pdr) == PDR_WRITE;
|
||||
|
@ -205,7 +205,7 @@ pdr_write_p (poly_dr_p pdr)
|
|||
|
||||
/* Returns true when PDR is a "may write". */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
pdr_may_write_p (poly_dr_p pdr)
|
||||
{
|
||||
return PDR_TYPE (pdr) == PDR_MAY_WRITE;
|
||||
|
@ -295,13 +295,13 @@ extern void debug_schedule_ast (__isl_keep isl_schedule *, scop_p);
|
|||
|
||||
/* The basic block of the PBB. */
|
||||
|
||||
static inline basic_block
|
||||
inline basic_block
|
||||
pbb_bb (poly_bb_p pbb)
|
||||
{
|
||||
return GBB_BB (PBB_BLACK_BOX (pbb));
|
||||
}
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
pbb_index (poly_bb_p pbb)
|
||||
{
|
||||
return pbb_bb (pbb)->index;
|
||||
|
@ -309,7 +309,7 @@ pbb_index (poly_bb_p pbb)
|
|||
|
||||
/* The loop of the PBB. */
|
||||
|
||||
static inline loop_p
|
||||
inline loop_p
|
||||
pbb_loop (poly_bb_p pbb)
|
||||
{
|
||||
return gbb_loop (PBB_BLACK_BOX (pbb));
|
||||
|
@ -317,7 +317,7 @@ pbb_loop (poly_bb_p pbb)
|
|||
|
||||
/* The scop that contains the PDR. */
|
||||
|
||||
static inline scop_p
|
||||
inline scop_p
|
||||
pdr_scop (poly_dr_p pdr)
|
||||
{
|
||||
return PBB_SCOP (PDR_PBB (pdr));
|
||||
|
@ -325,7 +325,7 @@ pdr_scop (poly_dr_p pdr)
|
|||
|
||||
/* Set black box of PBB to BLACKBOX. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
pbb_set_black_box (poly_bb_p pbb, gimple_poly_bb_p black_box)
|
||||
{
|
||||
pbb->black_box = black_box;
|
||||
|
@ -412,7 +412,7 @@ extern bool apply_poly_transforms (scop_p);
|
|||
|
||||
/* Set the region of SCOP to REGION. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
scop_set_region (scop_p scop, sese_info_p region)
|
||||
{
|
||||
scop->scop_info = region;
|
||||
|
@ -420,7 +420,7 @@ scop_set_region (scop_p scop, sese_info_p region)
|
|||
|
||||
/* Returns the number of parameters for SCOP. */
|
||||
|
||||
static inline graphite_dim_t
|
||||
inline graphite_dim_t
|
||||
scop_nb_params (scop_p scop)
|
||||
{
|
||||
return scop->nb_params;
|
||||
|
@ -428,7 +428,7 @@ scop_nb_params (scop_p scop)
|
|||
|
||||
/* Set the number of params of SCOP to NB_PARAMS. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
scop_set_nb_params (scop_p scop, graphite_dim_t nb_params)
|
||||
{
|
||||
scop->nb_params = nb_params;
|
||||
|
|
|
@ -173,19 +173,19 @@ struct hard_reg_set_container
|
|||
#define CLEAR_HARD_REG_SET(TO) ((TO) = HARD_CONST (0))
|
||||
#define SET_HARD_REG_SET(TO) ((TO) = ~ HARD_CONST (0))
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
hard_reg_set_subset_p (const_hard_reg_set x, const_hard_reg_set y)
|
||||
{
|
||||
return (x & ~y) == HARD_CONST (0);
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
hard_reg_set_intersect_p (const_hard_reg_set x, const_hard_reg_set y)
|
||||
{
|
||||
return (x & y) != HARD_CONST (0);
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
hard_reg_set_empty_p (const_hard_reg_set x)
|
||||
{
|
||||
return x == HARD_CONST (0);
|
||||
|
@ -228,7 +228,7 @@ SET_HARD_REG_SET (HARD_REG_SET &set)
|
|||
set.elts[i] = -1;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
hard_reg_set_subset_p (const_hard_reg_set x, const_hard_reg_set y)
|
||||
{
|
||||
HARD_REG_ELT_TYPE bad = 0;
|
||||
|
@ -237,7 +237,7 @@ hard_reg_set_subset_p (const_hard_reg_set x, const_hard_reg_set y)
|
|||
return bad == 0;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
hard_reg_set_intersect_p (const_hard_reg_set x, const_hard_reg_set y)
|
||||
{
|
||||
HARD_REG_ELT_TYPE good = 0;
|
||||
|
@ -246,7 +246,7 @@ hard_reg_set_intersect_p (const_hard_reg_set x, const_hard_reg_set y)
|
|||
return good != 0;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
hard_reg_set_empty_p (const_hard_reg_set x)
|
||||
{
|
||||
HARD_REG_ELT_TYPE bad = 0;
|
||||
|
@ -279,7 +279,7 @@ struct hard_reg_set_iterator
|
|||
|
||||
/* The implementation of the iterator functions is fully analogous to
|
||||
the bitmap iterators. */
|
||||
static inline void
|
||||
inline void
|
||||
hard_reg_set_iter_init (hard_reg_set_iterator *iter, const_hard_reg_set set,
|
||||
unsigned min, unsigned *regno)
|
||||
{
|
||||
|
@ -302,7 +302,7 @@ hard_reg_set_iter_init (hard_reg_set_iterator *iter, const_hard_reg_set set,
|
|||
*regno = min;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
hard_reg_set_iter_set (hard_reg_set_iterator *iter, unsigned *regno)
|
||||
{
|
||||
while (1)
|
||||
|
@ -337,7 +337,7 @@ hard_reg_set_iter_set (hard_reg_set_iterator *iter, unsigned *regno)
|
|||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
hard_reg_set_iter_next (hard_reg_set_iterator *iter, unsigned *regno)
|
||||
{
|
||||
iter->bits >>= 1;
|
||||
|
|
|
@ -315,21 +315,21 @@ private:
|
|||
/* ggc marking routines. */
|
||||
|
||||
template<typename K, typename V, typename H>
|
||||
static inline void
|
||||
inline void
|
||||
gt_ggc_mx (hash_map<K, V, H> *h)
|
||||
{
|
||||
gt_ggc_mx (&h->m_table);
|
||||
}
|
||||
|
||||
template<typename K, typename V, typename H>
|
||||
static inline void
|
||||
inline void
|
||||
gt_pch_nx (hash_map<K, V, H> *h)
|
||||
{
|
||||
gt_pch_nx (&h->m_table);
|
||||
}
|
||||
|
||||
template<typename K, typename V, typename H>
|
||||
static inline void
|
||||
inline void
|
||||
gt_cleare_cache (hash_map<K, V, H> *h)
|
||||
{
|
||||
if (h)
|
||||
|
@ -337,7 +337,7 @@ gt_cleare_cache (hash_map<K, V, H> *h)
|
|||
}
|
||||
|
||||
template<typename K, typename V, typename H>
|
||||
static inline void
|
||||
inline void
|
||||
gt_pch_nx (hash_map<K, V, H> *h, gt_pointer_operator op, void *cookie)
|
||||
{
|
||||
op (&h->m_table.m_entries, NULL, cookie);
|
||||
|
|
|
@ -194,21 +194,21 @@ debug_helper (hash_set<T> &ref)
|
|||
/* ggc marking routines. */
|
||||
|
||||
template<typename K, typename H>
|
||||
static inline void
|
||||
inline void
|
||||
gt_ggc_mx (hash_set<K, false, H> *h)
|
||||
{
|
||||
gt_ggc_mx (&h->m_table);
|
||||
}
|
||||
|
||||
template<typename K, typename H>
|
||||
static inline void
|
||||
inline void
|
||||
gt_pch_nx (hash_set<K, false, H> *h)
|
||||
{
|
||||
gt_pch_nx (&h->m_table);
|
||||
}
|
||||
|
||||
template<typename K, typename H>
|
||||
static inline void
|
||||
inline void
|
||||
gt_pch_nx (hash_set<K, false, H> *h, gt_pointer_operator op, void *cookie)
|
||||
{
|
||||
op (&h->m_table.m_entries, NULL, cookie);
|
||||
|
|
|
@ -1236,7 +1236,7 @@ hash_table<Descriptor, Lazy, Allocator>::iterator::operator ++ ()
|
|||
/* ggc walking routines. */
|
||||
|
||||
template<typename E>
|
||||
static inline void
|
||||
inline void
|
||||
gt_ggc_mx (hash_table<E> *h)
|
||||
{
|
||||
typedef hash_table<E> table;
|
||||
|
@ -1257,7 +1257,7 @@ gt_ggc_mx (hash_table<E> *h)
|
|||
}
|
||||
|
||||
template<typename D>
|
||||
static inline void
|
||||
inline void
|
||||
hashtab_entry_note_pointers (void *obj, void *h, gt_pointer_operator op,
|
||||
void *cookie)
|
||||
{
|
||||
|
@ -1293,7 +1293,7 @@ gt_pch_nx (hash_table<D> *h)
|
|||
}
|
||||
|
||||
template<typename D>
|
||||
static inline void
|
||||
inline void
|
||||
gt_pch_nx (hash_table<D> *h, gt_pointer_operator op, void *cookie)
|
||||
{
|
||||
op (&h->m_entries, NULL, cookie);
|
||||
|
|
26
gcc/hwint.h
26
gcc/hwint.h
|
@ -138,7 +138,7 @@ typedef HOST_WIDE_INT __gcc_host_wide_int__;
|
|||
|
||||
/* Return X with all but the lowest bit masked off. */
|
||||
|
||||
static inline unsigned HOST_WIDE_INT
|
||||
inline unsigned HOST_WIDE_INT
|
||||
least_bit_hwi (unsigned HOST_WIDE_INT x)
|
||||
{
|
||||
return (x & -x);
|
||||
|
@ -146,7 +146,7 @@ least_bit_hwi (unsigned HOST_WIDE_INT x)
|
|||
|
||||
/* True if X is zero or a power of two. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
pow2_or_zerop (unsigned HOST_WIDE_INT x)
|
||||
{
|
||||
return least_bit_hwi (x) == x;
|
||||
|
@ -154,7 +154,7 @@ pow2_or_zerop (unsigned HOST_WIDE_INT x)
|
|||
|
||||
/* True if X is a power of two. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
pow2p_hwi (unsigned HOST_WIDE_INT x)
|
||||
{
|
||||
return x && pow2_or_zerop (x);
|
||||
|
@ -181,7 +181,7 @@ extern int ceil_log2 (unsigned HOST_WIDE_INT);
|
|||
#else /* GCC_VERSION >= 3004 */
|
||||
|
||||
/* For convenience, define 0 -> word_size. */
|
||||
static inline int
|
||||
inline int
|
||||
clz_hwi (unsigned HOST_WIDE_INT x)
|
||||
{
|
||||
if (x == 0)
|
||||
|
@ -195,7 +195,7 @@ clz_hwi (unsigned HOST_WIDE_INT x)
|
|||
# endif
|
||||
}
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
ctz_hwi (unsigned HOST_WIDE_INT x)
|
||||
{
|
||||
if (x == 0)
|
||||
|
@ -209,7 +209,7 @@ ctz_hwi (unsigned HOST_WIDE_INT x)
|
|||
# endif
|
||||
}
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
ffs_hwi (unsigned HOST_WIDE_INT x)
|
||||
{
|
||||
# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
|
||||
|
@ -221,7 +221,7 @@ ffs_hwi (unsigned HOST_WIDE_INT x)
|
|||
# endif
|
||||
}
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
popcount_hwi (unsigned HOST_WIDE_INT x)
|
||||
{
|
||||
# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
|
||||
|
@ -233,19 +233,19 @@ popcount_hwi (unsigned HOST_WIDE_INT x)
|
|||
# endif
|
||||
}
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
floor_log2 (unsigned HOST_WIDE_INT x)
|
||||
{
|
||||
return HOST_BITS_PER_WIDE_INT - 1 - clz_hwi (x);
|
||||
}
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
ceil_log2 (unsigned HOST_WIDE_INT x)
|
||||
{
|
||||
return x == 0 ? 0 : floor_log2 (x - 1) + 1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
exact_log2 (unsigned HOST_WIDE_INT x)
|
||||
{
|
||||
return pow2p_hwi (x) ? ctz_hwi (x) : -1;
|
||||
|
@ -266,7 +266,7 @@ extern HOST_WIDE_INT least_common_multiple (HOST_WIDE_INT, HOST_WIDE_INT);
|
|||
|
||||
/* Like ctz_hwi, except 0 when x == 0. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
ctz_or_zero (unsigned HOST_WIDE_INT x)
|
||||
{
|
||||
return ffs_hwi (x) - 1;
|
||||
|
@ -274,7 +274,7 @@ ctz_or_zero (unsigned HOST_WIDE_INT x)
|
|||
|
||||
/* Sign extend SRC starting from PREC. */
|
||||
|
||||
static inline HOST_WIDE_INT
|
||||
inline HOST_WIDE_INT
|
||||
sext_hwi (HOST_WIDE_INT src, unsigned int prec)
|
||||
{
|
||||
if (prec == HOST_BITS_PER_WIDE_INT)
|
||||
|
@ -304,7 +304,7 @@ sext_hwi (HOST_WIDE_INT src, unsigned int prec)
|
|||
}
|
||||
|
||||
/* Zero extend SRC starting from PREC. */
|
||||
static inline unsigned HOST_WIDE_INT
|
||||
inline unsigned HOST_WIDE_INT
|
||||
zext_hwi (unsigned HOST_WIDE_INT src, unsigned int prec)
|
||||
{
|
||||
if (prec == HOST_BITS_PER_WIDE_INT)
|
||||
|
|
12
gcc/input.h
12
gcc/input.h
|
@ -195,7 +195,7 @@ extern int get_discriminator_from_loc (location_t);
|
|||
that is part of a macro replacement-list defined in a system
|
||||
header, but expanded in a non-system file. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
in_system_header_at (location_t loc)
|
||||
{
|
||||
return linemap_location_in_system_header_p (line_table, loc);
|
||||
|
@ -204,7 +204,7 @@ in_system_header_at (location_t loc)
|
|||
/* Return true if LOCATION is the locus of a token that
|
||||
comes from a macro expansion, false otherwise. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
from_macro_expansion_at (location_t loc)
|
||||
{
|
||||
return linemap_location_from_macro_expansion_p (line_table, loc);
|
||||
|
@ -214,13 +214,13 @@ from_macro_expansion_at (location_t loc)
|
|||
a macro definition, false otherwise. This differs from from_macro_expansion_at
|
||||
in its treatment of macro arguments, for which this returns false. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
from_macro_definition_at (location_t loc)
|
||||
{
|
||||
return linemap_location_from_macro_definition_p (line_table, loc);
|
||||
}
|
||||
|
||||
static inline location_t
|
||||
inline location_t
|
||||
get_pure_location (location_t loc)
|
||||
{
|
||||
return get_pure_location (line_table, loc);
|
||||
|
@ -228,7 +228,7 @@ get_pure_location (location_t loc)
|
|||
|
||||
/* Get the start of any range encoded within location LOC. */
|
||||
|
||||
static inline location_t
|
||||
inline location_t
|
||||
get_start (location_t loc)
|
||||
{
|
||||
return get_range_from_loc (line_table, loc).m_start;
|
||||
|
@ -236,7 +236,7 @@ get_start (location_t loc)
|
|||
|
||||
/* Get the endpoint of any range encoded within location LOC. */
|
||||
|
||||
static inline location_t
|
||||
inline location_t
|
||||
get_finish (location_t loc)
|
||||
{
|
||||
return get_range_from_loc (line_table, loc).m_finish;
|
||||
|
|
|
@ -37,7 +37,7 @@ extern int insn_current_address;
|
|||
#define INSN_ADDRESSES_SET_P() (insn_addresses_.exists ())
|
||||
#define INSN_ADDRESSES_SIZE() (insn_addresses_.length ())
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
insn_addresses_new (rtx_insn *insn, int insn_addr)
|
||||
{
|
||||
unsigned insn_uid = INSN_UID ((insn));
|
||||
|
|
|
@ -105,7 +105,7 @@ extern void init_internal_fns ();
|
|||
|
||||
extern const char *const internal_fn_name_array[];
|
||||
|
||||
static inline const char *
|
||||
inline const char *
|
||||
internal_fn_name (enum internal_fn fn)
|
||||
{
|
||||
return internal_fn_name_array[(int) fn];
|
||||
|
@ -117,7 +117,7 @@ extern internal_fn lookup_internal_fn (const char *);
|
|||
|
||||
extern const int internal_fn_flags_array[];
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
internal_fn_flags (enum internal_fn fn)
|
||||
{
|
||||
return internal_fn_flags_array[(int) fn];
|
||||
|
@ -127,7 +127,7 @@ internal_fn_flags (enum internal_fn fn)
|
|||
|
||||
extern GTY(()) const_tree internal_fn_fnspec_array[IFN_LAST + 1];
|
||||
|
||||
static inline const_tree
|
||||
inline const_tree
|
||||
internal_fn_fnspec (enum internal_fn fn)
|
||||
{
|
||||
return internal_fn_fnspec_array[(int) fn];
|
||||
|
|
|
@ -435,7 +435,7 @@ void ipa_remove_from_growth_caches (struct cgraph_edge *edge);
|
|||
|
||||
/* Return true if EDGE is a cross module call. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
cross_module_call_p (struct cgraph_edge *edge)
|
||||
{
|
||||
/* Here we do not want to walk to alias target becuase ICF may create
|
||||
|
|
|
@ -39,7 +39,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
/* Logs a MESSAGE to dump_file if exists and returns false. FUNC is name
|
||||
of function and LINE is location in the source file. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
return_false_with_message_1 (const char *message, const char *filename,
|
||||
const char *func, unsigned int line)
|
||||
{
|
||||
|
@ -59,7 +59,7 @@ return_false_with_message_1 (const char *message, const char *filename,
|
|||
/* Logs return value if RESULT is false. FUNC is name of function and LINE
|
||||
is location in the source file. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
return_with_result (bool result, const char *filename,
|
||||
const char *func, unsigned int line)
|
||||
{
|
||||
|
@ -77,7 +77,7 @@ return_with_result (bool result, const char *filename,
|
|||
/* Verbose logging function logging statements S1 and S2 of a CODE.
|
||||
FUNC is name of function and LINE is location in the source file. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
return_different_stmts_1 (gimple *s1, gimple *s2, const char *code,
|
||||
const char *func, unsigned int line)
|
||||
{
|
||||
|
|
|
@ -69,7 +69,7 @@ extern function_summary <tree *> *ipa_saved_clone_sources;
|
|||
|
||||
/* Return estimated size of the inline sequence of EDGE. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
estimate_edge_size (struct cgraph_edge *edge)
|
||||
{
|
||||
edge_growth_cache_entry *entry;
|
||||
|
@ -82,7 +82,7 @@ estimate_edge_size (struct cgraph_edge *edge)
|
|||
|
||||
/* Return lower bound on estimated callee growth after inlining EDGE. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
estimate_min_edge_growth (struct cgraph_edge *edge)
|
||||
{
|
||||
ipa_call_summary *s = ipa_call_summaries->get (edge);
|
||||
|
@ -92,7 +92,7 @@ estimate_min_edge_growth (struct cgraph_edge *edge)
|
|||
|
||||
/* Return estimated callee growth after inlining EDGE. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
estimate_edge_growth (struct cgraph_edge *edge)
|
||||
{
|
||||
ipa_call_summary *s = ipa_call_summaries->get (edge);
|
||||
|
@ -103,7 +103,7 @@ estimate_edge_growth (struct cgraph_edge *edge)
|
|||
/* Return estimated callee runtime increase after inlining
|
||||
EDGE. */
|
||||
|
||||
static inline sreal
|
||||
inline sreal
|
||||
estimate_edge_time (struct cgraph_edge *edge, sreal *nonspec_time = NULL)
|
||||
{
|
||||
edge_growth_cache_entry *entry;
|
||||
|
@ -120,7 +120,7 @@ estimate_edge_time (struct cgraph_edge *edge, sreal *nonspec_time = NULL)
|
|||
/* Return estimated callee runtime increase after inlining
|
||||
EDGE. */
|
||||
|
||||
static inline ipa_hints
|
||||
inline ipa_hints
|
||||
estimate_edge_hints (struct cgraph_edge *edge)
|
||||
{
|
||||
edge_growth_cache_entry *entry;
|
||||
|
|
|
@ -108,7 +108,7 @@ static const int implicit_retslot_eaf_flags
|
|||
MODREF_FLAGS are flags determined by analysis of function body while
|
||||
FLAGS are flags known otherwise (i.e. by fnspec, pure/const attributes
|
||||
etc.) */
|
||||
static inline int
|
||||
inline int
|
||||
interposable_eaf_flags (int modref_flags, int flags)
|
||||
{
|
||||
/* If parameter was previously unused, we know it is only read
|
||||
|
|
|
@ -348,14 +348,14 @@ struct GTY (()) ipa_jump_func
|
|||
|
||||
/* Return the constant stored in a constant jump functin JFUNC. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
ipa_get_jf_constant (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_CONST);
|
||||
return jfunc->value.constant.value;
|
||||
}
|
||||
|
||||
static inline struct ipa_cst_ref_desc *
|
||||
inline struct ipa_cst_ref_desc *
|
||||
ipa_get_jf_constant_rdesc (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_CONST);
|
||||
|
@ -364,7 +364,7 @@ ipa_get_jf_constant_rdesc (struct ipa_jump_func *jfunc)
|
|||
|
||||
/* Return the operand of a pass through jmp function JFUNC. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
ipa_get_jf_pass_through_operand (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_PASS_THROUGH);
|
||||
|
@ -374,7 +374,7 @@ ipa_get_jf_pass_through_operand (struct ipa_jump_func *jfunc)
|
|||
/* Return the number of the caller's formal parameter that a pass through jump
|
||||
function JFUNC refers to. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
ipa_get_jf_pass_through_formal_id (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_PASS_THROUGH);
|
||||
|
@ -383,7 +383,7 @@ ipa_get_jf_pass_through_formal_id (struct ipa_jump_func *jfunc)
|
|||
|
||||
/* Return operation of a pass through jump function JFUNC. */
|
||||
|
||||
static inline enum tree_code
|
||||
inline enum tree_code
|
||||
ipa_get_jf_pass_through_operation (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_PASS_THROUGH);
|
||||
|
@ -392,7 +392,7 @@ ipa_get_jf_pass_through_operation (struct ipa_jump_func *jfunc)
|
|||
|
||||
/* Return the agg_preserved flag of a pass through jump function JFUNC. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ipa_get_jf_pass_through_agg_preserved (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_PASS_THROUGH);
|
||||
|
@ -402,7 +402,7 @@ ipa_get_jf_pass_through_agg_preserved (struct ipa_jump_func *jfunc)
|
|||
/* Return true if pass through jump function JFUNC preserves type
|
||||
information. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ipa_get_jf_pass_through_type_preserved (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_PASS_THROUGH);
|
||||
|
@ -411,7 +411,7 @@ ipa_get_jf_pass_through_type_preserved (struct ipa_jump_func *jfunc)
|
|||
|
||||
/* Return the offset of an ancestor jump function JFUNC. */
|
||||
|
||||
static inline HOST_WIDE_INT
|
||||
inline HOST_WIDE_INT
|
||||
ipa_get_jf_ancestor_offset (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_ANCESTOR);
|
||||
|
@ -421,7 +421,7 @@ ipa_get_jf_ancestor_offset (struct ipa_jump_func *jfunc)
|
|||
/* Return the number of the caller's formal parameter that an ancestor jump
|
||||
function JFUNC refers to. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
ipa_get_jf_ancestor_formal_id (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_ANCESTOR);
|
||||
|
@ -430,7 +430,7 @@ ipa_get_jf_ancestor_formal_id (struct ipa_jump_func *jfunc)
|
|||
|
||||
/* Return the agg_preserved flag of an ancestor jump function JFUNC. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ipa_get_jf_ancestor_agg_preserved (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_ANCESTOR);
|
||||
|
@ -439,7 +439,7 @@ ipa_get_jf_ancestor_agg_preserved (struct ipa_jump_func *jfunc)
|
|||
|
||||
/* Return true if ancestor jump function JFUNC presrves type information. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ipa_get_jf_ancestor_type_preserved (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_ANCESTOR);
|
||||
|
@ -450,7 +450,7 @@ ipa_get_jf_ancestor_type_preserved (struct ipa_jump_func *jfunc)
|
|||
parameter for non-NULLness unless it does not matter because the offset is
|
||||
zero anyway. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ipa_get_jf_ancestor_keep_null (struct ipa_jump_func *jfunc)
|
||||
{
|
||||
gcc_checking_assert (jfunc->type == IPA_JF_ANCESTOR);
|
||||
|
@ -701,7 +701,7 @@ struct ipa_func_body_info
|
|||
|
||||
/* Return the number of formal parameters. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
ipa_get_param_count (class ipa_node_params *info)
|
||||
{
|
||||
return vec_safe_length (info->descriptors);
|
||||
|
@ -710,7 +710,7 @@ ipa_get_param_count (class ipa_node_params *info)
|
|||
/* Return the parameter declaration in DESCRIPTORS at index I and assert it is
|
||||
indeed a PARM_DECL. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
ipa_get_param (const vec<ipa_param_descriptor, va_gc> &descriptors, int i)
|
||||
{
|
||||
tree t = descriptors[i].decl_or_type;
|
||||
|
@ -723,7 +723,7 @@ ipa_get_param (const vec<ipa_param_descriptor, va_gc> &descriptors, int i)
|
|||
using ipa_initialize_node_params. This function should not be called in
|
||||
WPA. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
ipa_get_param (class ipa_node_params *info, int i)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -733,7 +733,7 @@ ipa_get_param (class ipa_node_params *info, int i)
|
|||
/* Return the type of Ith formal parameter of the function corresponding
|
||||
to INFO if it is known or NULL if not. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
ipa_get_type (class ipa_node_params *info, int i)
|
||||
{
|
||||
if (vec_safe_length (info->descriptors) <= (unsigned) i)
|
||||
|
@ -750,7 +750,7 @@ ipa_get_type (class ipa_node_params *info, int i)
|
|||
/* Return the move cost of Ith formal parameter of the function corresponding
|
||||
to INFO. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
ipa_get_param_move_cost (class ipa_node_params *info, int i)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -760,7 +760,7 @@ ipa_get_param_move_cost (class ipa_node_params *info, int i)
|
|||
/* Set the used flag corresponding to the Ith formal parameter of the function
|
||||
associated with INFO to VAL. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
ipa_set_param_used (class ipa_node_params *info, int i, bool val)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -770,7 +770,7 @@ ipa_set_param_used (class ipa_node_params *info, int i, bool val)
|
|||
/* Set the used_by_ipa_predicates flag corresponding to the Ith formal
|
||||
parameter of the function associated with INFO to VAL. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
ipa_set_param_used_by_ipa_predicates (class ipa_node_params *info, int i, bool val)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -780,7 +780,7 @@ ipa_set_param_used_by_ipa_predicates (class ipa_node_params *info, int i, bool v
|
|||
/* Set the used_by_indirect_call flag corresponding to the Ith formal
|
||||
parameter of the function associated with INFO to VAL. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
ipa_set_param_used_by_indirect_call (class ipa_node_params *info, int i, bool val)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -790,7 +790,7 @@ ipa_set_param_used_by_indirect_call (class ipa_node_params *info, int i, bool va
|
|||
/* Set the .used_by_polymorphic_call flag corresponding to the Ith formal
|
||||
parameter of the function associated with INFO to VAL. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
ipa_set_param_used_by_polymorphic_call (class ipa_node_params *info, int i, bool val)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -800,7 +800,7 @@ ipa_set_param_used_by_polymorphic_call (class ipa_node_params *info, int i, bool
|
|||
/* Return how many uses described by ipa-prop a parameter has or
|
||||
IPA_UNDESCRIBED_USE if there is a use that is not described by these
|
||||
structures. */
|
||||
static inline int
|
||||
inline int
|
||||
ipa_get_controlled_uses (class ipa_node_params *info, int i)
|
||||
{
|
||||
/* FIXME: introducing speculation causes out of bounds access here. */
|
||||
|
@ -811,7 +811,7 @@ ipa_get_controlled_uses (class ipa_node_params *info, int i)
|
|||
|
||||
/* Set the controlled counter of a given parameter. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
ipa_set_controlled_uses (class ipa_node_params *info, int i, int val)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -820,7 +820,7 @@ ipa_set_controlled_uses (class ipa_node_params *info, int i, int val)
|
|||
|
||||
/* Assuming a parameter does not have IPA_UNDESCRIBED_USE controlled uses,
|
||||
return flag which indicates it has been dereferenced but only in a load. */
|
||||
static inline int
|
||||
inline int
|
||||
ipa_get_param_load_dereferenced (class ipa_node_params *info, int i)
|
||||
{
|
||||
gcc_assert (ipa_get_controlled_uses (info, i) != IPA_UNDESCRIBED_USE);
|
||||
|
@ -829,7 +829,7 @@ ipa_get_param_load_dereferenced (class ipa_node_params *info, int i)
|
|||
|
||||
/* Set the load_dereferenced flag of a given parameter. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
ipa_set_param_load_dereferenced (class ipa_node_params *info, int i, bool val)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -839,7 +839,7 @@ ipa_set_param_load_dereferenced (class ipa_node_params *info, int i, bool val)
|
|||
/* Return the used flag corresponding to the Ith formal parameter of the
|
||||
function associated with INFO. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ipa_is_param_used (class ipa_node_params *info, int i)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -849,7 +849,7 @@ ipa_is_param_used (class ipa_node_params *info, int i)
|
|||
/* Return the used_by_ipa_predicates flag corresponding to the Ith formal
|
||||
parameter of the function associated with INFO. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ipa_is_param_used_by_ipa_predicates (class ipa_node_params *info, int i)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -859,7 +859,7 @@ ipa_is_param_used_by_ipa_predicates (class ipa_node_params *info, int i)
|
|||
/* Return the used_by_indirect_call flag corresponding to the Ith formal
|
||||
parameter of the function associated with INFO. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ipa_is_param_used_by_indirect_call (class ipa_node_params *info, int i)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -869,7 +869,7 @@ ipa_is_param_used_by_indirect_call (class ipa_node_params *info, int i)
|
|||
/* Return the used_by_polymorphic_call flag corresponding to the Ith formal
|
||||
parameter of the function associated with INFO. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ipa_is_param_used_by_polymorphic_call (class ipa_node_params *info, int i)
|
||||
{
|
||||
gcc_checking_assert (info->descriptors);
|
||||
|
@ -944,7 +944,7 @@ class GTY((for_user)) ipa_edge_args
|
|||
|
||||
/* Return the number of actual arguments. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
ipa_get_cs_argument_count (class ipa_edge_args *args)
|
||||
{
|
||||
return vec_safe_length (args->jump_functions);
|
||||
|
@ -954,7 +954,7 @@ ipa_get_cs_argument_count (class ipa_edge_args *args)
|
|||
there is no setter function as jump functions are all set up in
|
||||
ipa_compute_jump_functions. */
|
||||
|
||||
static inline struct ipa_jump_func *
|
||||
inline struct ipa_jump_func *
|
||||
ipa_get_ith_jump_func (class ipa_edge_args *args, int i)
|
||||
{
|
||||
return &(*args->jump_functions)[i];
|
||||
|
@ -962,7 +962,7 @@ ipa_get_ith_jump_func (class ipa_edge_args *args, int i)
|
|||
|
||||
/* Returns a pointer to the polymorphic call context for the ith argument.
|
||||
NULL if contexts are not computed. */
|
||||
static inline class ipa_polymorphic_call_context *
|
||||
inline class ipa_polymorphic_call_context *
|
||||
ipa_get_ith_polymorhic_call_context (class ipa_edge_args *args, int i)
|
||||
{
|
||||
if (!args->polymorphic_call_contexts)
|
||||
|
@ -1056,7 +1056,7 @@ int count_formal_params (tree fndecl);
|
|||
/* This function ensures the array of node param infos is big enough to
|
||||
accommodate a structure for all nodes and reallocates it if not. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
ipa_check_create_node_params (void)
|
||||
{
|
||||
if (!ipa_node_params_sum)
|
||||
|
@ -1069,13 +1069,13 @@ ipa_check_create_node_params (void)
|
|||
of this function is that debug dumping function can check info availability
|
||||
without causing allocations. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ipa_edge_args_info_available_for_edge_p (struct cgraph_edge *edge)
|
||||
{
|
||||
return ipa_edge_args_sum->exists (edge);
|
||||
}
|
||||
|
||||
static inline ipcp_transformation *
|
||||
inline ipcp_transformation *
|
||||
ipcp_get_transformation_summary (cgraph_node *node)
|
||||
{
|
||||
if (ipcp_transformation_sum == NULL)
|
||||
|
|
|
@ -504,7 +504,7 @@ struct ira_emit_data
|
|||
extern ira_emit_data_t ira_allocno_emit_data;
|
||||
|
||||
/* Abbreviation for frequent emit data access. */
|
||||
static inline rtx
|
||||
inline rtx
|
||||
allocno_emit_reg (ira_allocno_t a)
|
||||
{
|
||||
return ALLOCNO_EMIT_DATA (a)->reg;
|
||||
|
@ -734,7 +734,7 @@ struct minmax_set_iterator {
|
|||
|
||||
/* Initialize the iterator I for bit vector VEC containing minimal and
|
||||
maximal values MIN and MAX. */
|
||||
static inline void
|
||||
inline void
|
||||
minmax_set_iter_init (minmax_set_iterator *i, IRA_INT_TYPE *vec, int min,
|
||||
int max)
|
||||
{
|
||||
|
@ -749,7 +749,7 @@ minmax_set_iter_init (minmax_set_iterator *i, IRA_INT_TYPE *vec, int min,
|
|||
/* Return TRUE if we have more allocnos to visit, in which case *N is
|
||||
set to the number of the element to be visited. Otherwise, return
|
||||
FALSE. */
|
||||
static inline bool
|
||||
inline bool
|
||||
minmax_set_iter_cond (minmax_set_iterator *i, int *n)
|
||||
{
|
||||
/* Skip words that are zeros. */
|
||||
|
@ -774,7 +774,7 @@ minmax_set_iter_cond (minmax_set_iterator *i, int *n)
|
|||
}
|
||||
|
||||
/* Advance to the next element in the set. */
|
||||
static inline void
|
||||
inline void
|
||||
minmax_set_iter_next (minmax_set_iterator *i)
|
||||
{
|
||||
i->word >>= 1;
|
||||
|
@ -1084,7 +1084,7 @@ extern void ira_emit (bool);
|
|||
|
||||
|
||||
/* Return true if equivalence of pseudo REGNO is not a lvalue. */
|
||||
static inline bool
|
||||
inline bool
|
||||
ira_equiv_no_lvalue_p (int regno)
|
||||
{
|
||||
if (regno >= ira_reg_equiv_len)
|
||||
|
@ -1098,7 +1098,7 @@ ira_equiv_no_lvalue_p (int regno)
|
|||
|
||||
|
||||
/* Initialize register costs for MODE if necessary. */
|
||||
static inline void
|
||||
inline void
|
||||
ira_init_register_move_cost_if_necessary (machine_mode mode)
|
||||
{
|
||||
if (ira_register_move_cost[mode] == NULL)
|
||||
|
@ -1114,7 +1114,7 @@ struct ira_allocno_iterator {
|
|||
};
|
||||
|
||||
/* Initialize the iterator I. */
|
||||
static inline void
|
||||
inline void
|
||||
ira_allocno_iter_init (ira_allocno_iterator *i)
|
||||
{
|
||||
i->n = 0;
|
||||
|
@ -1122,7 +1122,7 @@ ira_allocno_iter_init (ira_allocno_iterator *i)
|
|||
|
||||
/* Return TRUE if we have more allocnos to visit, in which case *A is
|
||||
set to the allocno to be visited. Otherwise, return FALSE. */
|
||||
static inline bool
|
||||
inline bool
|
||||
ira_allocno_iter_cond (ira_allocno_iterator *i, ira_allocno_t *a)
|
||||
{
|
||||
int n;
|
||||
|
@ -1151,7 +1151,7 @@ struct ira_object_iterator {
|
|||
};
|
||||
|
||||
/* Initialize the iterator I. */
|
||||
static inline void
|
||||
inline void
|
||||
ira_object_iter_init (ira_object_iterator *i)
|
||||
{
|
||||
i->n = 0;
|
||||
|
@ -1159,7 +1159,7 @@ ira_object_iter_init (ira_object_iterator *i)
|
|||
|
||||
/* Return TRUE if we have more objects to visit, in which case *OBJ is
|
||||
set to the object to be visited. Otherwise, return FALSE. */
|
||||
static inline bool
|
||||
inline bool
|
||||
ira_object_iter_cond (ira_object_iterator *i, ira_object_t *obj)
|
||||
{
|
||||
int n;
|
||||
|
@ -1188,7 +1188,7 @@ struct ira_allocno_object_iterator {
|
|||
};
|
||||
|
||||
/* Initialize the iterator I. */
|
||||
static inline void
|
||||
inline void
|
||||
ira_allocno_object_iter_init (ira_allocno_object_iterator *i)
|
||||
{
|
||||
i->n = 0;
|
||||
|
@ -1197,7 +1197,7 @@ ira_allocno_object_iter_init (ira_allocno_object_iterator *i)
|
|||
/* Return TRUE if we have more objects to visit in allocno A, in which
|
||||
case *O is set to the object to be visited. Otherwise, return
|
||||
FALSE. */
|
||||
static inline bool
|
||||
inline bool
|
||||
ira_allocno_object_iter_cond (ira_allocno_object_iterator *i, ira_allocno_t a,
|
||||
ira_object_t *o)
|
||||
{
|
||||
|
@ -1225,7 +1225,7 @@ struct ira_pref_iterator {
|
|||
};
|
||||
|
||||
/* Initialize the iterator I. */
|
||||
static inline void
|
||||
inline void
|
||||
ira_pref_iter_init (ira_pref_iterator *i)
|
||||
{
|
||||
i->n = 0;
|
||||
|
@ -1233,7 +1233,7 @@ ira_pref_iter_init (ira_pref_iterator *i)
|
|||
|
||||
/* Return TRUE if we have more prefs to visit, in which case *PREF is
|
||||
set to the pref to be visited. Otherwise, return FALSE. */
|
||||
static inline bool
|
||||
inline bool
|
||||
ira_pref_iter_cond (ira_pref_iterator *i, ira_pref_t *pref)
|
||||
{
|
||||
int n;
|
||||
|
@ -1263,7 +1263,7 @@ struct ira_copy_iterator {
|
|||
};
|
||||
|
||||
/* Initialize the iterator I. */
|
||||
static inline void
|
||||
inline void
|
||||
ira_copy_iter_init (ira_copy_iterator *i)
|
||||
{
|
||||
i->n = 0;
|
||||
|
@ -1271,7 +1271,7 @@ ira_copy_iter_init (ira_copy_iterator *i)
|
|||
|
||||
/* Return TRUE if we have more copies to visit, in which case *CP is
|
||||
set to the copy to be visited. Otherwise, return FALSE. */
|
||||
static inline bool
|
||||
inline bool
|
||||
ira_copy_iter_cond (ira_copy_iterator *i, ira_copy_t *cp)
|
||||
{
|
||||
int n;
|
||||
|
@ -1324,7 +1324,7 @@ struct ira_object_conflict_iterator {
|
|||
};
|
||||
|
||||
/* Initialize the iterator I with ALLOCNO conflicts. */
|
||||
static inline void
|
||||
inline void
|
||||
ira_object_conflict_iter_init (ira_object_conflict_iterator *i,
|
||||
ira_object_t obj)
|
||||
{
|
||||
|
@ -1350,7 +1350,7 @@ ira_object_conflict_iter_init (ira_object_conflict_iterator *i,
|
|||
/* Return TRUE if we have more conflicting allocnos to visit, in which
|
||||
case *A is set to the allocno to be visited. Otherwise, return
|
||||
FALSE. */
|
||||
static inline bool
|
||||
inline bool
|
||||
ira_object_conflict_iter_cond (ira_object_conflict_iterator *i,
|
||||
ira_object_t *pobj)
|
||||
{
|
||||
|
@ -1405,7 +1405,7 @@ ira_object_conflict_iter_cond (ira_object_conflict_iterator *i,
|
|||
/* The function returns TRUE if at least one hard register from ones
|
||||
starting with HARD_REGNO and containing value of MODE are in set
|
||||
HARD_REGSET. */
|
||||
static inline bool
|
||||
inline bool
|
||||
ira_hard_reg_set_intersection_p (int hard_regno, machine_mode mode,
|
||||
HARD_REG_SET hard_regset)
|
||||
{
|
||||
|
@ -1419,7 +1419,7 @@ ira_hard_reg_set_intersection_p (int hard_regno, machine_mode mode,
|
|||
}
|
||||
|
||||
/* Return number of hard registers in hard register SET. */
|
||||
static inline int
|
||||
inline int
|
||||
hard_reg_set_size (HARD_REG_SET set)
|
||||
{
|
||||
int i, size;
|
||||
|
@ -1433,7 +1433,7 @@ hard_reg_set_size (HARD_REG_SET set)
|
|||
/* The function returns TRUE if hard registers starting with
|
||||
HARD_REGNO and containing value of MODE are fully in set
|
||||
HARD_REGSET. */
|
||||
static inline bool
|
||||
inline bool
|
||||
ira_hard_reg_in_set_p (int hard_regno, machine_mode mode,
|
||||
HARD_REG_SET hard_regset)
|
||||
{
|
||||
|
@ -1454,7 +1454,7 @@ ira_hard_reg_in_set_p (int hard_regno, machine_mode mode,
|
|||
|
||||
/* Allocate cost vector *VEC for hard registers of ACLASS and
|
||||
initialize the elements by VAL if it is necessary */
|
||||
static inline void
|
||||
inline void
|
||||
ira_allocate_and_set_costs (int **vec, reg_class_t aclass, int val)
|
||||
{
|
||||
int i, *reg_costs;
|
||||
|
@ -1470,7 +1470,7 @@ ira_allocate_and_set_costs (int **vec, reg_class_t aclass, int val)
|
|||
|
||||
/* Allocate cost vector *VEC for hard registers of ACLASS and copy
|
||||
values of vector SRC into the vector if it is necessary */
|
||||
static inline void
|
||||
inline void
|
||||
ira_allocate_and_copy_costs (int **vec, enum reg_class aclass, int *src)
|
||||
{
|
||||
int len;
|
||||
|
@ -1484,7 +1484,7 @@ ira_allocate_and_copy_costs (int **vec, enum reg_class aclass, int *src)
|
|||
|
||||
/* Allocate cost vector *VEC for hard registers of ACLASS and add
|
||||
values of vector SRC into the vector if it is necessary */
|
||||
static inline void
|
||||
inline void
|
||||
ira_allocate_and_accumulate_costs (int **vec, enum reg_class aclass, int *src)
|
||||
{
|
||||
int i, len;
|
||||
|
@ -1504,7 +1504,7 @@ ira_allocate_and_accumulate_costs (int **vec, enum reg_class aclass, int *src)
|
|||
/* Allocate cost vector *VEC for hard registers of ACLASS and copy
|
||||
values of vector SRC into the vector or initialize it by VAL (if
|
||||
SRC is null). */
|
||||
static inline void
|
||||
inline void
|
||||
ira_allocate_and_set_or_copy_costs (int **vec, enum reg_class aclass,
|
||||
int val, int *src)
|
||||
{
|
||||
|
|
|
@ -235,7 +235,7 @@ extern rtx non_conflicting_reg_copy_p (rtx_insn *);
|
|||
non-local goto code using frame-pointer to address saved stack
|
||||
pointer value after restoring old frame pointer value. The
|
||||
function returns TRUE if REGNO is such a static chain pseudo. */
|
||||
static inline bool
|
||||
inline bool
|
||||
non_spilled_static_chain_regno_p (int regno)
|
||||
{
|
||||
return (cfun->static_chain_decl && crtl->has_nonlocal_goto
|
||||
|
|
|
@ -66,7 +66,7 @@ dg_wait (void)
|
|||
}
|
||||
#endif
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
pass (const char* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
@ -81,7 +81,7 @@ pass (const char* fmt, ...)
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
xpass (const char* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
@ -96,7 +96,7 @@ xpass (const char* fmt, ...)
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
fail (const char* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
@ -111,7 +111,7 @@ fail (const char* fmt, ...)
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
xfail (const char* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
@ -126,7 +126,7 @@ xfail (const char* fmt, ...)
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
untested (const char* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
@ -141,7 +141,7 @@ untested (const char* fmt, ...)
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
unresolved (const char* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
@ -156,7 +156,7 @@ unresolved (const char* fmt, ...)
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
note (const char* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
@ -170,7 +170,7 @@ note (const char* fmt, ...)
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
totals (void)
|
||||
{
|
||||
printf ("\nTotals:\n");
|
||||
|
|
|
@ -2556,7 +2556,7 @@ types_kinda_same_internal (recording::type *a,
|
|||
|
||||
For array and vector types the number of element also
|
||||
has to match, aswell as the element types themself. */
|
||||
static inline bool
|
||||
inline bool
|
||||
types_kinda_same (recording::type *a, recording::type *b)
|
||||
{
|
||||
/* Handle trivial case here, to allow for inlining. */
|
||||
|
|
|
@ -419,7 +419,7 @@ extern void lra_eliminate_reg_if_possible (rtx *);
|
|||
/* Return the hard register which given pseudo REGNO assigned to.
|
||||
Negative value means that the register got memory or we don't know
|
||||
allocation yet. */
|
||||
static inline int
|
||||
inline int
|
||||
lra_get_regno_hard_regno (int regno)
|
||||
{
|
||||
resize_reg_info ();
|
||||
|
@ -443,7 +443,7 @@ lra_change_class (int regno, enum reg_class new_class,
|
|||
|
||||
/* Update insn operands which are duplication of NOP operand. The
|
||||
insn is represented by its LRA internal representation ID. */
|
||||
static inline void
|
||||
inline void
|
||||
lra_update_dup (lra_insn_recog_data_t id, int nop)
|
||||
{
|
||||
int i;
|
||||
|
@ -458,7 +458,7 @@ lra_update_dup (lra_insn_recog_data_t id, int nop)
|
|||
operands processing. Generally speaking, we could do this probably
|
||||
simultaneously with operands processing because a common practice
|
||||
is to enumerate the operators after their operands. */
|
||||
static inline void
|
||||
inline void
|
||||
lra_update_operator_dups (lra_insn_recog_data_t id)
|
||||
{
|
||||
int i;
|
||||
|
@ -474,7 +474,7 @@ lra_update_operator_dups (lra_insn_recog_data_t id)
|
|||
}
|
||||
|
||||
/* Return info about INSN. Set up the info if it is not done yet. */
|
||||
static inline lra_insn_recog_data_t
|
||||
inline lra_insn_recog_data_t
|
||||
lra_get_insn_recog_data (rtx_insn *insn)
|
||||
{
|
||||
lra_insn_recog_data_t data;
|
||||
|
@ -494,7 +494,7 @@ lra_get_insn_recog_data (rtx_insn *insn)
|
|||
}
|
||||
|
||||
/* Update offset from pseudos with VAL by INCR. */
|
||||
static inline void
|
||||
inline void
|
||||
lra_update_reg_val_offset (int val, poly_int64 incr)
|
||||
{
|
||||
int i;
|
||||
|
@ -507,7 +507,7 @@ lra_update_reg_val_offset (int val, poly_int64 incr)
|
|||
}
|
||||
|
||||
/* Return true if register content is equal to VAL with OFFSET. */
|
||||
static inline bool
|
||||
inline bool
|
||||
lra_reg_val_equal_p (int regno, int val, poly_int64 offset)
|
||||
{
|
||||
if (lra_reg_info[regno].val == val
|
||||
|
@ -518,7 +518,7 @@ lra_reg_val_equal_p (int regno, int val, poly_int64 offset)
|
|||
}
|
||||
|
||||
/* Assign value of register FROM to TO. */
|
||||
static inline void
|
||||
inline void
|
||||
lra_assign_reg_val (int from, int to)
|
||||
{
|
||||
lra_reg_info[to].val = lra_reg_info[from].val;
|
||||
|
|
|
@ -27,7 +27,7 @@ extern bool lra_simple_p;
|
|||
/* Return the allocno reg class of REGNO. If it is a reload pseudo,
|
||||
the pseudo should finally get hard register of the allocno
|
||||
class. */
|
||||
static inline enum reg_class
|
||||
inline enum reg_class
|
||||
lra_get_allocno_class (int regno)
|
||||
{
|
||||
resize_reg_info ();
|
||||
|
|
|
@ -969,7 +969,7 @@ extern const char *lto_section_name[];
|
|||
extern vec<lto_out_decl_state_ptr> lto_function_decl_states;
|
||||
|
||||
/* Return true if LTO tag TAG corresponds to a tree code. */
|
||||
static inline bool
|
||||
inline bool
|
||||
lto_tag_is_tree_code_p (enum LTO_tags tag)
|
||||
{
|
||||
return tag > LTO_first_tree_tag && (unsigned) tag <= MAX_TREE_CODES;
|
||||
|
@ -977,7 +977,7 @@ lto_tag_is_tree_code_p (enum LTO_tags tag)
|
|||
|
||||
|
||||
/* Return true if LTO tag TAG corresponds to a gimple code. */
|
||||
static inline bool
|
||||
inline bool
|
||||
lto_tag_is_gimple_code_p (enum LTO_tags tag)
|
||||
{
|
||||
return (unsigned) tag >= LTO_first_gimple_tag
|
||||
|
@ -988,7 +988,7 @@ lto_tag_is_gimple_code_p (enum LTO_tags tag)
|
|||
|
||||
/* Return the LTO tag corresponding to gimple code CODE. See enum
|
||||
LTO_tags for details on the conversion. */
|
||||
static inline enum LTO_tags
|
||||
inline enum LTO_tags
|
||||
lto_gimple_code_to_tag (enum gimple_code code)
|
||||
{
|
||||
return (enum LTO_tags) ((unsigned) code + LTO_first_gimple_tag);
|
||||
|
@ -997,7 +997,7 @@ lto_gimple_code_to_tag (enum gimple_code code)
|
|||
|
||||
/* Return the GIMPLE code corresponding to TAG. See enum LTO_tags for
|
||||
details on the conversion. */
|
||||
static inline enum gimple_code
|
||||
inline enum gimple_code
|
||||
lto_tag_to_gimple_code (enum LTO_tags tag)
|
||||
{
|
||||
gcc_assert (lto_tag_is_gimple_code_p (tag));
|
||||
|
@ -1007,7 +1007,7 @@ lto_tag_to_gimple_code (enum LTO_tags tag)
|
|||
|
||||
/* Return the LTO tag corresponding to tree code CODE. See enum
|
||||
LTO_tags for details on the conversion. */
|
||||
static inline enum LTO_tags
|
||||
inline enum LTO_tags
|
||||
lto_tree_code_to_tag (enum tree_code code)
|
||||
{
|
||||
return (enum LTO_tags) ((unsigned) code + LTO_first_tree_tag);
|
||||
|
@ -1016,7 +1016,7 @@ lto_tree_code_to_tag (enum tree_code code)
|
|||
|
||||
/* Return the tree code corresponding to TAG. See enum LTO_tags for
|
||||
details on the conversion. */
|
||||
static inline enum tree_code
|
||||
inline enum tree_code
|
||||
lto_tag_to_tree_code (enum LTO_tags tag)
|
||||
{
|
||||
gcc_assert (lto_tag_is_tree_code_p (tag));
|
||||
|
@ -1024,7 +1024,7 @@ lto_tag_to_tree_code (enum LTO_tags tag)
|
|||
}
|
||||
|
||||
/* Check that tag ACTUAL == EXPECTED. */
|
||||
static inline void
|
||||
inline void
|
||||
lto_tag_check (enum LTO_tags actual, enum LTO_tags expected)
|
||||
{
|
||||
if (actual != expected)
|
||||
|
@ -1033,7 +1033,7 @@ lto_tag_check (enum LTO_tags actual, enum LTO_tags expected)
|
|||
}
|
||||
|
||||
/* Check that tag ACTUAL is in the range [TAG1, TAG2]. */
|
||||
static inline void
|
||||
inline void
|
||||
lto_tag_check_range (enum LTO_tags actual, enum LTO_tags tag1,
|
||||
enum LTO_tags tag2)
|
||||
{
|
||||
|
@ -1046,7 +1046,7 @@ lto_tag_check_range (enum LTO_tags actual, enum LTO_tags tag1,
|
|||
}
|
||||
|
||||
/* Initialize an lto_out_decl_buffer ENCODER. */
|
||||
static inline void
|
||||
inline void
|
||||
lto_init_tree_ref_encoder (struct lto_tree_ref_encoder *encoder)
|
||||
{
|
||||
encoder->tree_hash_table = new hash_map<tree, unsigned> (251);
|
||||
|
@ -1056,7 +1056,7 @@ lto_init_tree_ref_encoder (struct lto_tree_ref_encoder *encoder)
|
|||
|
||||
/* Destroy an lto_tree_ref_encoder ENCODER by freeing its contents. The
|
||||
memory used by ENCODER is not freed by this function. */
|
||||
static inline void
|
||||
inline void
|
||||
lto_destroy_tree_ref_encoder (struct lto_tree_ref_encoder *encoder)
|
||||
{
|
||||
/* Hash table may be delete already. */
|
||||
|
@ -1066,14 +1066,14 @@ lto_destroy_tree_ref_encoder (struct lto_tree_ref_encoder *encoder)
|
|||
}
|
||||
|
||||
/* Return the number of trees encoded in ENCODER. */
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
lto_tree_ref_encoder_size (struct lto_tree_ref_encoder *encoder)
|
||||
{
|
||||
return encoder->trees.length ();
|
||||
}
|
||||
|
||||
/* Return the IDX-th tree in ENCODER. */
|
||||
static inline tree
|
||||
inline tree
|
||||
lto_tree_ref_encoder_get_tree (struct lto_tree_ref_encoder *encoder,
|
||||
unsigned int idx)
|
||||
{
|
||||
|
@ -1081,7 +1081,7 @@ lto_tree_ref_encoder_get_tree (struct lto_tree_ref_encoder *encoder,
|
|||
}
|
||||
|
||||
/* Return number of encoded nodes in ENCODER. */
|
||||
static inline int
|
||||
inline int
|
||||
lto_symtab_encoder_size (lto_symtab_encoder_t encoder)
|
||||
{
|
||||
return encoder->nodes.length ();
|
||||
|
@ -1093,7 +1093,7 @@ lto_symtab_encoder_size (lto_symtab_encoder_t encoder)
|
|||
/* Look up NODE in encoder. Return NODE's reference if it has been encoded
|
||||
or LCC_NOT_FOUND if it is not there. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
lto_symtab_encoder_lookup (lto_symtab_encoder_t encoder,
|
||||
symtab_node *node)
|
||||
{
|
||||
|
@ -1102,35 +1102,35 @@ lto_symtab_encoder_lookup (lto_symtab_encoder_t encoder,
|
|||
}
|
||||
|
||||
/* Return true if iterator LSE points to nothing. */
|
||||
static inline bool
|
||||
inline bool
|
||||
lsei_end_p (lto_symtab_encoder_iterator lsei)
|
||||
{
|
||||
return lsei.index >= (unsigned)lto_symtab_encoder_size (lsei.encoder);
|
||||
}
|
||||
|
||||
/* Advance iterator LSE. */
|
||||
static inline void
|
||||
inline void
|
||||
lsei_next (lto_symtab_encoder_iterator *lsei)
|
||||
{
|
||||
lsei->index++;
|
||||
}
|
||||
|
||||
/* Return the node pointed to by LSI. */
|
||||
static inline symtab_node *
|
||||
inline symtab_node *
|
||||
lsei_node (lto_symtab_encoder_iterator lsei)
|
||||
{
|
||||
return lsei.encoder->nodes[lsei.index].node;
|
||||
}
|
||||
|
||||
/* Return the node pointed to by LSI. */
|
||||
static inline struct cgraph_node *
|
||||
inline struct cgraph_node *
|
||||
lsei_cgraph_node (lto_symtab_encoder_iterator lsei)
|
||||
{
|
||||
return dyn_cast<cgraph_node *> (lsei.encoder->nodes[lsei.index].node);
|
||||
}
|
||||
|
||||
/* Return the node pointed to by LSI. */
|
||||
static inline varpool_node *
|
||||
inline varpool_node *
|
||||
lsei_varpool_node (lto_symtab_encoder_iterator lsei)
|
||||
{
|
||||
return dyn_cast<varpool_node *> (lsei.encoder->nodes[lsei.index].node);
|
||||
|
@ -1138,7 +1138,7 @@ lsei_varpool_node (lto_symtab_encoder_iterator lsei)
|
|||
|
||||
/* Return the cgraph node corresponding to REF using ENCODER. */
|
||||
|
||||
static inline symtab_node *
|
||||
inline symtab_node *
|
||||
lto_symtab_encoder_deref (lto_symtab_encoder_t encoder, int ref)
|
||||
{
|
||||
if (ref == LCC_NOT_FOUND)
|
||||
|
@ -1148,7 +1148,7 @@ lto_symtab_encoder_deref (lto_symtab_encoder_t encoder, int ref)
|
|||
}
|
||||
|
||||
/* Return an iterator to the first node in LSI. */
|
||||
static inline lto_symtab_encoder_iterator
|
||||
inline lto_symtab_encoder_iterator
|
||||
lsei_start (lto_symtab_encoder_t encoder)
|
||||
{
|
||||
lto_symtab_encoder_iterator lsei;
|
||||
|
@ -1159,7 +1159,7 @@ lsei_start (lto_symtab_encoder_t encoder)
|
|||
}
|
||||
|
||||
/* Advance iterator LSE. */
|
||||
static inline void
|
||||
inline void
|
||||
lsei_next_in_partition (lto_symtab_encoder_iterator *lsei)
|
||||
{
|
||||
lsei_next (lsei);
|
||||
|
@ -1169,7 +1169,7 @@ lsei_next_in_partition (lto_symtab_encoder_iterator *lsei)
|
|||
}
|
||||
|
||||
/* Return an iterator to the first node in LSI. */
|
||||
static inline lto_symtab_encoder_iterator
|
||||
inline lto_symtab_encoder_iterator
|
||||
lsei_start_in_partition (lto_symtab_encoder_t encoder)
|
||||
{
|
||||
lto_symtab_encoder_iterator lsei = lsei_start (encoder);
|
||||
|
@ -1183,7 +1183,7 @@ lsei_start_in_partition (lto_symtab_encoder_t encoder)
|
|||
}
|
||||
|
||||
/* Advance iterator LSE. */
|
||||
static inline void
|
||||
inline void
|
||||
lsei_next_function_in_partition (lto_symtab_encoder_iterator *lsei)
|
||||
{
|
||||
lsei_next (lsei);
|
||||
|
@ -1194,7 +1194,7 @@ lsei_next_function_in_partition (lto_symtab_encoder_iterator *lsei)
|
|||
}
|
||||
|
||||
/* Return an iterator to the first node in LSI. */
|
||||
static inline lto_symtab_encoder_iterator
|
||||
inline lto_symtab_encoder_iterator
|
||||
lsei_start_function_in_partition (lto_symtab_encoder_t encoder)
|
||||
{
|
||||
lto_symtab_encoder_iterator lsei = lsei_start (encoder);
|
||||
|
@ -1209,7 +1209,7 @@ lsei_start_function_in_partition (lto_symtab_encoder_t encoder)
|
|||
}
|
||||
|
||||
/* Advance iterator LSE. */
|
||||
static inline void
|
||||
inline void
|
||||
lsei_next_variable_in_partition (lto_symtab_encoder_iterator *lsei)
|
||||
{
|
||||
lsei_next (lsei);
|
||||
|
@ -1220,7 +1220,7 @@ lsei_next_variable_in_partition (lto_symtab_encoder_iterator *lsei)
|
|||
}
|
||||
|
||||
/* Return an iterator to the first node in LSI. */
|
||||
static inline lto_symtab_encoder_iterator
|
||||
inline lto_symtab_encoder_iterator
|
||||
lsei_start_variable_in_partition (lto_symtab_encoder_t encoder)
|
||||
{
|
||||
lto_symtab_encoder_iterator lsei = lsei_start (encoder);
|
||||
|
|
|
@ -51,63 +51,63 @@ enum memmodel
|
|||
};
|
||||
|
||||
/* Return the memory model from a host integer. */
|
||||
static inline enum memmodel
|
||||
inline enum memmodel
|
||||
memmodel_from_int (unsigned HOST_WIDE_INT val)
|
||||
{
|
||||
return (enum memmodel) (val & MEMMODEL_MASK);
|
||||
}
|
||||
|
||||
/* Return the base memory model from a host integer. */
|
||||
static inline enum memmodel
|
||||
inline enum memmodel
|
||||
memmodel_base (unsigned HOST_WIDE_INT val)
|
||||
{
|
||||
return (enum memmodel) (val & MEMMODEL_BASE_MASK);
|
||||
}
|
||||
|
||||
/* Return TRUE if the memory model is RELAXED. */
|
||||
static inline bool
|
||||
inline bool
|
||||
is_mm_relaxed (enum memmodel model)
|
||||
{
|
||||
return (model & MEMMODEL_BASE_MASK) == MEMMODEL_RELAXED;
|
||||
}
|
||||
|
||||
/* Return TRUE if the memory model is CONSUME. */
|
||||
static inline bool
|
||||
inline bool
|
||||
is_mm_consume (enum memmodel model)
|
||||
{
|
||||
return (model & MEMMODEL_BASE_MASK) == MEMMODEL_CONSUME;
|
||||
}
|
||||
|
||||
/* Return TRUE if the memory model is ACQUIRE. */
|
||||
static inline bool
|
||||
inline bool
|
||||
is_mm_acquire (enum memmodel model)
|
||||
{
|
||||
return (model & MEMMODEL_BASE_MASK) == MEMMODEL_ACQUIRE;
|
||||
}
|
||||
|
||||
/* Return TRUE if the memory model is RELEASE. */
|
||||
static inline bool
|
||||
inline bool
|
||||
is_mm_release (enum memmodel model)
|
||||
{
|
||||
return (model & MEMMODEL_BASE_MASK) == MEMMODEL_RELEASE;
|
||||
}
|
||||
|
||||
/* Return TRUE if the memory model is ACQ_REL. */
|
||||
static inline bool
|
||||
inline bool
|
||||
is_mm_acq_rel (enum memmodel model)
|
||||
{
|
||||
return (model & MEMMODEL_BASE_MASK) == MEMMODEL_ACQ_REL;
|
||||
}
|
||||
|
||||
/* Return TRUE if the memory model is SEQ_CST. */
|
||||
static inline bool
|
||||
inline bool
|
||||
is_mm_seq_cst (enum memmodel model)
|
||||
{
|
||||
return (model & MEMMODEL_BASE_MASK) == MEMMODEL_SEQ_CST;
|
||||
}
|
||||
|
||||
/* Return TRUE if the memory model is a SYNC variant. */
|
||||
static inline bool
|
||||
inline bool
|
||||
is_mm_sync (enum memmodel model)
|
||||
{
|
||||
return (model & MEMMODEL_SYNC);
|
||||
|
|
|
@ -117,7 +117,6 @@ static tree build_method_decl (enum tree_code, tree, tree, tree, bool);
|
|||
static tree objc_add_method (tree, tree, int, bool);
|
||||
static tree add_instance_variable (tree, objc_ivar_visibility_kind, tree);
|
||||
static tree build_ivar_reference (tree);
|
||||
static tree is_ivar (tree, tree);
|
||||
|
||||
/* We only need the following for ObjC; ObjC++ will use C++'s definition
|
||||
of DERIVED_FROM_P. */
|
||||
|
@ -169,7 +168,6 @@ static tree lookup_method_static (tree, tree, int);
|
|||
static void interface_hash_init (void);
|
||||
static tree add_interface (tree, tree);
|
||||
static void add_category (tree, tree);
|
||||
static inline tree lookup_category (tree, tree);
|
||||
|
||||
/* Protocols. */
|
||||
|
||||
|
|
|
@ -745,7 +745,7 @@ size_t objc_common_tree_size (enum tree_code code);
|
|||
#define objc_is_class_id(TYPE) (OBJC_TYPE_NAME (TYPE) == objc_class_id)
|
||||
|
||||
/* Retrieve category interface CAT_NAME (if any) associated with CLASS. */
|
||||
static inline tree
|
||||
inline tree
|
||||
lookup_category (tree klass, tree cat_name)
|
||||
{
|
||||
tree category = CLASS_CATEGORY_LIST (klass);
|
||||
|
@ -756,7 +756,7 @@ lookup_category (tree klass, tree cat_name)
|
|||
}
|
||||
|
||||
/* Count only the fields occurring in T. */
|
||||
static inline int
|
||||
inline int
|
||||
ivar_list_length (tree t)
|
||||
{
|
||||
int count = 0;
|
||||
|
@ -768,7 +768,7 @@ ivar_list_length (tree t)
|
|||
return count;
|
||||
}
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
is_ivar (tree decl_chain, tree ident)
|
||||
{
|
||||
for ( ; decl_chain; decl_chain = DECL_CHAIN (decl_chain))
|
||||
|
|
|
@ -133,7 +133,7 @@ int objc_map_maximum_load_factor (objc_map_t map);
|
|||
value NULL, and objc_map_get() will return NULL in that case.
|
||||
So a result of NULL means that they key *was* found, and the value
|
||||
associated with it was NULL. */
|
||||
static inline tree
|
||||
inline tree
|
||||
objc_map_get (objc_map_t map, /* struct tree_identifier * */tree key)
|
||||
{
|
||||
/* The inline implementation is private and may change without notice. */
|
||||
|
@ -169,7 +169,7 @@ objc_map_get (objc_map_t map, /* struct tree_identifier * */tree key)
|
|||
You can use any identifier as key, with the exception of NULL.
|
||||
|
||||
You can use any tree as value, including NULL. */
|
||||
static inline
|
||||
inline
|
||||
void objc_map_put (objc_map_t map, /*struct tree_identifier * */tree key, tree value)
|
||||
{
|
||||
/* The inline implementation is private and may change without notice. */
|
||||
|
@ -243,7 +243,7 @@ typedef size_t objc_map_iterator_t;
|
|||
/* Initialize an iterator to iterate over the specified objc_map. You
|
||||
must use this before starting the iteration, to get a working
|
||||
iterator. */
|
||||
static inline
|
||||
inline
|
||||
void
|
||||
objc_map_iterator_initialize (objc_map_t map ATTRIBUTE_UNUSED, objc_map_iterator_t *i)
|
||||
{
|
||||
|
@ -262,7 +262,7 @@ objc_map_iterator_initialize (objc_map_t map ATTRIBUTE_UNUSED, objc_map_iterator
|
|||
been initialized using objc_map_iterator_initialize(). Note that
|
||||
because this function is modifying the iterator, you need to pass a
|
||||
pointer to it. */
|
||||
static inline
|
||||
inline
|
||||
int
|
||||
objc_map_iterator_move_to_next (objc_map_t map, objc_map_iterator_t *i)
|
||||
{
|
||||
|
@ -285,7 +285,7 @@ objc_map_iterator_move_to_next (objc_map_t map, objc_map_iterator_t *i)
|
|||
first element), and only if the last call returned
|
||||
OBJC_MAP_SUCCESS. The behavior is otherwise undefined, probably a
|
||||
segmentation fault. */
|
||||
static inline
|
||||
inline
|
||||
tree
|
||||
objc_map_iterator_current_key (objc_map_t map, objc_map_iterator_t i)
|
||||
{
|
||||
|
@ -298,7 +298,7 @@ objc_map_iterator_current_key (objc_map_t map, objc_map_iterator_t i)
|
|||
the first element), and only if the last call returned
|
||||
OBJC_MAP_SUCCESS. The behavior is otherwise undefined, probably a
|
||||
segmentation fault. */
|
||||
static inline
|
||||
inline
|
||||
tree
|
||||
objc_map_iterator_current_value (objc_map_t map, objc_map_iterator_t i)
|
||||
{
|
||||
|
|
|
@ -137,7 +137,7 @@ enum omp_requires {
|
|||
|
||||
extern GTY(()) enum omp_requires omp_requires_mask;
|
||||
|
||||
static inline dump_flags_t
|
||||
inline dump_flags_t
|
||||
get_openacc_privatization_dump_flags ()
|
||||
{
|
||||
dump_flags_t l_dump_flags = MSG_NOTE;
|
||||
|
|
|
@ -92,7 +92,7 @@ trapv_binoptab_p (optab binoptab)
|
|||
/* Return insn code for a comparison operator with VMODE
|
||||
resultin MASK_MODE, unsigned if UNS is true. */
|
||||
|
||||
static inline enum insn_code
|
||||
inline enum insn_code
|
||||
get_vec_cmp_icode (machine_mode vmode, machine_mode mask_mode, bool uns)
|
||||
{
|
||||
optab tab = uns ? vec_cmpu_optab : vec_cmp_optab;
|
||||
|
@ -102,7 +102,7 @@ get_vec_cmp_icode (machine_mode vmode, machine_mode mask_mode, bool uns)
|
|||
/* Return insn code for a comparison operator with VMODE
|
||||
resultin MASK_MODE (only for EQ/NE). */
|
||||
|
||||
static inline enum insn_code
|
||||
inline enum insn_code
|
||||
get_vec_cmp_eq_icode (machine_mode vmode, machine_mode mask_mode)
|
||||
{
|
||||
return convert_optab_handler (vec_cmpeq_optab, vmode, mask_mode);
|
||||
|
@ -125,7 +125,7 @@ get_vcond_icode (machine_mode vmode, machine_mode cmode, bool uns)
|
|||
/* Return insn code for a conditional operator with a mask mode
|
||||
MMODE resulting in a value of mode VMODE. */
|
||||
|
||||
static inline enum insn_code
|
||||
inline enum insn_code
|
||||
get_vcond_mask_icode (machine_mode vmode, machine_mode mmode)
|
||||
{
|
||||
return convert_optab_handler (vcond_mask_optab, vmode, mmode);
|
||||
|
@ -134,7 +134,7 @@ get_vcond_mask_icode (machine_mode vmode, machine_mode mmode)
|
|||
/* Return insn code for a conditional operator with a comparison in
|
||||
mode CMODE (only EQ/NE), resulting in a value of mode VMODE. */
|
||||
|
||||
static inline enum insn_code
|
||||
inline enum insn_code
|
||||
get_vcond_eq_icode (machine_mode vmode, machine_mode cmode)
|
||||
{
|
||||
return convert_optab_handler (vcondeq_optab, vmode, cmode);
|
||||
|
|
14
gcc/optabs.h
14
gcc/optabs.h
|
@ -70,7 +70,7 @@ public:
|
|||
/* Initialize OP with the given fields. Initialise the other fields
|
||||
to their default values. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
create_expand_operand (class expand_operand *op,
|
||||
enum expand_operand_type type,
|
||||
rtx value, machine_mode mode,
|
||||
|
@ -87,7 +87,7 @@ create_expand_operand (class expand_operand *op,
|
|||
|
||||
/* Make OP describe an operand that must use rtx X, even if X is volatile. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
create_fixed_operand (class expand_operand *op, rtx x)
|
||||
{
|
||||
create_expand_operand (op, EXPAND_FIXED, x, VOIDmode, false);
|
||||
|
@ -98,7 +98,7 @@ create_fixed_operand (class expand_operand *op, rtx x)
|
|||
It is OK for VALUE to be inconsistent with MODE, although it will just
|
||||
be ignored in that case. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
create_output_operand (class expand_operand *op, rtx x,
|
||||
machine_mode mode)
|
||||
{
|
||||
|
@ -110,7 +110,7 @@ create_output_operand (class expand_operand *op, rtx x,
|
|||
VALUE be copied into a different kind of rtx before being passed
|
||||
as an operand. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
create_input_operand (class expand_operand *op, rtx value,
|
||||
machine_mode mode)
|
||||
{
|
||||
|
@ -120,7 +120,7 @@ create_input_operand (class expand_operand *op, rtx value,
|
|||
/* Like create_input_operand, except that VALUE must first be converted
|
||||
to mode MODE. UNSIGNED_P says whether VALUE is unsigned. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
create_convert_operand_to (class expand_operand *op, rtx value,
|
||||
machine_mode mode, bool unsigned_p)
|
||||
{
|
||||
|
@ -136,7 +136,7 @@ create_convert_operand_to (class expand_operand *op, rtx value,
|
|||
conversion (as for convert_modes) and duplicating a scalar to fill
|
||||
a vector (if VALUE is a scalar but the operand is a vector). */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
create_convert_operand_from (class expand_operand *op, rtx value,
|
||||
machine_mode mode, bool unsigned_p)
|
||||
{
|
||||
|
@ -147,7 +147,7 @@ create_convert_operand_from (class expand_operand *op, rtx value,
|
|||
/* Make OP describe an input Pmode address operand. VALUE is the value
|
||||
of the address, but it may need to be converted to Pmode first. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
create_address_operand (class expand_operand *op, rtx value)
|
||||
{
|
||||
create_expand_operand (op, EXPAND_ADDRESS, value, Pmode, false);
|
||||
|
|
|
@ -184,7 +184,7 @@ extern bool flag_plugin_added;
|
|||
EVENT - the event identifier
|
||||
GCC_DATA - event-specific data provided by the compiler */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
invoke_plugin_callbacks (int event ATTRIBUTE_UNUSED,
|
||||
void *gcc_data ATTRIBUTE_UNUSED)
|
||||
{
|
||||
|
|
|
@ -113,7 +113,7 @@ public:
|
|||
|
||||
/* Finishes constructing a NULL-terminated character string representing
|
||||
the buffered text. */
|
||||
static inline const char *
|
||||
inline const char *
|
||||
output_buffer_formatted_text (output_buffer *buff)
|
||||
{
|
||||
obstack_1grow (buff->obstack, '\0');
|
||||
|
@ -122,7 +122,7 @@ output_buffer_formatted_text (output_buffer *buff)
|
|||
|
||||
/* Append to the output buffer a string specified by its
|
||||
STARTing character and LENGTH. */
|
||||
static inline void
|
||||
inline void
|
||||
output_buffer_append_r (output_buffer *buff, const char *start, int length)
|
||||
{
|
||||
gcc_checking_assert (start);
|
||||
|
@ -136,7 +136,7 @@ output_buffer_append_r (output_buffer *buff, const char *start, int length)
|
|||
|
||||
/* Return a pointer to the last character emitted in the
|
||||
output_buffer. A NULL pointer means no character available. */
|
||||
static inline const char *
|
||||
inline const char *
|
||||
output_buffer_last_position_in_text (const output_buffer *buff)
|
||||
{
|
||||
const char *p = NULL;
|
||||
|
@ -283,7 +283,7 @@ public:
|
|||
diagnostic_url_format url_format;
|
||||
};
|
||||
|
||||
static inline const char *
|
||||
inline const char *
|
||||
pp_get_prefix (const pretty_printer *pp) { return pp->prefix; }
|
||||
|
||||
#define pp_space(PP) pp_character (PP, ' ')
|
||||
|
@ -415,7 +415,7 @@ extern void pp_begin_url (pretty_printer *pp, const char *url);
|
|||
extern void pp_end_url (pretty_printer *pp);
|
||||
|
||||
/* Switch into verbatim mode and return the old mode. */
|
||||
static inline pp_wrapping_mode_t
|
||||
inline pp_wrapping_mode_t
|
||||
pp_set_verbatim_wrapping_ (pretty_printer *pp)
|
||||
{
|
||||
pp_wrapping_mode_t oldmode = pp_wrapping_mode (pp);
|
||||
|
|
|
@ -28,7 +28,7 @@ value_range range_negatives (tree type);
|
|||
|
||||
// Return an irange instance that is a boolean TRUE.
|
||||
|
||||
static inline int_range<1>
|
||||
inline int_range<1>
|
||||
range_true (tree type)
|
||||
{
|
||||
unsigned prec = TYPE_PRECISION (type);
|
||||
|
@ -37,7 +37,7 @@ range_true (tree type)
|
|||
|
||||
// Return an irange instance that is a boolean FALSE.
|
||||
|
||||
static inline int_range<1>
|
||||
inline int_range<1>
|
||||
range_false (tree type)
|
||||
{
|
||||
unsigned prec = TYPE_PRECISION (type);
|
||||
|
@ -46,7 +46,7 @@ range_false (tree type)
|
|||
|
||||
// Return an irange that covers both true and false.
|
||||
|
||||
static inline int_range<1>
|
||||
inline int_range<1>
|
||||
range_true_and_false (tree type)
|
||||
{
|
||||
unsigned prec = TYPE_PRECISION (type);
|
||||
|
|
|
@ -375,7 +375,7 @@ extern void (*include_callback) (const char *);
|
|||
|
||||
/* Read the next character from the MD file. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
read_char (void)
|
||||
{
|
||||
return md_reader_ptr->read_char ();
|
||||
|
@ -383,7 +383,7 @@ read_char (void)
|
|||
|
||||
/* Put back CH, which was the last character read from the MD file. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
unread_char (int ch)
|
||||
{
|
||||
md_reader_ptr->unread_char (ch);
|
||||
|
|
|
@ -76,7 +76,7 @@ struct operand_alternative
|
|||
/* Return the class for operand I of alternative ALT, taking matching
|
||||
constraints into account. */
|
||||
|
||||
static inline enum reg_class
|
||||
inline enum reg_class
|
||||
alternative_class (const operand_alternative *alt, int i)
|
||||
{
|
||||
return alt[i].matches >= 0 ? alt[alt[i].matches].cl : alt[i].cl;
|
||||
|
@ -229,7 +229,7 @@ extern bool mode_dependent_address_p (rtx, addr_space_t);
|
|||
|
||||
extern int recog (rtx, rtx_insn *, int *);
|
||||
#ifndef GENERATOR_FILE
|
||||
static inline int recog_memoized (rtx_insn *insn);
|
||||
inline int recog_memoized (rtx_insn *insn);
|
||||
#endif
|
||||
extern void add_clobbers (rtx, int);
|
||||
extern int added_clobbers_hard_reg_p (int);
|
||||
|
@ -266,7 +266,7 @@ extern void copy_frame_info_to_split_insn (rtx_insn *, rtx_insn *);
|
|||
The automatically-generated function `recog' is normally called
|
||||
through this one. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
recog_memoized (rtx_insn *insn)
|
||||
{
|
||||
if (INSN_CODE (insn) < 0)
|
||||
|
@ -277,7 +277,7 @@ recog_memoized (rtx_insn *insn)
|
|||
|
||||
/* Skip chars until the next ',' or the end of the string. This is
|
||||
useful to skip alternatives in a constraint string. */
|
||||
static inline const char *
|
||||
inline const char *
|
||||
skip_alternative (const char *p)
|
||||
{
|
||||
const char *r = p;
|
||||
|
|
22
gcc/regs.h
22
gcc/regs.h
|
@ -64,7 +64,7 @@ struct regstat_n_sets_and_refs_t
|
|||
extern struct regstat_n_sets_and_refs_t *regstat_n_sets_and_refs;
|
||||
|
||||
/* Indexed by n, gives number of times (REG n) is used or set. */
|
||||
static inline int
|
||||
inline int
|
||||
REG_N_REFS (int regno)
|
||||
{
|
||||
return regstat_n_sets_and_refs[regno].refs;
|
||||
|
@ -75,7 +75,7 @@ REG_N_REFS (int regno)
|
|||
#define INC_REG_N_REFS(N,V) (regstat_n_sets_and_refs[N].refs += V)
|
||||
|
||||
/* Indexed by n, gives number of times (REG n) is set. */
|
||||
static inline int
|
||||
inline int
|
||||
REG_N_SETS (int regno)
|
||||
{
|
||||
return regstat_n_sets_and_refs[regno].sets;
|
||||
|
@ -266,7 +266,7 @@ hard_regno_nregs (unsigned int regno, machine_mode mode)
|
|||
/* Return an exclusive upper bound on the registers occupied by hard
|
||||
register (reg:MODE REGNO). */
|
||||
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
end_hard_regno (machine_mode mode, unsigned int regno)
|
||||
{
|
||||
return regno + hard_regno_nregs (regno, mode);
|
||||
|
@ -275,7 +275,7 @@ end_hard_regno (machine_mode mode, unsigned int regno)
|
|||
/* Add to REGS all the registers required to store a value of mode MODE
|
||||
in register REGNO. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
add_to_hard_reg_set (HARD_REG_SET *regs, machine_mode mode,
|
||||
unsigned int regno)
|
||||
{
|
||||
|
@ -289,7 +289,7 @@ add_to_hard_reg_set (HARD_REG_SET *regs, machine_mode mode,
|
|||
|
||||
/* Likewise, but remove the registers. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
remove_from_hard_reg_set (HARD_REG_SET *regs, machine_mode mode,
|
||||
unsigned int regno)
|
||||
{
|
||||
|
@ -303,7 +303,7 @@ remove_from_hard_reg_set (HARD_REG_SET *regs, machine_mode mode,
|
|||
|
||||
/* Return true if REGS contains the whole of (reg:MODE REGNO). */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
in_hard_reg_set_p (const_hard_reg_set regs, machine_mode mode,
|
||||
unsigned int regno)
|
||||
{
|
||||
|
@ -328,7 +328,7 @@ in_hard_reg_set_p (const_hard_reg_set regs, machine_mode mode,
|
|||
|
||||
/* Return true if (reg:MODE REGNO) includes an element of REGS. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
overlaps_hard_reg_set_p (const_hard_reg_set regs, machine_mode mode,
|
||||
unsigned int regno)
|
||||
{
|
||||
|
@ -348,7 +348,7 @@ overlaps_hard_reg_set_p (const_hard_reg_set regs, machine_mode mode,
|
|||
/* Like add_to_hard_reg_set, but use a REGNO/NREGS range instead of
|
||||
REGNO and MODE. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
add_range_to_hard_reg_set (HARD_REG_SET *regs, unsigned int regno,
|
||||
int nregs)
|
||||
{
|
||||
|
@ -358,7 +358,7 @@ add_range_to_hard_reg_set (HARD_REG_SET *regs, unsigned int regno,
|
|||
|
||||
/* Likewise, but remove the registers. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
remove_range_from_hard_reg_set (HARD_REG_SET *regs, unsigned int regno,
|
||||
int nregs)
|
||||
{
|
||||
|
@ -368,7 +368,7 @@ remove_range_from_hard_reg_set (HARD_REG_SET *regs, unsigned int regno,
|
|||
|
||||
/* Like overlaps_hard_reg_set_p, but use a REGNO/NREGS range instead of
|
||||
REGNO and MODE. */
|
||||
static inline bool
|
||||
inline bool
|
||||
range_overlaps_hard_reg_set_p (const_hard_reg_set set, unsigned regno,
|
||||
int nregs)
|
||||
{
|
||||
|
@ -380,7 +380,7 @@ range_overlaps_hard_reg_set_p (const_hard_reg_set set, unsigned regno,
|
|||
|
||||
/* Like in_hard_reg_set_p, but use a REGNO/NREGS range instead of
|
||||
REGNO and MODE. */
|
||||
static inline bool
|
||||
inline bool
|
||||
range_in_hard_reg_set_p (const_hard_reg_set set, unsigned regno, int nregs)
|
||||
{
|
||||
while (nregs-- > 0)
|
||||
|
|
|
@ -39,7 +39,7 @@ extern rtx_subrtx_bound_info rtx_nonconst_subrtx_bounds[];
|
|||
|
||||
/* Return true if CODE has no subrtxes. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
leaf_code_p (enum rtx_code code)
|
||||
{
|
||||
return rtx_all_subrtx_bounds[code].count == 0;
|
||||
|
|
34
gcc/rtl.h
34
gcc/rtl.h
|
@ -1895,7 +1895,7 @@ inline void rtx_jump_insn::set_jump_target (rtx_code_label *target)
|
|||
#define LABEL_REFS(LABEL) XCEXP (LABEL, 3, CODE_LABEL)
|
||||
|
||||
/* Get the label that a LABEL_REF references. */
|
||||
static inline rtx_insn *
|
||||
inline rtx_insn *
|
||||
label_ref_label (const_rtx ref)
|
||||
{
|
||||
return as_a<rtx_insn *> (XCEXP (ref, 0, LABEL_REF));
|
||||
|
@ -1903,7 +1903,7 @@ label_ref_label (const_rtx ref)
|
|||
|
||||
/* Set the label that LABEL_REF ref refers to. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_label_ref_label (rtx ref, rtx_insn *label)
|
||||
{
|
||||
XCEXP (ref, 0, LABEL_REF) = label;
|
||||
|
@ -1926,14 +1926,14 @@ set_label_ref_label (rtx ref, rtx_insn *label)
|
|||
(RTL_FLAG_CHECK1 ("ORIGINAL_REGNO", (RTX), REG)->u2.original_regno)
|
||||
|
||||
/* Force the REGNO macro to only be used on the lhs. */
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
rhs_regno (const_rtx x)
|
||||
{
|
||||
return REG_CHECK (x)->regno;
|
||||
}
|
||||
|
||||
/* Return the final register in REG X plus one. */
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
END_REGNO (const_rtx x)
|
||||
{
|
||||
return REGNO (x) + REG_NREGS (x);
|
||||
|
@ -1941,7 +1941,7 @@ END_REGNO (const_rtx x)
|
|||
|
||||
/* Change the REGNO and REG_NREGS of REG X to the specified values,
|
||||
bypassing the df machinery. */
|
||||
static inline void
|
||||
inline void
|
||||
set_regno_raw (rtx x, unsigned int regno, unsigned int nregs)
|
||||
{
|
||||
reg_info *reg = REG_CHECK (x);
|
||||
|
@ -2058,7 +2058,7 @@ const_vector_encoded_nelts (const_rtx x)
|
|||
|
||||
/* Return true if CODE always has VOIDmode. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
always_void_p (enum rtx_code code)
|
||||
{
|
||||
return code == SET;
|
||||
|
@ -2073,7 +2073,7 @@ struct full_rtx_costs
|
|||
};
|
||||
|
||||
/* Initialize a full_rtx_costs structure C to the maximum cost. */
|
||||
static inline void
|
||||
inline void
|
||||
init_costs_to_max (struct full_rtx_costs *c)
|
||||
{
|
||||
c->speed = MAX_COST;
|
||||
|
@ -2081,7 +2081,7 @@ init_costs_to_max (struct full_rtx_costs *c)
|
|||
}
|
||||
|
||||
/* Initialize a full_rtx_costs structure C to zero cost. */
|
||||
static inline void
|
||||
inline void
|
||||
init_costs_to_zero (struct full_rtx_costs *c)
|
||||
{
|
||||
c->speed = 0;
|
||||
|
@ -2090,7 +2090,7 @@ init_costs_to_zero (struct full_rtx_costs *c)
|
|||
|
||||
/* Compare two full_rtx_costs structures A and B, returning true
|
||||
if A < B when optimizing for speed. */
|
||||
static inline bool
|
||||
inline bool
|
||||
costs_lt_p (struct full_rtx_costs *a, struct full_rtx_costs *b,
|
||||
bool speed)
|
||||
{
|
||||
|
@ -2104,7 +2104,7 @@ costs_lt_p (struct full_rtx_costs *a, struct full_rtx_costs *b,
|
|||
|
||||
/* Increase both members of the full_rtx_costs structure C by the
|
||||
cost of N insns. */
|
||||
static inline void
|
||||
inline void
|
||||
costs_add_n_insns (struct full_rtx_costs *c, int n)
|
||||
{
|
||||
c->speed += COSTS_N_INSNS (n);
|
||||
|
@ -2168,7 +2168,7 @@ subreg_shape::unique_id () const
|
|||
|
||||
/* Return the shape of a SUBREG rtx. */
|
||||
|
||||
static inline subreg_shape
|
||||
inline subreg_shape
|
||||
shape_of_subreg (const_rtx x)
|
||||
{
|
||||
return subreg_shape (GET_MODE (SUBREG_REG (x)),
|
||||
|
@ -2919,7 +2919,7 @@ extern int currently_expanding_to_rtl;
|
|||
/* Return the cost of SET X. SPEED_P is true if optimizing for speed
|
||||
rather than size. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
set_rtx_cost (rtx x, bool speed_p)
|
||||
{
|
||||
return rtx_cost (x, VOIDmode, INSN, 4, speed_p);
|
||||
|
@ -2927,7 +2927,7 @@ set_rtx_cost (rtx x, bool speed_p)
|
|||
|
||||
/* Like set_rtx_cost, but return both the speed and size costs in C. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
get_full_set_rtx_cost (rtx x, struct full_rtx_costs *c)
|
||||
{
|
||||
get_full_rtx_cost (x, VOIDmode, INSN, 4, c);
|
||||
|
@ -2937,7 +2937,7 @@ get_full_set_rtx_cost (rtx x, struct full_rtx_costs *c)
|
|||
of a register move. SPEED_P is true if optimizing for speed rather
|
||||
than size. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
set_src_cost (rtx x, machine_mode mode, bool speed_p)
|
||||
{
|
||||
return rtx_cost (x, mode, SET, 1, speed_p);
|
||||
|
@ -2945,7 +2945,7 @@ set_src_cost (rtx x, machine_mode mode, bool speed_p)
|
|||
|
||||
/* Like set_src_cost, but return both the speed and size costs in C. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
get_full_set_src_cost (rtx x, machine_mode mode, struct full_rtx_costs *c)
|
||||
{
|
||||
get_full_rtx_cost (x, mode, SET, 1, c);
|
||||
|
@ -3947,7 +3947,7 @@ extern struct target_rtl *this_target_rtl;
|
|||
|
||||
#ifndef GENERATOR_FILE
|
||||
/* Return the attributes of a MEM rtx. */
|
||||
static inline const class mem_attrs *
|
||||
inline const class mem_attrs *
|
||||
get_mem_attrs (const_rtx x)
|
||||
{
|
||||
class mem_attrs *attrs;
|
||||
|
@ -3996,7 +3996,7 @@ extern rtx gen_rtx_VAR_LOCATION (machine_mode, tree, rtx,
|
|||
#ifdef GENERATOR_FILE
|
||||
#define PUT_MODE(RTX, MODE) PUT_MODE_RAW (RTX, MODE)
|
||||
#else
|
||||
static inline void
|
||||
inline void
|
||||
PUT_MODE (rtx x, machine_mode mode)
|
||||
{
|
||||
if (REG_P (x))
|
||||
|
|
|
@ -98,7 +98,7 @@ struct simple_bitmap_def
|
|||
|
||||
/* Verify that access at INDEX in bitmap MAP is valid. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bitmap_check_index (const_sbitmap map, int index)
|
||||
{
|
||||
gcc_checking_assert (index >= 0);
|
||||
|
@ -107,14 +107,14 @@ bitmap_check_index (const_sbitmap map, int index)
|
|||
|
||||
/* Verify that bitmaps A and B have same size. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bitmap_check_sizes (const_sbitmap a, const_sbitmap b)
|
||||
{
|
||||
gcc_checking_assert (a->n_bits == b->n_bits);
|
||||
}
|
||||
|
||||
/* Test if bit number bitno in the bitmap is set. */
|
||||
static inline bool
|
||||
inline bool
|
||||
bitmap_bit_p (const_sbitmap map, int bitno)
|
||||
{
|
||||
bitmap_check_index (map, bitno);
|
||||
|
@ -127,7 +127,7 @@ bitmap_bit_p (const_sbitmap map, int bitno)
|
|||
/* Set bit number BITNO in the sbitmap MAP.
|
||||
Return true if the bit changed. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
bitmap_set_bit (sbitmap map, int bitno)
|
||||
{
|
||||
bitmap_check_index (map, bitno);
|
||||
|
@ -143,7 +143,7 @@ bitmap_set_bit (sbitmap map, int bitno)
|
|||
/* Reset bit number BITNO in the sbitmap MAP.
|
||||
Return true if the bit changed. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
bitmap_clear_bit (sbitmap map, int bitno)
|
||||
{
|
||||
bitmap_check_index (map, bitno);
|
||||
|
@ -177,7 +177,7 @@ struct sbitmap_iterator {
|
|||
/* Initialize the iterator I with sbitmap BMP and the initial index
|
||||
MIN. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bmp_iter_set_init (sbitmap_iterator *i, const_sbitmap bmp,
|
||||
unsigned int min, unsigned *bit_no ATTRIBUTE_UNUSED)
|
||||
{
|
||||
|
@ -197,7 +197,7 @@ bmp_iter_set_init (sbitmap_iterator *i, const_sbitmap bmp,
|
|||
to the index of the bit to be visited. Otherwise, return
|
||||
false. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
bmp_iter_set (sbitmap_iterator *i, unsigned int *n)
|
||||
{
|
||||
/* Skip words that are zeros. */
|
||||
|
@ -223,7 +223,7 @@ bmp_iter_set (sbitmap_iterator *i, unsigned int *n)
|
|||
|
||||
/* Advance to the next bit. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bmp_iter_next (sbitmap_iterator *i, unsigned *bit_no ATTRIBUTE_UNUSED)
|
||||
{
|
||||
i->word >>= 1;
|
||||
|
|
|
@ -87,7 +87,7 @@ extern struct common_sched_info_def *common_sched_info;
|
|||
extern const struct common_sched_info_def haifa_common_sched_info;
|
||||
|
||||
/* Return true if selective scheduling pass is working. */
|
||||
static inline bool
|
||||
inline bool
|
||||
sel_sched_p (void)
|
||||
{
|
||||
return common_sched_info->sched_pass_id == SCHED_SEL_PASS;
|
||||
|
@ -1588,7 +1588,7 @@ typedef struct _sd_iterator sd_iterator_def;
|
|||
struct _deps_link. */
|
||||
|
||||
/* Return initialized iterator. */
|
||||
static inline sd_iterator_def
|
||||
inline sd_iterator_def
|
||||
sd_iterator_start (rtx insn, sd_list_types_def types)
|
||||
{
|
||||
/* Some dep_link a pointer to which will return NULL. */
|
||||
|
@ -1607,7 +1607,7 @@ sd_iterator_start (rtx insn, sd_list_types_def types)
|
|||
}
|
||||
|
||||
/* Return the current element. */
|
||||
static inline bool
|
||||
inline bool
|
||||
sd_iterator_cond (sd_iterator_def *it_ptr, dep_t *dep_ptr)
|
||||
{
|
||||
while (true)
|
||||
|
@ -1645,7 +1645,7 @@ sd_iterator_cond (sd_iterator_def *it_ptr, dep_t *dep_ptr)
|
|||
}
|
||||
|
||||
/* Advance iterator. */
|
||||
static inline void
|
||||
inline void
|
||||
sd_iterator_next (sd_iterator_def *it_ptr)
|
||||
{
|
||||
it_ptr->linkp = &DEP_LINK_NEXT (*it_ptr->linkp);
|
||||
|
|
|
@ -359,13 +359,13 @@ struct _list_node
|
|||
we can't move them in sel-sched-ir.cc. */
|
||||
extern object_allocator<_list_node> sched_lists_pool;
|
||||
|
||||
static inline _list_t
|
||||
inline _list_t
|
||||
_list_alloc (void)
|
||||
{
|
||||
return sched_lists_pool.allocate ();
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
_list_add (_list_t *lp)
|
||||
{
|
||||
_list_t l = _list_alloc ();
|
||||
|
@ -374,7 +374,7 @@ _list_add (_list_t *lp)
|
|||
*lp = l;
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
_list_remove_nofree (_list_t *lp)
|
||||
{
|
||||
_list_t n = *lp;
|
||||
|
@ -382,7 +382,7 @@ _list_remove_nofree (_list_t *lp)
|
|||
*lp = _LIST_NEXT (n);
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
_list_remove (_list_t *lp)
|
||||
{
|
||||
_list_t n = *lp;
|
||||
|
@ -391,7 +391,7 @@ _list_remove (_list_t *lp)
|
|||
sched_lists_pool.remove (n);
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
_list_clear (_list_t *l)
|
||||
{
|
||||
while (*l)
|
||||
|
@ -412,7 +412,7 @@ struct _list_iterator
|
|||
bool removed_p;
|
||||
};
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
_list_iter_start (_list_iterator *ip, _list_t *lp, bool can_remove_p)
|
||||
{
|
||||
ip->lp = lp;
|
||||
|
@ -420,7 +420,7 @@ _list_iter_start (_list_iterator *ip, _list_t *lp, bool can_remove_p)
|
|||
ip->removed_p = false;
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
_list_iter_next (_list_iterator *ip)
|
||||
{
|
||||
if (!ip->removed_p)
|
||||
|
@ -429,7 +429,7 @@ _list_iter_next (_list_iterator *ip)
|
|||
ip->removed_p = false;
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
_list_iter_remove (_list_iterator *ip)
|
||||
{
|
||||
gcc_assert (!ip->removed_p && ip->can_remove_p);
|
||||
|
@ -437,7 +437,7 @@ _list_iter_remove (_list_iterator *ip)
|
|||
ip->removed_p = true;
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
_list_iter_remove_nofree (_list_iterator *ip)
|
||||
{
|
||||
gcc_assert (!ip->removed_p && ip->can_remove_p);
|
||||
|
@ -460,7 +460,7 @@ _list_iter_remove_nofree (_list_iterator *ip)
|
|||
|
||||
/* _xlist_t functions. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
_xlist_add (_xlist_t *lp, rtx x)
|
||||
{
|
||||
_list_add (lp);
|
||||
|
@ -470,7 +470,7 @@ _xlist_add (_xlist_t *lp, rtx x)
|
|||
#define _xlist_remove(LP) (_list_remove (LP))
|
||||
#define _xlist_clear(LP) (_list_clear (LP))
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
_xlist_is_in_p (_xlist_t l, rtx x)
|
||||
{
|
||||
while (l)
|
||||
|
@ -484,7 +484,7 @@ _xlist_is_in_p (_xlist_t l, rtx x)
|
|||
}
|
||||
|
||||
/* Used through _FOR_EACH. */
|
||||
static inline bool
|
||||
inline bool
|
||||
_list_iter_cond_x (_xlist_t l, rtx *xp)
|
||||
{
|
||||
if (l)
|
||||
|
@ -505,7 +505,7 @@ typedef _list_iterator _xlist_iterator;
|
|||
|
||||
/* ilist_t functions. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
ilist_add (ilist_t *lp, insn_t insn)
|
||||
{
|
||||
_list_add (lp);
|
||||
|
@ -514,7 +514,7 @@ ilist_add (ilist_t *lp, insn_t insn)
|
|||
#define ilist_remove(LP) (_list_remove (LP))
|
||||
#define ilist_clear(LP) (_list_clear (LP))
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ilist_is_in_p (ilist_t l, insn_t insn)
|
||||
{
|
||||
while (l)
|
||||
|
@ -528,7 +528,7 @@ ilist_is_in_p (ilist_t l, insn_t insn)
|
|||
}
|
||||
|
||||
/* Used through _FOR_EACH. */
|
||||
static inline bool
|
||||
inline bool
|
||||
_list_iter_cond_insn (ilist_t l, insn_t *ip)
|
||||
{
|
||||
if (l)
|
||||
|
@ -574,7 +574,7 @@ typedef _list_iterator def_list_iterator;
|
|||
|
||||
#define FOR_EACH_DEF(DEF, I, DEF_LIST) _FOR_EACH (def, (DEF), (I), (DEF_LIST))
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
_list_iter_cond_def (def_list_t def_list, def_t *def)
|
||||
{
|
||||
if (def_list)
|
||||
|
@ -1040,7 +1040,7 @@ extern bool sel_bb_empty_p (basic_block);
|
|||
extern bool in_current_region_p (basic_block);
|
||||
|
||||
/* True when BB is a header of the inner loop. */
|
||||
static inline bool
|
||||
inline bool
|
||||
inner_loop_header_p (basic_block bb)
|
||||
{
|
||||
class loop *inner_loop;
|
||||
|
@ -1068,7 +1068,7 @@ inner_loop_header_p (basic_block bb)
|
|||
}
|
||||
|
||||
/* Return exit edges of LOOP, filtering out edges with the same dest bb. */
|
||||
static inline vec<edge>
|
||||
inline vec<edge>
|
||||
get_loop_exit_edges_unique_dests (const class loop *loop)
|
||||
{
|
||||
vec<edge> edges = vNULL;
|
||||
|
@ -1122,7 +1122,7 @@ sel_bb_empty_or_nop_p (basic_block bb)
|
|||
traverse all of them and if any of them turns out to be another loop header
|
||||
(after skipping empty BBs), add its loop exits to the resulting vector
|
||||
as well. */
|
||||
static inline vec<edge>
|
||||
inline vec<edge>
|
||||
get_all_loop_exits (basic_block bb)
|
||||
{
|
||||
vec<edge> exits = vNULL;
|
||||
|
@ -1212,7 +1212,7 @@ get_all_loop_exits (basic_block bb)
|
|||
|
||||
/* We need to return a succ_iterator to avoid 'unitialized' warning
|
||||
during bootstrap. */
|
||||
static inline succ_iterator
|
||||
inline succ_iterator
|
||||
_succ_iter_start (insn_t *succp, insn_t insn, int flags)
|
||||
{
|
||||
succ_iterator i;
|
||||
|
@ -1249,7 +1249,7 @@ _succ_iter_start (insn_t *succp, insn_t insn, int flags)
|
|||
return i;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
_succ_iter_cond (succ_iterator *ip, insn_t *succp, insn_t insn,
|
||||
bool check (edge, succ_iterator *))
|
||||
{
|
||||
|
@ -1354,7 +1354,7 @@ _succ_iter_cond (succ_iterator *ip, insn_t *succp, insn_t insn,
|
|||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
_succ_iter_next (succ_iterator *ip)
|
||||
{
|
||||
gcc_assert (!ip->e2 || ip->e1);
|
||||
|
@ -1367,7 +1367,7 @@ _succ_iter_next (succ_iterator *ip)
|
|||
empty blocks. When E2P is not null, the resulting edge is written there.
|
||||
FLAGS are used to specify whether back edges and out-of-region edges
|
||||
should be considered. */
|
||||
static inline bool
|
||||
inline bool
|
||||
_eligible_successor_edge_p (edge e1, succ_iterator *ip)
|
||||
{
|
||||
edge e2 = e1;
|
||||
|
@ -1476,7 +1476,7 @@ _eligible_successor_edge_p (edge e1, succ_iterator *ip)
|
|||
#define SUCC_ITER_EDGE(ITER) ((ITER)->e1)
|
||||
|
||||
/* Return the next block of BB not running into inconsistencies. */
|
||||
static inline basic_block
|
||||
inline basic_block
|
||||
bb_next_bb (basic_block bb)
|
||||
{
|
||||
switch (EDGE_COUNT (bb->succs))
|
||||
|
|
30
gcc/sese.h
30
gcc/sese.h
|
@ -44,7 +44,7 @@ void dump_sese (const sese_l &);
|
|||
|
||||
/* Get the entry of an sese S. */
|
||||
|
||||
static inline basic_block
|
||||
inline basic_block
|
||||
get_entry_bb (const sese_l &s)
|
||||
{
|
||||
return s.entry->dest;
|
||||
|
@ -52,7 +52,7 @@ get_entry_bb (const sese_l &s)
|
|||
|
||||
/* Get the exit of an sese S. */
|
||||
|
||||
static inline basic_block
|
||||
inline basic_block
|
||||
get_exit_bb (const sese_l &s)
|
||||
{
|
||||
return s.exit->src;
|
||||
|
@ -110,7 +110,7 @@ extern bool sese_trivially_empty_bb_p (basic_block);
|
|||
|
||||
/* The number of parameters in REGION. */
|
||||
|
||||
static inline unsigned
|
||||
inline unsigned
|
||||
sese_nb_params (sese_info_p region)
|
||||
{
|
||||
return region->params.length ();
|
||||
|
@ -119,7 +119,7 @@ sese_nb_params (sese_info_p region)
|
|||
/* Checks whether BB is contained in the region delimited by ENTRY and
|
||||
EXIT blocks. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
bb_in_region (const_basic_block bb, const_basic_block entry, const_basic_block exit)
|
||||
{
|
||||
return dominated_by_p (CDI_DOMINATORS, bb, entry)
|
||||
|
@ -130,7 +130,7 @@ bb_in_region (const_basic_block bb, const_basic_block entry, const_basic_block e
|
|||
/* Checks whether BB is contained in the region delimited by ENTRY and
|
||||
EXIT blocks. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
bb_in_sese_p (basic_block bb, const sese_l &r)
|
||||
{
|
||||
return bb_in_region (bb, r.entry->dest, r.exit->dest);
|
||||
|
@ -138,7 +138,7 @@ bb_in_sese_p (basic_block bb, const sese_l &r)
|
|||
|
||||
/* Returns true when STMT is defined in REGION. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
stmt_in_sese_p (gimple *stmt, const sese_l &r)
|
||||
{
|
||||
basic_block bb = gimple_bb (stmt);
|
||||
|
@ -147,7 +147,7 @@ stmt_in_sese_p (gimple *stmt, const sese_l &r)
|
|||
|
||||
/* Returns true when NAME is defined in REGION. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
defined_in_sese_p (tree name, const sese_l &r)
|
||||
{
|
||||
return stmt_in_sese_p (SSA_NAME_DEF_STMT (name), r);
|
||||
|
@ -155,7 +155,7 @@ defined_in_sese_p (tree name, const sese_l &r)
|
|||
|
||||
/* Returns true when LOOP is in REGION. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
loop_in_sese_p (class loop *loop, const sese_l ®ion)
|
||||
{
|
||||
return (bb_in_sese_p (loop->header, region)
|
||||
|
@ -185,7 +185,7 @@ loop_in_sese_p (class loop *loop, const sese_l ®ion)
|
|||
loop_1 exists, but is not completely contained in the region -> depth 0
|
||||
loop_2 is completely contained -> depth 1 */
|
||||
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
sese_loop_depth (const sese_l ®ion, loop_p loop)
|
||||
{
|
||||
unsigned int depth = 0;
|
||||
|
@ -212,19 +212,19 @@ extern void set_ifsese_condition (ifsese, tree);
|
|||
extern edge get_true_edge_from_guard_bb (basic_block);
|
||||
extern edge get_false_edge_from_guard_bb (basic_block);
|
||||
|
||||
static inline edge
|
||||
inline edge
|
||||
if_region_entry (ifsese if_region)
|
||||
{
|
||||
return if_region->region->region.entry;
|
||||
}
|
||||
|
||||
static inline edge
|
||||
inline edge
|
||||
if_region_exit (ifsese if_region)
|
||||
{
|
||||
return if_region->region->region.exit;
|
||||
}
|
||||
|
||||
static inline basic_block
|
||||
inline basic_block
|
||||
if_region_get_condition_block (ifsese if_region)
|
||||
{
|
||||
return if_region_entry (if_region)->dest;
|
||||
|
@ -272,7 +272,7 @@ typedef struct gimple_poly_bb
|
|||
|
||||
/* Return the innermost loop that contains the basic block GBB. */
|
||||
|
||||
static inline class loop *
|
||||
inline class loop *
|
||||
gbb_loop (gimple_poly_bb_p gbb)
|
||||
{
|
||||
return GBB_BB (gbb)->loop_father;
|
||||
|
@ -281,7 +281,7 @@ gbb_loop (gimple_poly_bb_p gbb)
|
|||
/* Returns the gimple loop, that corresponds to the loop_iterator_INDEX.
|
||||
If there is no corresponding gimple loop, we return NULL. */
|
||||
|
||||
static inline loop_p
|
||||
inline loop_p
|
||||
gbb_loop_at_index (gimple_poly_bb_p gbb, sese_l ®ion, int index)
|
||||
{
|
||||
loop_p loop = gbb_loop (gbb);
|
||||
|
@ -297,7 +297,7 @@ gbb_loop_at_index (gimple_poly_bb_p gbb, sese_l ®ion, int index)
|
|||
|
||||
/* The number of common loops in REGION for GBB1 and GBB2. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
nb_common_loops (sese_l ®ion, gimple_poly_bb_p gbb1, gimple_poly_bb_p gbb2)
|
||||
{
|
||||
loop_p l1 = gbb_loop (gbb1);
|
||||
|
|
|
@ -109,7 +109,7 @@ extern bool sparseset_equal_p (sparseset, sparseset);
|
|||
/* Operation: S = {}
|
||||
Clear the set of all elements. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
sparseset_clear (sparseset s)
|
||||
{
|
||||
s->members = 0;
|
||||
|
@ -118,7 +118,7 @@ sparseset_clear (sparseset s)
|
|||
|
||||
/* Return the number of elements currently in the set. */
|
||||
|
||||
static inline SPARSESET_ELT_TYPE
|
||||
inline SPARSESET_ELT_TYPE
|
||||
sparseset_cardinality (sparseset s)
|
||||
{
|
||||
return s->members;
|
||||
|
@ -126,7 +126,7 @@ sparseset_cardinality (sparseset s)
|
|||
|
||||
/* Return the maximum number of elements this set can hold. */
|
||||
|
||||
static inline SPARSESET_ELT_TYPE
|
||||
inline SPARSESET_ELT_TYPE
|
||||
sparseset_size (sparseset s)
|
||||
{
|
||||
return s->size;
|
||||
|
@ -134,7 +134,7 @@ sparseset_size (sparseset s)
|
|||
|
||||
/* Return true if e is a member of the set S, otherwise return false. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
sparseset_bit_p (sparseset s, SPARSESET_ELT_TYPE e)
|
||||
{
|
||||
SPARSESET_ELT_TYPE idx;
|
||||
|
@ -149,7 +149,7 @@ sparseset_bit_p (sparseset s, SPARSESET_ELT_TYPE e)
|
|||
/* Low level insertion routine not meant for use outside of sparseset.[ch].
|
||||
Assumes E is valid and not already a member of the set S. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
sparseset_insert_bit (sparseset s, SPARSESET_ELT_TYPE e, SPARSESET_ELT_TYPE idx)
|
||||
{
|
||||
s->sparse[e] = idx;
|
||||
|
@ -159,7 +159,7 @@ sparseset_insert_bit (sparseset s, SPARSESET_ELT_TYPE e, SPARSESET_ELT_TYPE idx)
|
|||
/* Operation: S = S + {e}
|
||||
Insert E into the set S, if it isn't already a member. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
sparseset_set_bit (sparseset s, SPARSESET_ELT_TYPE e)
|
||||
{
|
||||
if (!sparseset_bit_p (s, e))
|
||||
|
@ -168,7 +168,7 @@ sparseset_set_bit (sparseset s, SPARSESET_ELT_TYPE e)
|
|||
|
||||
/* Return and remove the last member added to the set S. */
|
||||
|
||||
static inline SPARSESET_ELT_TYPE
|
||||
inline SPARSESET_ELT_TYPE
|
||||
sparseset_pop (sparseset s)
|
||||
{
|
||||
SPARSESET_ELT_TYPE mem = s->members;
|
||||
|
@ -179,7 +179,7 @@ sparseset_pop (sparseset s)
|
|||
return s->dense[s->members];
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
sparseset_iter_init (sparseset s)
|
||||
{
|
||||
s->iter = 0;
|
||||
|
@ -187,7 +187,7 @@ sparseset_iter_init (sparseset s)
|
|||
s->iterating = true;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
sparseset_iter_p (sparseset s)
|
||||
{
|
||||
if (s->iterating && s->iter < s->members)
|
||||
|
@ -196,13 +196,13 @@ sparseset_iter_p (sparseset s)
|
|||
return s->iterating = false;
|
||||
}
|
||||
|
||||
static inline SPARSESET_ELT_TYPE
|
||||
inline SPARSESET_ELT_TYPE
|
||||
sparseset_iter_elm (sparseset s)
|
||||
{
|
||||
return s->dense[s->iter];
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
sparseset_iter_next (sparseset s)
|
||||
{
|
||||
s->iter += s->iter_inc;
|
||||
|
|
|
@ -78,7 +78,7 @@ struct imm_use_iterator
|
|||
(void) ((DEST) = next_readonly_imm_use (&(ITER))))
|
||||
|
||||
/* Forward declare for use in the class below. */
|
||||
static inline void end_imm_use_stmt_traverse (imm_use_iterator *);
|
||||
inline void end_imm_use_stmt_traverse (imm_use_iterator *);
|
||||
|
||||
/* arrange to automatically call, upon descruction, end_imm_use_stmt_traverse
|
||||
with a given pointer to imm_use_iterator. */
|
||||
|
@ -246,7 +246,7 @@ struct ssa_op_iter
|
|||
|
||||
|
||||
/* Delink an immediate_uses node from its chain. */
|
||||
static inline void
|
||||
inline void
|
||||
delink_imm_use (ssa_use_operand_t *linknode)
|
||||
{
|
||||
/* Return if this node is not in a list. */
|
||||
|
@ -260,7 +260,7 @@ delink_imm_use (ssa_use_operand_t *linknode)
|
|||
}
|
||||
|
||||
/* Link ssa_imm_use node LINKNODE into the chain for LIST. */
|
||||
static inline void
|
||||
inline void
|
||||
link_imm_use_to_list (ssa_use_operand_t *linknode, ssa_use_operand_t *list)
|
||||
{
|
||||
/* Link the new node at the head of the list. If we are in the process of
|
||||
|
@ -272,7 +272,7 @@ link_imm_use_to_list (ssa_use_operand_t *linknode, ssa_use_operand_t *list)
|
|||
}
|
||||
|
||||
/* Link ssa_imm_use node LINKNODE into the chain for DEF. */
|
||||
static inline void
|
||||
inline void
|
||||
link_imm_use (ssa_use_operand_t *linknode, tree def)
|
||||
{
|
||||
ssa_use_operand_t *root;
|
||||
|
@ -289,7 +289,7 @@ link_imm_use (ssa_use_operand_t *linknode, tree def)
|
|||
}
|
||||
|
||||
/* Set the value of a use pointed to by USE to VAL. */
|
||||
static inline void
|
||||
inline void
|
||||
set_ssa_use_from_ptr (use_operand_p use, tree val)
|
||||
{
|
||||
delink_imm_use (use);
|
||||
|
@ -299,7 +299,7 @@ set_ssa_use_from_ptr (use_operand_p use, tree val)
|
|||
|
||||
/* Link ssa_imm_use node LINKNODE into the chain for DEF, with use occurring
|
||||
in STMT. */
|
||||
static inline void
|
||||
inline void
|
||||
link_imm_use_stmt (ssa_use_operand_t *linknode, tree def, gimple *stmt)
|
||||
{
|
||||
if (stmt)
|
||||
|
@ -310,7 +310,7 @@ link_imm_use_stmt (ssa_use_operand_t *linknode, tree def, gimple *stmt)
|
|||
}
|
||||
|
||||
/* Relink a new node in place of an old node in the list. */
|
||||
static inline void
|
||||
inline void
|
||||
relink_imm_use (ssa_use_operand_t *node, ssa_use_operand_t *old)
|
||||
{
|
||||
/* The node one had better be in the same list. */
|
||||
|
@ -328,7 +328,7 @@ relink_imm_use (ssa_use_operand_t *node, ssa_use_operand_t *old)
|
|||
|
||||
/* Relink ssa_imm_use node LINKNODE into the chain for OLD, with use occurring
|
||||
in STMT. */
|
||||
static inline void
|
||||
inline void
|
||||
relink_imm_use_stmt (ssa_use_operand_t *linknode, ssa_use_operand_t *old,
|
||||
gimple *stmt)
|
||||
{
|
||||
|
@ -341,14 +341,14 @@ relink_imm_use_stmt (ssa_use_operand_t *linknode, ssa_use_operand_t *old,
|
|||
|
||||
|
||||
/* Return true is IMM has reached the end of the immediate use list. */
|
||||
static inline bool
|
||||
inline bool
|
||||
end_readonly_imm_use_p (const imm_use_iterator *imm)
|
||||
{
|
||||
return (imm->imm_use == imm->end_p);
|
||||
}
|
||||
|
||||
/* Initialize iterator IMM to process the list for VAR. */
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
first_readonly_imm_use (imm_use_iterator *imm, tree var)
|
||||
{
|
||||
imm->end_p = &(SSA_NAME_IMM_USE_NODE (var));
|
||||
|
@ -360,7 +360,7 @@ first_readonly_imm_use (imm_use_iterator *imm, tree var)
|
|||
}
|
||||
|
||||
/* Bump IMM to the next use in the list. */
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
next_readonly_imm_use (imm_use_iterator *imm)
|
||||
{
|
||||
use_operand_p old = imm->imm_use;
|
||||
|
@ -383,7 +383,7 @@ next_readonly_imm_use (imm_use_iterator *imm)
|
|||
|
||||
|
||||
/* Return true if VAR has no nondebug uses. */
|
||||
static inline bool
|
||||
inline bool
|
||||
has_zero_uses (const_tree var)
|
||||
{
|
||||
const ssa_use_operand_t *const head = &(SSA_NAME_IMM_USE_NODE (var));
|
||||
|
@ -397,7 +397,7 @@ has_zero_uses (const_tree var)
|
|||
}
|
||||
|
||||
/* Return true if VAR has a single nondebug use. */
|
||||
static inline bool
|
||||
inline bool
|
||||
has_single_use (const_tree var)
|
||||
{
|
||||
const ssa_use_operand_t *const head = &(SSA_NAME_IMM_USE_NODE (var));
|
||||
|
@ -418,7 +418,7 @@ has_single_use (const_tree var)
|
|||
|
||||
/* If VAR has only a single immediate nondebug use, return true, and
|
||||
set USE_P and STMT to the use pointer and stmt of occurrence. */
|
||||
static inline bool
|
||||
inline bool
|
||||
single_imm_use (const_tree var, use_operand_p *use_p, gimple **stmt)
|
||||
{
|
||||
const ssa_use_operand_t *const ptr = &(SSA_NAME_IMM_USE_NODE (var));
|
||||
|
@ -449,7 +449,7 @@ single_imm_use (const_tree var, use_operand_p *use_p, gimple **stmt)
|
|||
}
|
||||
|
||||
/* Return the number of nondebug immediate uses of VAR. */
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
num_imm_uses (const_tree var)
|
||||
{
|
||||
const ssa_use_operand_t *const start = &(SSA_NAME_IMM_USE_NODE (var));
|
||||
|
@ -476,14 +476,14 @@ num_imm_uses (const_tree var)
|
|||
SSA operands. */
|
||||
|
||||
/* Return true if PTR is finished iterating. */
|
||||
static inline bool
|
||||
inline bool
|
||||
op_iter_done (const ssa_op_iter *ptr)
|
||||
{
|
||||
return ptr->done;
|
||||
}
|
||||
|
||||
/* Get the next iterator use value for PTR. */
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
op_iter_next_use (ssa_op_iter *ptr)
|
||||
{
|
||||
use_operand_p use_p;
|
||||
|
@ -503,7 +503,7 @@ op_iter_next_use (ssa_op_iter *ptr)
|
|||
}
|
||||
|
||||
/* Get the next iterator def value for PTR. */
|
||||
static inline def_operand_p
|
||||
inline def_operand_p
|
||||
op_iter_next_def (ssa_op_iter *ptr)
|
||||
{
|
||||
gcc_checking_assert (ptr->iter_type == ssa_op_iter_def);
|
||||
|
@ -538,7 +538,7 @@ op_iter_next_def (ssa_op_iter *ptr)
|
|||
}
|
||||
|
||||
/* Get the next iterator tree value for PTR. */
|
||||
static inline tree
|
||||
inline tree
|
||||
op_iter_next_tree (ssa_op_iter *ptr)
|
||||
{
|
||||
tree val;
|
||||
|
@ -582,7 +582,7 @@ op_iter_next_tree (ssa_op_iter *ptr)
|
|||
used to prevent warnings in the compile about might be uninitialized
|
||||
components. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
clear_and_done_ssa_iter (ssa_op_iter *ptr)
|
||||
{
|
||||
ptr->i = 0;
|
||||
|
@ -595,7 +595,7 @@ clear_and_done_ssa_iter (ssa_op_iter *ptr)
|
|||
}
|
||||
|
||||
/* Initialize the iterator PTR to the virtual defs in STMT. */
|
||||
static inline void
|
||||
inline void
|
||||
op_iter_init (ssa_op_iter *ptr, gimple *stmt, int flags)
|
||||
{
|
||||
/* PHI nodes require a different iterator initialization path. We
|
||||
|
@ -640,7 +640,7 @@ op_iter_init (ssa_op_iter *ptr, gimple *stmt, int flags)
|
|||
|
||||
/* Initialize iterator PTR to the use operands in STMT based on FLAGS. Return
|
||||
the first use. */
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
op_iter_init_use (ssa_op_iter *ptr, gimple *stmt, int flags)
|
||||
{
|
||||
gcc_checking_assert ((flags & SSA_OP_ALL_DEFS) == 0
|
||||
|
@ -652,7 +652,7 @@ op_iter_init_use (ssa_op_iter *ptr, gimple *stmt, int flags)
|
|||
|
||||
/* Initialize iterator PTR to the def operands in STMT based on FLAGS. Return
|
||||
the first def. */
|
||||
static inline def_operand_p
|
||||
inline def_operand_p
|
||||
op_iter_init_def (ssa_op_iter *ptr, gimple *stmt, int flags)
|
||||
{
|
||||
gcc_checking_assert ((flags & SSA_OP_ALL_USES) == 0
|
||||
|
@ -664,7 +664,7 @@ op_iter_init_def (ssa_op_iter *ptr, gimple *stmt, int flags)
|
|||
|
||||
/* Initialize iterator PTR to the operands in STMT based on FLAGS. Return
|
||||
the first operand as a tree. */
|
||||
static inline tree
|
||||
inline tree
|
||||
op_iter_init_tree (ssa_op_iter *ptr, gimple *stmt, int flags)
|
||||
{
|
||||
op_iter_init (ptr, stmt, flags);
|
||||
|
@ -675,7 +675,7 @@ op_iter_init_tree (ssa_op_iter *ptr, gimple *stmt, int flags)
|
|||
|
||||
/* If there is a single operand in STMT matching FLAGS, return it. Otherwise
|
||||
return NULL. */
|
||||
static inline tree
|
||||
inline tree
|
||||
single_ssa_tree_operand (gimple *stmt, int flags)
|
||||
{
|
||||
tree var;
|
||||
|
@ -693,7 +693,7 @@ single_ssa_tree_operand (gimple *stmt, int flags)
|
|||
|
||||
/* If there is a single operand in STMT matching FLAGS, return it. Otherwise
|
||||
return NULL. */
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
single_ssa_use_operand (gimple *stmt, int flags)
|
||||
{
|
||||
use_operand_p var;
|
||||
|
@ -710,7 +710,7 @@ single_ssa_use_operand (gimple *stmt, int flags)
|
|||
|
||||
/* Return the single virtual use operand in STMT if present. Otherwise
|
||||
return NULL. */
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
ssa_vuse_operand (gimple *stmt)
|
||||
{
|
||||
if (! gimple_vuse (stmt))
|
||||
|
@ -721,7 +721,7 @@ ssa_vuse_operand (gimple *stmt)
|
|||
|
||||
/* If there is a single operand in STMT matching FLAGS, return it. Otherwise
|
||||
return NULL. */
|
||||
static inline def_operand_p
|
||||
inline def_operand_p
|
||||
single_ssa_def_operand (gimple *stmt, int flags)
|
||||
{
|
||||
def_operand_p var;
|
||||
|
@ -739,7 +739,7 @@ single_ssa_def_operand (gimple *stmt, int flags)
|
|||
|
||||
/* Return true if there are zero operands in STMT matching the type
|
||||
given in FLAGS. */
|
||||
static inline bool
|
||||
inline bool
|
||||
zero_ssa_operands (gimple *stmt, int flags)
|
||||
{
|
||||
ssa_op_iter iter;
|
||||
|
@ -750,7 +750,7 @@ zero_ssa_operands (gimple *stmt, int flags)
|
|||
|
||||
|
||||
/* Return the number of operands matching FLAGS in STMT. */
|
||||
static inline int
|
||||
inline int
|
||||
num_ssa_operands (gimple *stmt, int flags)
|
||||
{
|
||||
ssa_op_iter iter;
|
||||
|
@ -765,7 +765,7 @@ num_ssa_operands (gimple *stmt, int flags)
|
|||
|
||||
/* If there is a single DEF in the PHI node which matches FLAG, return it.
|
||||
Otherwise return NULL_DEF_OPERAND_P. */
|
||||
static inline tree
|
||||
inline tree
|
||||
single_phi_def (gphi *stmt, int flags)
|
||||
{
|
||||
tree def = PHI_RESULT (stmt);
|
||||
|
@ -778,7 +778,7 @@ single_phi_def (gphi *stmt, int flags)
|
|||
|
||||
/* Initialize the iterator PTR for uses matching FLAGS in PHI. FLAGS should
|
||||
be either SSA_OP_USES or SSA_OP_VIRTUAL_USES. */
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
op_iter_init_phiuse (ssa_op_iter *ptr, gphi *phi, int flags)
|
||||
{
|
||||
tree phi_def = gimple_phi_result (phi);
|
||||
|
@ -808,7 +808,7 @@ op_iter_init_phiuse (ssa_op_iter *ptr, gphi *phi, int flags)
|
|||
|
||||
/* Start an iterator for a PHI definition. */
|
||||
|
||||
static inline def_operand_p
|
||||
inline def_operand_p
|
||||
op_iter_init_phidef (ssa_op_iter *ptr, gphi *phi, int flags)
|
||||
{
|
||||
tree phi_def = PHI_RESULT (phi);
|
||||
|
@ -838,7 +838,7 @@ op_iter_init_phidef (ssa_op_iter *ptr, gphi *phi, int flags)
|
|||
|
||||
/* Return true is IMM has reached the end of the immediate use stmt list. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
end_imm_use_stmt_p (const imm_use_iterator *imm)
|
||||
{
|
||||
return (imm->imm_use == imm->end_p);
|
||||
|
@ -847,7 +847,7 @@ end_imm_use_stmt_p (const imm_use_iterator *imm)
|
|||
/* Finished the traverse of an immediate use stmt list IMM by removing the
|
||||
placeholder node from the list. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
end_imm_use_stmt_traverse (imm_use_iterator *imm)
|
||||
{
|
||||
delink_imm_use (&(imm->iter_node));
|
||||
|
@ -859,7 +859,7 @@ end_imm_use_stmt_traverse (imm_use_iterator *imm)
|
|||
currently delimited by HEAD and LAST_P. The new LAST_P value is
|
||||
returned. */
|
||||
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
move_use_after_head (use_operand_p use_p, use_operand_p head,
|
||||
use_operand_p last_p)
|
||||
{
|
||||
|
@ -885,7 +885,7 @@ move_use_after_head (use_operand_p use_p, use_operand_p head,
|
|||
/* This routine will relink all uses with the same stmt as HEAD into the list
|
||||
immediately following HEAD for iterator IMM. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
link_use_stmts_after (use_operand_p head, imm_use_iterator *imm)
|
||||
{
|
||||
use_operand_p use_p;
|
||||
|
@ -925,7 +925,7 @@ link_use_stmts_after (use_operand_p head, imm_use_iterator *imm)
|
|||
}
|
||||
|
||||
/* Initialize IMM to traverse over uses of VAR. Return the first statement. */
|
||||
static inline gimple *
|
||||
inline gimple *
|
||||
first_imm_use_stmt (imm_use_iterator *imm, tree var)
|
||||
{
|
||||
imm->end_p = &(SSA_NAME_IMM_USE_NODE (var));
|
||||
|
@ -950,7 +950,7 @@ first_imm_use_stmt (imm_use_iterator *imm, tree var)
|
|||
|
||||
/* Bump IMM to the next stmt which has a use of var. */
|
||||
|
||||
static inline gimple *
|
||||
inline gimple *
|
||||
next_imm_use_stmt (imm_use_iterator *imm)
|
||||
{
|
||||
imm->imm_use = imm->iter_node.next;
|
||||
|
@ -968,7 +968,7 @@ next_imm_use_stmt (imm_use_iterator *imm)
|
|||
/* This routine will return the first use on the stmt IMM currently refers
|
||||
to. */
|
||||
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
first_imm_use_on_stmt (imm_use_iterator *imm)
|
||||
{
|
||||
imm->next_imm_name = imm->imm_use->next;
|
||||
|
@ -977,7 +977,7 @@ first_imm_use_on_stmt (imm_use_iterator *imm)
|
|||
|
||||
/* Return TRUE if the last use on the stmt IMM refers to has been visited. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
end_imm_use_on_stmt_p (const imm_use_iterator *imm)
|
||||
{
|
||||
return (imm->imm_use == &(imm->iter_node));
|
||||
|
@ -985,7 +985,7 @@ end_imm_use_on_stmt_p (const imm_use_iterator *imm)
|
|||
|
||||
/* Bump to the next use on the stmt IMM refers to, return NULL if done. */
|
||||
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
next_imm_use_on_stmt (imm_use_iterator *imm)
|
||||
{
|
||||
imm->imm_use = imm->next_imm_name;
|
||||
|
@ -999,7 +999,7 @@ next_imm_use_on_stmt (imm_use_iterator *imm)
|
|||
}
|
||||
|
||||
/* Delink all immediate_use information for STMT. */
|
||||
static inline void
|
||||
inline void
|
||||
delink_stmt_imm_use (gimple *stmt)
|
||||
{
|
||||
ssa_op_iter iter;
|
||||
|
|
|
@ -1166,7 +1166,7 @@ extern void fancy_abort (const char *, int, const char *)
|
|||
so does GCC 3.4.x (PR17436). */
|
||||
#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q; TOTYPE _nq;})(X))._nq)
|
||||
#elif defined(__GNUC__)
|
||||
static inline char *
|
||||
inline char *
|
||||
helper_const_non_const_cast (const char *p)
|
||||
{
|
||||
union {
|
||||
|
@ -1308,7 +1308,7 @@ void gcc_stablesort_r (void *, size_t, size_t, sort_r_cmp_fn *, void *data);
|
|||
|
||||
/* Return true if STR string starts with PREFIX. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
startswith (const char *str, const char *prefix)
|
||||
{
|
||||
return strncmp (str, prefix, strlen (prefix)) == 0;
|
||||
|
@ -1316,7 +1316,7 @@ startswith (const char *str, const char *prefix)
|
|||
|
||||
/* Return true if STR string ends with SUFFIX. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
endswith (const char *str, const char *suffix)
|
||||
{
|
||||
size_t str_len = strlen (str);
|
||||
|
|
|
@ -69,7 +69,7 @@ extern class target_globals default_target_globals;
|
|||
extern class target_globals *save_target_globals (void);
|
||||
extern class target_globals *save_target_globals_default_opts (void);
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
restore_target_globals (class target_globals *g)
|
||||
{
|
||||
this_target_flag_state = g->flag_state;
|
||||
|
|
|
@ -279,7 +279,7 @@ extern struct gcc_target targetm;
|
|||
runtime value is needed for correctness, since the function only
|
||||
provides a rough guess. */
|
||||
|
||||
static inline HOST_WIDE_INT
|
||||
inline HOST_WIDE_INT
|
||||
estimated_poly_value (poly_int64 x,
|
||||
poly_value_estimate_kind kind = POLY_VALUE_LIKELY)
|
||||
{
|
||||
|
@ -295,7 +295,7 @@ estimated_poly_value (poly_int64 x,
|
|||
#define CUMULATIVE_ARGS_MAGIC ((void *) &targetm.calls)
|
||||
#endif
|
||||
|
||||
static inline CUMULATIVE_ARGS *
|
||||
inline CUMULATIVE_ARGS *
|
||||
get_cumulative_args (cumulative_args_t arg)
|
||||
{
|
||||
#if CHECKING_P
|
||||
|
@ -304,7 +304,7 @@ get_cumulative_args (cumulative_args_t arg)
|
|||
return (CUMULATIVE_ARGS *) arg.p;
|
||||
}
|
||||
|
||||
static inline cumulative_args_t
|
||||
inline cumulative_args_t
|
||||
pack_cumulative_args (CUMULATIVE_ARGS *arg)
|
||||
{
|
||||
cumulative_args_t ret;
|
||||
|
|
|
@ -206,14 +206,14 @@ class timer
|
|||
};
|
||||
|
||||
/* Provided for backward compatibility. */
|
||||
static inline void
|
||||
inline void
|
||||
timevar_push (timevar_id_t tv)
|
||||
{
|
||||
if (g_timer)
|
||||
g_timer->push (tv);
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
timevar_pop (timevar_id_t tv)
|
||||
{
|
||||
if (g_timer)
|
||||
|
|
|
@ -35,7 +35,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
/* After having added an automatically generated element, please
|
||||
include it in the following function. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
automatically_generated_chrec_p (const_tree chrec)
|
||||
{
|
||||
return (chrec == chrec_dont_know
|
||||
|
@ -44,7 +44,7 @@ automatically_generated_chrec_p (const_tree chrec)
|
|||
|
||||
/* The tree nodes aka. CHRECs. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
tree_is_chrec (const_tree expr)
|
||||
{
|
||||
if (TREE_CODE (expr) == POLYNOMIAL_CHREC
|
||||
|
@ -96,7 +96,7 @@ extern bool evolution_function_right_is_integer_cst (const_tree);
|
|||
|
||||
/* Determines whether CHREC is equal to zero. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
chrec_zerop (const_tree chrec)
|
||||
{
|
||||
if (chrec == NULL_TREE)
|
||||
|
@ -111,7 +111,7 @@ chrec_zerop (const_tree chrec)
|
|||
/* Determines whether CHREC is a loop invariant with respect to LOOP_NUM.
|
||||
Set the result in RES and return true when the property can be computed. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
no_evolution_in_loop_p (tree chrec, unsigned loop_num, bool *res)
|
||||
{
|
||||
tree scev;
|
||||
|
@ -129,7 +129,7 @@ no_evolution_in_loop_p (tree chrec, unsigned loop_num, bool *res)
|
|||
|
||||
/* Build a polynomial chain of recurrence. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
build_polynomial_chrec (unsigned loop_num,
|
||||
tree left,
|
||||
tree right)
|
||||
|
@ -167,7 +167,7 @@ build_polynomial_chrec (unsigned loop_num,
|
|||
|
||||
/* Determines whether the expression CHREC is a constant. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
evolution_function_is_constant_p (const_tree chrec)
|
||||
{
|
||||
if (chrec == NULL_TREE)
|
||||
|
@ -178,7 +178,7 @@ evolution_function_is_constant_p (const_tree chrec)
|
|||
|
||||
/* Determine whether CHREC is an affine evolution function in LOOPNUM. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
evolution_function_is_affine_in_loop (const_tree chrec, int loopnum)
|
||||
{
|
||||
if (chrec == NULL_TREE)
|
||||
|
@ -200,7 +200,7 @@ evolution_function_is_affine_in_loop (const_tree chrec, int loopnum)
|
|||
|
||||
/* Determine whether CHREC is an affine evolution function or not. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
evolution_function_is_affine_p (const_tree chrec)
|
||||
{
|
||||
return chrec
|
||||
|
@ -213,7 +213,7 @@ evolution_function_is_affine_p (const_tree chrec)
|
|||
|
||||
/* Determines whether EXPR does not contains chrec expressions. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
tree_does_not_contain_chrecs (const_tree expr)
|
||||
{
|
||||
return !tree_contains_chrecs (expr, NULL);
|
||||
|
@ -221,7 +221,7 @@ tree_does_not_contain_chrecs (const_tree expr)
|
|||
|
||||
/* Returns the type of the chrec. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
chrec_type (const_tree chrec)
|
||||
{
|
||||
if (automatically_generated_chrec_p (chrec))
|
||||
|
@ -230,7 +230,7 @@ chrec_type (const_tree chrec)
|
|||
return TREE_TYPE (chrec);
|
||||
}
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
chrec_fold_op (enum tree_code code, tree type, tree op0, tree op1)
|
||||
{
|
||||
switch (code)
|
||||
|
|
|
@ -592,7 +592,7 @@ extern bool dr_known_forward_stride_p (struct data_reference *);
|
|||
/* Return true when the base objects of data references A and B are
|
||||
the same memory object. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
same_data_refs_base_objects (data_reference_p a, data_reference_p b)
|
||||
{
|
||||
return DR_NUM_DIMENSIONS (a) == DR_NUM_DIMENSIONS (b)
|
||||
|
@ -603,7 +603,7 @@ same_data_refs_base_objects (data_reference_p a, data_reference_p b)
|
|||
memory object with the same access functions. Optionally skip the
|
||||
last OFFSET dimensions in the data reference. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
same_data_refs (data_reference_p a, data_reference_p b, int offset = 0)
|
||||
{
|
||||
unsigned int i;
|
||||
|
@ -641,7 +641,7 @@ known_dependences_p (vec<ddr_p> dependence_relations)
|
|||
LEVEL = 0 means a lexicographic dependence, i.e. a dependence due
|
||||
to the sequence of statements, not carried by any loop. */
|
||||
|
||||
static inline unsigned
|
||||
inline unsigned
|
||||
dependence_level (lambda_vector dist_vect, int length)
|
||||
{
|
||||
int i;
|
||||
|
@ -655,7 +655,7 @@ dependence_level (lambda_vector dist_vect, int length)
|
|||
|
||||
/* Return the dependence level for the DDR relation. */
|
||||
|
||||
static inline unsigned
|
||||
inline unsigned
|
||||
ddr_dependence_level (ddr_p ddr)
|
||||
{
|
||||
unsigned vector;
|
||||
|
@ -672,7 +672,7 @@ ddr_dependence_level (ddr_p ddr)
|
|||
|
||||
/* Return the index of the variable VAR in the LOOP_NEST array. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
index_in_loop_nest (int var, const vec<loop_p> &loop_nest)
|
||||
{
|
||||
class loop *loopi;
|
||||
|
@ -688,7 +688,7 @@ index_in_loop_nest (int var, const vec<loop_p> &loop_nest)
|
|||
/* Returns true when the data reference DR the form "A[i] = ..."
|
||||
with a stride equal to its unit type size. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
adjacent_dr_p (struct data_reference *dr)
|
||||
{
|
||||
/* If this is a bitfield store bail out. */
|
||||
|
@ -709,7 +709,7 @@ void split_constant_offset (tree , tree *, tree *);
|
|||
|
||||
/* Compute the greatest common divisor of a VECTOR of SIZE numbers. */
|
||||
|
||||
static inline lambda_int
|
||||
inline lambda_int
|
||||
lambda_vector_gcd (lambda_vector vector, int size)
|
||||
{
|
||||
int i;
|
||||
|
@ -726,7 +726,7 @@ lambda_vector_gcd (lambda_vector vector, int size)
|
|||
|
||||
/* Allocate a new vector of given SIZE. */
|
||||
|
||||
static inline lambda_vector
|
||||
inline lambda_vector
|
||||
lambda_vector_new (int size)
|
||||
{
|
||||
/* ??? We shouldn't abuse the GC allocator here. */
|
||||
|
@ -735,7 +735,7 @@ lambda_vector_new (int size)
|
|||
|
||||
/* Clear out vector VEC1 of length SIZE. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
lambda_vector_clear (lambda_vector vec1, int size)
|
||||
{
|
||||
memset (vec1, 0, size * sizeof (*vec1));
|
||||
|
@ -744,7 +744,7 @@ lambda_vector_clear (lambda_vector vec1, int size)
|
|||
/* Returns true when the vector V is lexicographically positive, in
|
||||
other words, when the first nonzero element is positive. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
lambda_vector_lexico_pos (lambda_vector v,
|
||||
unsigned n)
|
||||
{
|
||||
|
@ -763,7 +763,7 @@ lambda_vector_lexico_pos (lambda_vector v,
|
|||
|
||||
/* Return true if vector VEC1 of length SIZE is the zero vector. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
lambda_vector_zerop (lambda_vector vec1, int size)
|
||||
{
|
||||
int i;
|
||||
|
@ -775,7 +775,7 @@ lambda_vector_zerop (lambda_vector vec1, int size)
|
|||
|
||||
/* Allocate a matrix of M rows x N cols. */
|
||||
|
||||
static inline lambda_matrix
|
||||
inline lambda_matrix
|
||||
lambda_matrix_new (int m, int n, struct obstack *lambda_obstack)
|
||||
{
|
||||
lambda_matrix mat;
|
||||
|
|
|
@ -49,7 +49,7 @@ struct tree_stmt_iterator {
|
|||
tree operator* () const { return ptr->stmt; }
|
||||
};
|
||||
|
||||
static inline tree_stmt_iterator
|
||||
inline tree_stmt_iterator
|
||||
tsi_start (tree t)
|
||||
{
|
||||
tree_stmt_iterator i;
|
||||
|
@ -60,7 +60,7 @@ tsi_start (tree t)
|
|||
return i;
|
||||
}
|
||||
|
||||
static inline tree_stmt_iterator
|
||||
inline tree_stmt_iterator
|
||||
tsi_last (tree t)
|
||||
{
|
||||
tree_stmt_iterator i;
|
||||
|
@ -71,37 +71,37 @@ tsi_last (tree t)
|
|||
return i;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
tsi_end_p (tree_stmt_iterator i)
|
||||
{
|
||||
return i.ptr == NULL;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
tsi_one_before_end_p (tree_stmt_iterator i)
|
||||
{
|
||||
return i.ptr != NULL && i.ptr->next == NULL;
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
tsi_next (tree_stmt_iterator *i)
|
||||
{
|
||||
++(*i);
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
tsi_prev (tree_stmt_iterator *i)
|
||||
{
|
||||
--(*i);
|
||||
}
|
||||
|
||||
static inline tree *
|
||||
inline tree *
|
||||
tsi_stmt_ptr (tree_stmt_iterator i)
|
||||
{
|
||||
return &(*i);
|
||||
}
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
tsi_stmt (tree_stmt_iterator i)
|
||||
{
|
||||
return *i;
|
||||
|
|
|
@ -53,7 +53,7 @@ extern struct ssaexpand SA;
|
|||
|
||||
/* Returns the RTX expression representing the storage of the outof-SSA
|
||||
partition that the SSA name EXP is a member of. */
|
||||
static inline rtx
|
||||
inline rtx
|
||||
get_rtx_for_ssa_name (tree exp)
|
||||
{
|
||||
int p = partition_find (SA.map->var_partition, SSA_NAME_VERSION (exp));
|
||||
|
@ -65,7 +65,7 @@ get_rtx_for_ssa_name (tree exp)
|
|||
|
||||
/* If TER decided to forward the definition of SSA name EXP this function
|
||||
returns the defining statement, otherwise NULL. */
|
||||
static inline gimple *
|
||||
inline gimple *
|
||||
get_gimple_for_ssa_name (tree exp)
|
||||
{
|
||||
int v = SSA_NAME_VERSION (exp);
|
||||
|
|
|
@ -31,7 +31,7 @@ extern void remove_phi_nodes (basic_block);
|
|||
extern tree degenerate_phi_result (gphi *);
|
||||
extern void set_phi_nodes (basic_block, gimple_seq);
|
||||
|
||||
static inline use_operand_p
|
||||
inline use_operand_p
|
||||
gimple_phi_arg_imm_use_ptr (gimple *gs, int i)
|
||||
{
|
||||
return &gimple_phi_arg (gs, i)->imm_use;
|
||||
|
@ -39,7 +39,7 @@ gimple_phi_arg_imm_use_ptr (gimple *gs, int i)
|
|||
|
||||
/* Return the phi argument which contains the specified use. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
phi_arg_index_from_use (use_operand_p use)
|
||||
{
|
||||
struct phi_arg_d *element, *root;
|
||||
|
|
|
@ -46,7 +46,7 @@ extern tree compute_overall_effect_of_inner_loop (class loop *, tree);
|
|||
/* Returns the basic block preceding LOOP, or the CFG entry block when
|
||||
the loop is function's body. */
|
||||
|
||||
static inline basic_block
|
||||
inline basic_block
|
||||
block_before_loop (loop_p loop)
|
||||
{
|
||||
edge preheader = loop_preheader_edge (loop);
|
||||
|
@ -57,7 +57,7 @@ block_before_loop (loop_p loop)
|
|||
symbolic form. LOOP is the loop in which symbolic names have to
|
||||
be analyzed and instantiated. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
instantiate_parameters (class loop *loop, tree chrec)
|
||||
{
|
||||
return instantiate_scev (loop_preheader_edge (loop), loop, chrec);
|
||||
|
@ -65,7 +65,7 @@ instantiate_parameters (class loop *loop, tree chrec)
|
|||
|
||||
/* Returns the loop of the polynomial chrec CHREC. */
|
||||
|
||||
static inline class loop *
|
||||
inline class loop *
|
||||
get_chrec_loop (const_tree chrec)
|
||||
{
|
||||
return get_loop (cfun, CHREC_VARIABLE (chrec));
|
||||
|
|
|
@ -24,7 +24,7 @@ bool type_internals_preclude_sra_p (tree type, const char **msg);
|
|||
/* Return true iff TYPE is stdarg va_list type (which early SRA and IPA-SRA
|
||||
should leave alone). */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_va_list_type (tree type)
|
||||
{
|
||||
return TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (va_list_type_node);
|
||||
|
|
|
@ -186,7 +186,7 @@ extern GTY(()) struct pt_solution ipa_escaped_pt;
|
|||
overlap. SIZE1 and/or SIZE2 can be (unsigned)-1 in which case the
|
||||
range is open-ended. Otherwise return false. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ranges_overlap_p (HOST_WIDE_INT pos1,
|
||||
unsigned HOST_WIDE_INT size1,
|
||||
HOST_WIDE_INT pos2,
|
||||
|
|
|
@ -109,7 +109,7 @@ region_contains_p (var_map map, basic_block bb)
|
|||
|
||||
/* Return number of partitions in MAP. */
|
||||
|
||||
static inline unsigned
|
||||
inline unsigned
|
||||
num_var_partitions (var_map map)
|
||||
{
|
||||
return map->num_partitions;
|
||||
|
@ -119,7 +119,7 @@ num_var_partitions (var_map map)
|
|||
/* Given partition index I from MAP, return the variable which represents that
|
||||
partition. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
partition_to_var (var_map map, int i)
|
||||
{
|
||||
tree name;
|
||||
|
@ -134,7 +134,7 @@ partition_to_var (var_map map, int i)
|
|||
/* Given ssa_name VERSION, if it has a partition in MAP, return the var it
|
||||
is associated with. Otherwise return NULL. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
version_to_var (var_map map, int version)
|
||||
{
|
||||
int part;
|
||||
|
@ -151,7 +151,7 @@ version_to_var (var_map map, int version)
|
|||
/* Given VAR, return the partition number in MAP which contains it.
|
||||
NO_PARTITION is returned if it's not in any partition. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
var_to_partition (var_map map, tree var)
|
||||
{
|
||||
int part;
|
||||
|
@ -166,7 +166,7 @@ var_to_partition (var_map map, tree var)
|
|||
/* Given VAR, return the variable which represents the entire partition
|
||||
it is a member of in MAP. NULL is returned if it is not in a partition. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
var_to_partition_to_var (var_map map, tree var)
|
||||
{
|
||||
int part;
|
||||
|
@ -180,7 +180,7 @@ var_to_partition_to_var (var_map map, tree var)
|
|||
|
||||
/* Return the index into the basevar table for PARTITION's base in MAP. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
basevar_index (var_map map, int partition)
|
||||
{
|
||||
gcc_checking_assert (partition >= 0
|
||||
|
@ -191,7 +191,7 @@ basevar_index (var_map map, int partition)
|
|||
|
||||
/* Return the number of different base variables in MAP. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
num_basevars (var_map map)
|
||||
{
|
||||
return map->num_basevars;
|
||||
|
@ -274,7 +274,7 @@ extern void destroy_live_vars (vec<bitmap_head> &);
|
|||
|
||||
/* Return TRUE if P is marked as a global in LIVE. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
partition_is_global (tree_live_info_p live, int p)
|
||||
{
|
||||
gcc_checking_assert (live->global);
|
||||
|
@ -285,7 +285,7 @@ partition_is_global (tree_live_info_p live, int p)
|
|||
/* Return the bitmap from LIVE representing the live on entry blocks for
|
||||
partition P. */
|
||||
|
||||
static inline bitmap
|
||||
inline bitmap
|
||||
live_on_entry (tree_live_info_p live, basic_block bb)
|
||||
{
|
||||
gcc_checking_assert (live->livein
|
||||
|
@ -299,7 +299,7 @@ live_on_entry (tree_live_info_p live, basic_block bb)
|
|||
/* Return the bitmap from LIVE representing the live on exit partitions from
|
||||
block BB. */
|
||||
|
||||
static inline bitmap
|
||||
inline bitmap
|
||||
live_on_exit (tree_live_info_p live, basic_block bb)
|
||||
{
|
||||
gcc_checking_assert (live->liveout
|
||||
|
@ -312,7 +312,7 @@ live_on_exit (tree_live_info_p live, basic_block bb)
|
|||
|
||||
/* Return the partition map which the information in LIVE utilizes. */
|
||||
|
||||
static inline var_map
|
||||
inline var_map
|
||||
live_var_map (tree_live_info_p live)
|
||||
{
|
||||
return live->map;
|
||||
|
@ -321,7 +321,7 @@ live_var_map (tree_live_info_p live)
|
|||
|
||||
/* Mark partition P as live on entry to basic block BB in LIVE. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
make_live_on_entry (tree_live_info_p live, basic_block bb , int p)
|
||||
{
|
||||
bitmap_set_bit (&live->livein[bb->index], p);
|
||||
|
|
|
@ -27,7 +27,7 @@ extern void create_iv (tree, tree, tree, class loop *, gimple_stmt_iterator *,
|
|||
extern void rewrite_into_loop_closed_ssa (bitmap, unsigned);
|
||||
extern void verify_loop_closed_ssa (bool, class loop * = NULL);
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
checking_verify_loop_closed_ssa (bool verify_ssa_p, class loop *loop = NULL)
|
||||
{
|
||||
if (flag_checking)
|
||||
|
|
|
@ -71,7 +71,7 @@ extern unsigned tree_num_loop_insns (class loop *, struct eni_weights *);
|
|||
|
||||
/* Returns the loop of the statement STMT. */
|
||||
|
||||
static inline class loop *
|
||||
inline class loop *
|
||||
loop_containing_stmt (gimple *stmt)
|
||||
{
|
||||
basic_block bb = gimple_bb (stmt);
|
||||
|
|
|
@ -106,14 +106,14 @@ extern void debug_immediate_uses_for (tree var);
|
|||
extern void unlink_stmt_vdef (gimple *);
|
||||
|
||||
/* Return the tree pointed-to by USE. */
|
||||
static inline tree
|
||||
inline tree
|
||||
get_use_from_ptr (use_operand_p use)
|
||||
{
|
||||
return *(use->use);
|
||||
}
|
||||
|
||||
/* Return the tree pointed-to by DEF. */
|
||||
static inline tree
|
||||
inline tree
|
||||
get_def_from_ptr (def_operand_p def)
|
||||
{
|
||||
return *def;
|
||||
|
|
|
@ -26,7 +26,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
|
||||
/* If SIM_P is true, statement S will be simulated again. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
prop_set_simulate_again (gimple *s, bool visit_p)
|
||||
{
|
||||
gimple_set_visited (s, visit_p);
|
||||
|
@ -34,7 +34,7 @@ prop_set_simulate_again (gimple *s, bool visit_p)
|
|||
|
||||
/* Return true if statement T should be simulated again. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
prop_simulate_again_p (gimple *s)
|
||||
{
|
||||
return gimple_visited_p (s);
|
||||
|
|
|
@ -68,7 +68,7 @@ typedef const struct vn_nary_op_s *const_vn_nary_op_t;
|
|||
|
||||
/* Return the size of a vn_nary_op_t with LENGTH operands. */
|
||||
|
||||
static inline size_t
|
||||
inline size_t
|
||||
sizeof_vn_nary_op (unsigned int length)
|
||||
{
|
||||
return sizeof (struct vn_nary_op_s) + sizeof (tree) * length - sizeof (tree);
|
||||
|
@ -166,7 +166,7 @@ enum vn_kind vn_get_stmt_kind (gimple *);
|
|||
/* Hash the type TYPE using bits that distinguishes it in the
|
||||
types_compatible_p sense. */
|
||||
|
||||
static inline hashval_t
|
||||
inline hashval_t
|
||||
vn_hash_type (tree type)
|
||||
{
|
||||
return (INTEGRAL_TYPE_P (type)
|
||||
|
@ -177,7 +177,7 @@ vn_hash_type (tree type)
|
|||
/* Hash the constant CONSTANT with distinguishing type incompatible
|
||||
constants in the types_compatible_p sense. */
|
||||
|
||||
static inline hashval_t
|
||||
inline hashval_t
|
||||
vn_hash_constant_with_type (tree constant)
|
||||
{
|
||||
inchash::hash hstate;
|
||||
|
@ -189,7 +189,7 @@ vn_hash_constant_with_type (tree constant)
|
|||
/* Compare the constants C1 and C2 with distinguishing type incompatible
|
||||
constants in the types_compatible_p sense. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
vn_constant_eq_with_type (tree c1, tree c2)
|
||||
{
|
||||
return (expressions_equal_p (c1, c2)
|
||||
|
@ -286,7 +286,7 @@ unsigned int get_constant_value_id (tree);
|
|||
unsigned int get_or_alloc_constant_value_id (tree);
|
||||
|
||||
/* Return true if V is a value id for a constant. */
|
||||
static inline bool
|
||||
inline bool
|
||||
value_id_constant_p (unsigned int v)
|
||||
{
|
||||
return (int)v < 0;
|
||||
|
|
|
@ -63,7 +63,7 @@ extern void mark_ssa_maybe_undefs (void);
|
|||
/* Return TRUE iff VAR is marked as maybe-undefined. See
|
||||
mark_ssa_maybe_undefs. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
ssa_name_maybe_undef_p (tree var)
|
||||
{
|
||||
gcc_checking_assert (TREE_CODE (var) == SSA_NAME);
|
||||
|
@ -72,7 +72,7 @@ ssa_name_maybe_undef_p (tree var)
|
|||
|
||||
/* Set (or clear, depending on VALUE) VAR's maybe-undefined mark. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
ssa_name_set_maybe_undef (tree var, bool value = true)
|
||||
{
|
||||
gcc_checking_assert (TREE_CODE (var) == SSA_NAME);
|
||||
|
@ -84,7 +84,7 @@ extern void execute_update_addresses_taken (void);
|
|||
|
||||
/* Given an edge_var_map V, return the PHI arg definition. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
redirect_edge_var_map_def (edge_var_map *v)
|
||||
{
|
||||
return v->def;
|
||||
|
@ -92,7 +92,7 @@ redirect_edge_var_map_def (edge_var_map *v)
|
|||
|
||||
/* Given an edge_var_map V, return the PHI result. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
redirect_edge_var_map_result (edge_var_map *v)
|
||||
{
|
||||
return v->result;
|
||||
|
@ -100,7 +100,7 @@ redirect_edge_var_map_result (edge_var_map *v)
|
|||
|
||||
/* Given an edge_var_map V, return the PHI arg location. */
|
||||
|
||||
static inline location_t
|
||||
inline location_t
|
||||
redirect_edge_var_map_location (edge_var_map *v)
|
||||
{
|
||||
return v->locus;
|
||||
|
@ -108,7 +108,7 @@ redirect_edge_var_map_location (edge_var_map *v)
|
|||
|
||||
/* Verify SSA invariants, if internal consistency checks are enabled. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
checking_verify_ssa (bool check_modified_stmt, bool check_ssa_operands)
|
||||
{
|
||||
if (flag_checking)
|
||||
|
|
|
@ -91,7 +91,7 @@ extern void flush_ssaname_freelist (void);
|
|||
/* Return an SSA_NAME node for variable VAR defined in statement STMT
|
||||
in function cfun. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
make_ssa_name (tree var, gimple *stmt = NULL)
|
||||
{
|
||||
return make_ssa_name_fn (cfun, var, stmt);
|
||||
|
@ -100,7 +100,7 @@ make_ssa_name (tree var, gimple *stmt = NULL)
|
|||
/* Return an SSA_NAME node using the template SSA name NAME defined in
|
||||
statement STMT in function cfun. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
copy_ssa_name (tree var, gimple *stmt = NULL)
|
||||
{
|
||||
return copy_ssa_name_fn (cfun, var, stmt);
|
||||
|
@ -109,7 +109,7 @@ copy_ssa_name (tree var, gimple *stmt = NULL)
|
|||
/* Creates a duplicate of a SSA name NAME tobe defined by statement STMT
|
||||
in function cfun. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
duplicate_ssa_name (tree var, gimple *stmt)
|
||||
{
|
||||
return duplicate_ssa_name_fn (cfun, var, stmt);
|
||||
|
@ -117,7 +117,7 @@ duplicate_ssa_name (tree var, gimple *stmt)
|
|||
|
||||
/* Release the SSA name NAME used in function cfun. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
release_ssa_name (tree name)
|
||||
{
|
||||
release_ssa_name_fn (cfun, name);
|
||||
|
@ -126,7 +126,7 @@ release_ssa_name (tree name)
|
|||
/* Return an anonymous SSA_NAME node for type TYPE defined in statement STMT
|
||||
in function cfun. Arrange so that it uses NAME in dumps. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
make_temp_ssa_name (tree type, gimple *stmt, const char *name)
|
||||
{
|
||||
tree ssa_name;
|
||||
|
|
|
@ -90,7 +90,7 @@ void streamer_tree_cache_delete (struct streamer_tree_cache_d *);
|
|||
|
||||
/* Return the tree node at slot IX in CACHE. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
streamer_tree_cache_get_tree (struct streamer_tree_cache_d *cache, unsigned ix)
|
||||
{
|
||||
return cache->nodes[ix];
|
||||
|
@ -98,20 +98,20 @@ streamer_tree_cache_get_tree (struct streamer_tree_cache_d *cache, unsigned ix)
|
|||
|
||||
/* Return the tree hash value at slot IX in CACHE. */
|
||||
|
||||
static inline hashval_t
|
||||
inline hashval_t
|
||||
streamer_tree_cache_get_hash (struct streamer_tree_cache_d *cache, unsigned ix)
|
||||
{
|
||||
return cache->hashes[ix];
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
bp_pack_machine_mode (struct bitpack_d *bp, machine_mode mode)
|
||||
{
|
||||
streamer_mode_table[mode] = 1;
|
||||
bp_pack_enum (bp, machine_mode, 1 << 8, mode);
|
||||
}
|
||||
|
||||
static inline machine_mode
|
||||
inline machine_mode
|
||||
bp_unpack_machine_mode (struct bitpack_d *bp)
|
||||
{
|
||||
return (machine_mode)
|
||||
|
|
|
@ -914,7 +914,7 @@ switch_decision_tree::reset_out_edges_aux (gswitch *swtch)
|
|||
|
||||
/* Release CLUSTERS vector and destruct all dynamically allocated items. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
release_clusters (vec<cluster *> &clusters)
|
||||
{
|
||||
for (unsigned i = 0; i < clusters.length (); i++)
|
||||
|
|
|
@ -969,7 +969,7 @@ public:
|
|||
stack. */
|
||||
typedef opt_pointer_wrapper <loop_vec_info> opt_loop_vec_info;
|
||||
|
||||
static inline loop_vec_info
|
||||
inline loop_vec_info
|
||||
loop_vec_info_for_loop (class loop *loop)
|
||||
{
|
||||
return (loop_vec_info) loop->aux;
|
||||
|
@ -1641,7 +1641,7 @@ vector_costs::suggested_unroll_factor () const
|
|||
&& TYPE_PRECISION (TYPE) == 1 \
|
||||
&& TYPE_UNSIGNED (TYPE)))
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
nested_in_vect_loop_p (class loop *loop, stmt_vec_info stmt_info)
|
||||
{
|
||||
return (loop->inner
|
||||
|
@ -1652,7 +1652,7 @@ nested_in_vect_loop_p (class loop *loop, stmt_vec_info stmt_info)
|
|||
Return the initial value of the variable on entry to the containing
|
||||
loop. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
vect_phi_initial_value (gphi *phi)
|
||||
{
|
||||
basic_block bb = gimple_bb (phi);
|
||||
|
@ -1664,7 +1664,7 @@ vect_phi_initial_value (gphi *phi)
|
|||
/* Return true if STMT_INFO should produce a vector mask type rather than
|
||||
a normal nonmask type. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
vect_use_mask_type_p (stmt_vec_info stmt_info)
|
||||
{
|
||||
return stmt_info->mask_precision && stmt_info->mask_precision != ~0U;
|
||||
|
@ -1673,7 +1673,7 @@ vect_use_mask_type_p (stmt_vec_info stmt_info)
|
|||
/* Return TRUE if a statement represented by STMT_INFO is a part of a
|
||||
pattern. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_pattern_stmt_p (stmt_vec_info stmt_info)
|
||||
{
|
||||
return stmt_info->pattern_stmt_p;
|
||||
|
@ -1692,7 +1692,7 @@ vect_orig_stmt (stmt_vec_info stmt_info)
|
|||
|
||||
/* Return the later statement between STMT1_INFO and STMT2_INFO. */
|
||||
|
||||
static inline stmt_vec_info
|
||||
inline stmt_vec_info
|
||||
get_later_stmt (stmt_vec_info stmt1_info, stmt_vec_info stmt2_info)
|
||||
{
|
||||
if (gimple_uid (vect_orig_stmt (stmt1_info)->stmt)
|
||||
|
@ -1715,7 +1715,7 @@ vect_stmt_to_vectorize (stmt_vec_info stmt_info)
|
|||
|
||||
/* Return true if BB is a loop header. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_loop_header_bb_p (basic_block bb)
|
||||
{
|
||||
if (bb == (bb->loop_father)->header)
|
||||
|
@ -1726,7 +1726,7 @@ is_loop_header_bb_p (basic_block bb)
|
|||
|
||||
/* Return pow2 (X). */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
vect_pow2 (int x)
|
||||
{
|
||||
int i, res = 1;
|
||||
|
@ -1739,7 +1739,7 @@ vect_pow2 (int x)
|
|||
|
||||
/* Alias targetm.vectorize.builtin_vectorization_cost. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
builtin_vectorization_cost (enum vect_cost_for_stmt type_of_cost,
|
||||
tree vectype, int misalign)
|
||||
{
|
||||
|
@ -1749,7 +1749,7 @@ builtin_vectorization_cost (enum vect_cost_for_stmt type_of_cost,
|
|||
|
||||
/* Get cost by calling cost target builtin. */
|
||||
|
||||
static inline
|
||||
inline
|
||||
int vect_get_stmt_cost (enum vect_cost_for_stmt type_of_cost)
|
||||
{
|
||||
return builtin_vectorization_cost (type_of_cost, NULL, 0);
|
||||
|
@ -1757,7 +1757,7 @@ int vect_get_stmt_cost (enum vect_cost_for_stmt type_of_cost)
|
|||
|
||||
/* Alias targetm.vectorize.init_cost. */
|
||||
|
||||
static inline vector_costs *
|
||||
inline vector_costs *
|
||||
init_cost (vec_info *vinfo, bool costing_for_scalar)
|
||||
{
|
||||
return targetm.vectorize.create_costs (vinfo, costing_for_scalar);
|
||||
|
@ -1769,7 +1769,7 @@ extern void dump_stmt_cost (FILE *, int, enum vect_cost_for_stmt,
|
|||
|
||||
/* Alias targetm.vectorize.add_stmt_cost. */
|
||||
|
||||
static inline unsigned
|
||||
inline unsigned
|
||||
add_stmt_cost (vector_costs *costs, int count,
|
||||
enum vect_cost_for_stmt kind,
|
||||
stmt_vec_info stmt_info, slp_tree node,
|
||||
|
@ -1784,7 +1784,7 @@ add_stmt_cost (vector_costs *costs, int count,
|
|||
return cost;
|
||||
}
|
||||
|
||||
static inline unsigned
|
||||
inline unsigned
|
||||
add_stmt_cost (vector_costs *costs, int count, enum vect_cost_for_stmt kind,
|
||||
enum vect_cost_model_location where)
|
||||
{
|
||||
|
@ -1795,7 +1795,7 @@ add_stmt_cost (vector_costs *costs, int count, enum vect_cost_for_stmt kind,
|
|||
|
||||
/* Alias targetm.vectorize.add_stmt_cost. */
|
||||
|
||||
static inline unsigned
|
||||
inline unsigned
|
||||
add_stmt_cost (vector_costs *costs, stmt_info_for_cost *i)
|
||||
{
|
||||
return add_stmt_cost (costs, i->count, i->kind, i->stmt_info, i->node,
|
||||
|
@ -1804,7 +1804,7 @@ add_stmt_cost (vector_costs *costs, stmt_info_for_cost *i)
|
|||
|
||||
/* Alias targetm.vectorize.finish_cost. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
finish_cost (vector_costs *costs, const vector_costs *scalar_costs,
|
||||
unsigned *prologue_cost, unsigned *body_cost,
|
||||
unsigned *epilogue_cost, unsigned *suggested_unroll_factor = NULL)
|
||||
|
@ -1845,7 +1845,7 @@ extern int dr_misalignment (dr_vec_info *dr_info, tree vectype,
|
|||
#define SET_DR_MISALIGNMENT(DR, VAL) set_dr_misalignment (DR, VAL)
|
||||
|
||||
/* Only defined once DR_MISALIGNMENT is defined. */
|
||||
static inline const poly_uint64
|
||||
inline const poly_uint64
|
||||
dr_target_alignment (dr_vec_info *dr_info)
|
||||
{
|
||||
if (STMT_VINFO_GROUPED_ACCESS (dr_info->stmt))
|
||||
|
@ -1854,7 +1854,7 @@ dr_target_alignment (dr_vec_info *dr_info)
|
|||
}
|
||||
#define DR_TARGET_ALIGNMENT(DR) dr_target_alignment (DR)
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_dr_target_alignment (dr_vec_info *dr_info, poly_uint64 val)
|
||||
{
|
||||
dr_info->target_alignment = val;
|
||||
|
@ -1864,7 +1864,7 @@ set_dr_target_alignment (dr_vec_info *dr_info, poly_uint64 val)
|
|||
/* Return true if data access DR_INFO is aligned to the targets
|
||||
preferred alignment for VECTYPE (which may be less than a full vector). */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
aligned_access_p (dr_vec_info *dr_info, tree vectype)
|
||||
{
|
||||
return (dr_misalignment (dr_info, vectype) == 0);
|
||||
|
@ -1874,7 +1874,7 @@ aligned_access_p (dr_vec_info *dr_info, tree vectype)
|
|||
respect to the targets preferred alignment for VECTYPE, and FALSE
|
||||
otherwise. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
known_alignment_for_access_p (dr_vec_info *dr_info, tree vectype)
|
||||
{
|
||||
return (dr_misalignment (dr_info, vectype) != DR_MISALIGNMENT_UNKNOWN);
|
||||
|
@ -1883,7 +1883,7 @@ known_alignment_for_access_p (dr_vec_info *dr_info, tree vectype)
|
|||
/* Return the minimum alignment in bytes that the vectorized version
|
||||
of DR_INFO is guaranteed to have. */
|
||||
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
vect_known_alignment_in_bytes (dr_vec_info *dr_info, tree vectype)
|
||||
{
|
||||
int misalignment = dr_misalignment (dr_info, vectype);
|
||||
|
@ -1898,7 +1898,7 @@ vect_known_alignment_in_bytes (dr_vec_info *dr_info, tree vectype)
|
|||
(which for outer loop vectorization might not be the behavior recorded
|
||||
in DR_INFO itself). */
|
||||
|
||||
static inline innermost_loop_behavior *
|
||||
inline innermost_loop_behavior *
|
||||
vect_dr_behavior (vec_info *vinfo, dr_vec_info *dr_info)
|
||||
{
|
||||
stmt_vec_info stmt_info = dr_info->stmt;
|
||||
|
@ -1936,7 +1936,7 @@ get_dr_vinfo_offset (vec_info *vinfo,
|
|||
|
||||
|
||||
/* Return the vect cost model for LOOP. */
|
||||
static inline enum vect_cost_model
|
||||
inline enum vect_cost_model
|
||||
loop_cost_model (loop_p loop)
|
||||
{
|
||||
if (loop != NULL
|
||||
|
@ -1947,7 +1947,7 @@ loop_cost_model (loop_p loop)
|
|||
}
|
||||
|
||||
/* Return true if the vect cost model is unlimited. */
|
||||
static inline bool
|
||||
inline bool
|
||||
unlimited_cost_model (loop_p loop)
|
||||
{
|
||||
return loop_cost_model (loop) == VECT_COST_MODEL_UNLIMITED;
|
||||
|
@ -1957,7 +1957,7 @@ unlimited_cost_model (loop_p loop)
|
|||
if the first iteration should use a partial mask in order to achieve
|
||||
alignment. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
vect_use_loop_mask_for_alignment_p (loop_vec_info loop_vinfo)
|
||||
{
|
||||
return (LOOP_VINFO_FULLY_MASKED_P (loop_vinfo)
|
||||
|
@ -1968,7 +1968,7 @@ vect_use_loop_mask_for_alignment_p (loop_vec_info loop_vinfo)
|
|||
NUNITS elements. NUNITS should be based on the vectorization factor,
|
||||
so it is always a known multiple of the number of elements in VECTYPE. */
|
||||
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
vect_get_num_vectors (poly_uint64 nunits, tree vectype)
|
||||
{
|
||||
return exact_div (nunits, TYPE_VECTOR_SUBPARTS (vectype)).to_constant ();
|
||||
|
@ -1979,7 +1979,7 @@ vect_get_num_vectors (poly_uint64 nunits, tree vectype)
|
|||
vectorization factor divided by the number of elements in
|
||||
VECTYPE and is always known at compile time. */
|
||||
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
vect_get_num_copies (loop_vec_info loop_vinfo, tree vectype)
|
||||
{
|
||||
return vect_get_num_vectors (LOOP_VINFO_VECT_FACTOR (loop_vinfo), vectype);
|
||||
|
@ -1988,7 +1988,7 @@ vect_get_num_copies (loop_vec_info loop_vinfo, tree vectype)
|
|||
/* Update maximum unit count *MAX_NUNITS so that it accounts for
|
||||
NUNITS. *MAX_NUNITS can be 1 if we haven't yet recorded anything. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
vect_update_max_nunits (poly_uint64 *max_nunits, poly_uint64 nunits)
|
||||
{
|
||||
/* All unit counts have the form vec_info::vector_size * X for some
|
||||
|
@ -2001,7 +2001,7 @@ vect_update_max_nunits (poly_uint64 *max_nunits, poly_uint64 nunits)
|
|||
the number of units in vector type VECTYPE. *MAX_NUNITS can be 1
|
||||
if we haven't yet recorded any vector types. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
vect_update_max_nunits (poly_uint64 *max_nunits, tree vectype)
|
||||
{
|
||||
vect_update_max_nunits (max_nunits, TYPE_VECTOR_SUBPARTS (vectype));
|
||||
|
@ -2012,7 +2012,7 @@ vect_update_max_nunits (poly_uint64 *max_nunits, tree vectype)
|
|||
Pick a reasonable estimate if the vectorization factor isn't
|
||||
known at compile time. */
|
||||
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
vect_vf_for_cost (loop_vec_info loop_vinfo)
|
||||
{
|
||||
return estimated_poly_value (LOOP_VINFO_VECT_FACTOR (loop_vinfo));
|
||||
|
@ -2022,7 +2022,7 @@ vect_vf_for_cost (loop_vec_info loop_vinfo)
|
|||
Pick a reasonable estimate if the exact number isn't known at
|
||||
compile time. */
|
||||
|
||||
static inline unsigned int
|
||||
inline unsigned int
|
||||
vect_nunits_for_cost (tree vec_type)
|
||||
{
|
||||
return estimated_poly_value (TYPE_VECTOR_SUBPARTS (vec_type));
|
||||
|
@ -2030,7 +2030,7 @@ vect_nunits_for_cost (tree vec_type)
|
|||
|
||||
/* Return the maximum possible vectorization factor for LOOP_VINFO. */
|
||||
|
||||
static inline unsigned HOST_WIDE_INT
|
||||
inline unsigned HOST_WIDE_INT
|
||||
vect_max_vf (loop_vec_info loop_vinfo)
|
||||
{
|
||||
unsigned HOST_WIDE_INT vf;
|
||||
|
@ -2160,7 +2160,7 @@ extern unsigned record_stmt_cost (stmt_vector_for_cost *, int,
|
|||
|
||||
/* Overload of record_stmt_cost with VECTYPE derived from STMT_INFO. */
|
||||
|
||||
static inline unsigned
|
||||
inline unsigned
|
||||
record_stmt_cost (stmt_vector_for_cost *body_cost_vec, int count,
|
||||
enum vect_cost_for_stmt kind, stmt_vec_info stmt_info,
|
||||
int misalign, enum vect_cost_model_location where)
|
||||
|
|
88
gcc/tree.h
88
gcc/tree.h
|
@ -1280,7 +1280,7 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
|
|||
location. */
|
||||
#define CAN_HAVE_LOCATION_P(NODE) ((NODE) && EXPR_P (NODE))
|
||||
|
||||
static inline source_range
|
||||
inline source_range
|
||||
get_expr_source_range (tree expr)
|
||||
{
|
||||
location_t loc = EXPR_LOCATION (expr);
|
||||
|
@ -3263,7 +3263,7 @@ extern void decl_fini_priority_insert (tree, priority_type);
|
|||
/* Set decl_type of a DECL. Set it to T when SET is true, or reset
|
||||
it to NONE. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_function_decl_type (tree decl, function_decl_type t, bool set)
|
||||
{
|
||||
if (set)
|
||||
|
@ -4009,7 +4009,7 @@ any_integral_type_check (const_tree __t, const char *__f, int __l,
|
|||
/* Compute the number of operands in an expression node NODE. For
|
||||
tcc_vl_exp nodes like CALL_EXPRs, this is stored in the node itself,
|
||||
otherwise it is looked up from the node's code. */
|
||||
static inline int
|
||||
inline int
|
||||
tree_operand_length (const_tree node)
|
||||
{
|
||||
if (VL_EXP_CLASS_P (node))
|
||||
|
@ -4139,7 +4139,7 @@ SET_TYPE_VECTOR_SUBPARTS (tree node, poly_uint64 subparts)
|
|||
/* Return true if we can construct vector types with the given number
|
||||
of subparts. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
valid_vector_subparts_p (poly_uint64 subparts)
|
||||
{
|
||||
unsigned HOST_WIDE_INT coeff0 = subparts.coeffs[0];
|
||||
|
@ -4587,7 +4587,7 @@ extern tree build5 (enum tree_code, tree, tree, tree, tree, tree,
|
|||
|
||||
/* _loc versions of build[1-5]. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
build1_loc (location_t loc, enum tree_code code, tree type,
|
||||
tree arg1 CXX_MEM_STAT_INFO)
|
||||
{
|
||||
|
@ -4597,7 +4597,7 @@ build1_loc (location_t loc, enum tree_code code, tree type,
|
|||
return t;
|
||||
}
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
build2_loc (location_t loc, enum tree_code code, tree type, tree arg0,
|
||||
tree arg1 CXX_MEM_STAT_INFO)
|
||||
{
|
||||
|
@ -4607,7 +4607,7 @@ build2_loc (location_t loc, enum tree_code code, tree type, tree arg0,
|
|||
return t;
|
||||
}
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
build3_loc (location_t loc, enum tree_code code, tree type, tree arg0,
|
||||
tree arg1, tree arg2 CXX_MEM_STAT_INFO)
|
||||
{
|
||||
|
@ -4617,7 +4617,7 @@ build3_loc (location_t loc, enum tree_code code, tree type, tree arg0,
|
|||
return t;
|
||||
}
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
build4_loc (location_t loc, enum tree_code code, tree type, tree arg0,
|
||||
tree arg1, tree arg2, tree arg3 CXX_MEM_STAT_INFO)
|
||||
{
|
||||
|
@ -4627,7 +4627,7 @@ build4_loc (location_t loc, enum tree_code code, tree type, tree arg0,
|
|||
return t;
|
||||
}
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
build5_loc (location_t loc, enum tree_code code, tree type, tree arg0,
|
||||
tree arg1, tree arg2, tree arg3, tree arg4 CXX_MEM_STAT_INFO)
|
||||
{
|
||||
|
@ -5174,7 +5174,7 @@ extern tree get_narrower (tree, int *);
|
|||
|
||||
/* Return true if T is an expression that get_inner_reference handles. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
handled_component_p (const_tree t)
|
||||
{
|
||||
switch (TREE_CODE (t))
|
||||
|
@ -5195,7 +5195,7 @@ handled_component_p (const_tree t)
|
|||
|
||||
/* Return true T is a component with reverse storage order. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
reverse_storage_order_for_component_p (tree t)
|
||||
{
|
||||
/* The storage order only applies to scalar components. */
|
||||
|
@ -5233,7 +5233,7 @@ reverse_storage_order_for_component_p (tree t)
|
|||
outer type, a VIEW_CONVERT_EXPR can modify the storage order because
|
||||
it can change the partition of the aggregate object into scalars. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
storage_order_barrier_p (const_tree t)
|
||||
{
|
||||
if (TREE_CODE (t) != VIEW_CONVERT_EXPR)
|
||||
|
@ -5274,7 +5274,7 @@ extern bool real_zerop (const_tree);
|
|||
|
||||
/* Initialize the iterator I with arguments from function FNDECL */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
function_args_iter_init (function_args_iterator *i, const_tree fntype)
|
||||
{
|
||||
i->next = TYPE_ARG_TYPES (fntype);
|
||||
|
@ -5283,7 +5283,7 @@ function_args_iter_init (function_args_iterator *i, const_tree fntype)
|
|||
/* Return a pointer that holds the next argument if there are more arguments to
|
||||
handle, otherwise return NULL. */
|
||||
|
||||
static inline tree *
|
||||
inline tree *
|
||||
function_args_iter_cond_ptr (function_args_iterator *i)
|
||||
{
|
||||
return (i->next) ? &TREE_VALUE (i->next) : NULL;
|
||||
|
@ -5292,14 +5292,14 @@ function_args_iter_cond_ptr (function_args_iterator *i)
|
|||
/* Return the next argument if there are more arguments to handle, otherwise
|
||||
return NULL. */
|
||||
|
||||
static inline tree
|
||||
inline tree
|
||||
function_args_iter_cond (function_args_iterator *i)
|
||||
{
|
||||
return (i->next) ? TREE_VALUE (i->next) : NULL_TREE;
|
||||
}
|
||||
|
||||
/* Advance to the next argument. */
|
||||
static inline void
|
||||
inline void
|
||||
function_args_iter_next (function_args_iterator *i)
|
||||
{
|
||||
gcc_assert (i->next != NULL_TREE);
|
||||
|
@ -5311,7 +5311,7 @@ function_args_iter_next (function_args_iterator *i)
|
|||
so the function returns true for all but the innermost and outermost
|
||||
blocks into which an expression has been inlined. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
inlined_function_outer_scope_p (const_tree block)
|
||||
{
|
||||
return LOCATION_LOCUS (BLOCK_SOURCE_LOCATION (block)) != UNKNOWN_LOCATION;
|
||||
|
@ -5385,7 +5385,7 @@ extern const char *combined_fn_name (combined_fn);
|
|||
pointer. Assumes all pointers are interchangeable, which is sort
|
||||
of already assumed by gcc elsewhere IIRC. */
|
||||
|
||||
static inline int
|
||||
inline int
|
||||
struct_ptr_eq (const void *a, const void *b)
|
||||
{
|
||||
const void * const * x = (const void * const *) a;
|
||||
|
@ -5393,7 +5393,7 @@ struct_ptr_eq (const void *a, const void *b)
|
|||
return *x == *y;
|
||||
}
|
||||
|
||||
static inline hashval_t
|
||||
inline hashval_t
|
||||
struct_ptr_hash (const void *a)
|
||||
{
|
||||
const void * const * x = (const void * const *) a;
|
||||
|
@ -5401,7 +5401,7 @@ struct_ptr_hash (const void *a)
|
|||
}
|
||||
|
||||
/* Return nonzero if CODE is a tree code that represents a truth value. */
|
||||
static inline bool
|
||||
inline bool
|
||||
truth_value_p (enum tree_code code)
|
||||
{
|
||||
return (TREE_CODE_CLASS (code) == tcc_comparison
|
||||
|
@ -5412,7 +5412,7 @@ truth_value_p (enum tree_code code)
|
|||
|
||||
/* Return whether TYPE is a type suitable for an offset for
|
||||
a POINTER_PLUS_EXPR. */
|
||||
static inline bool
|
||||
inline bool
|
||||
ptrofftype_p (tree type)
|
||||
{
|
||||
return (INTEGRAL_TYPE_P (type)
|
||||
|
@ -5423,7 +5423,7 @@ ptrofftype_p (tree type)
|
|||
/* Return true if the argument is a complete type or an array
|
||||
of unknown bound (whose type is incomplete but) whose elements
|
||||
have complete type. */
|
||||
static inline bool
|
||||
inline bool
|
||||
complete_or_array_type_p (const_tree type)
|
||||
{
|
||||
return COMPLETE_TYPE_P (type)
|
||||
|
@ -5482,7 +5482,7 @@ extern void add_expr (const_tree, hash &, unsigned int = 0);
|
|||
|
||||
/* Compat version until all callers are converted. Return hash for
|
||||
TREE with SEED. */
|
||||
static inline hashval_t iterative_hash_expr(const_tree tree, hashval_t seed)
|
||||
inline hashval_t iterative_hash_expr(const_tree tree, hashval_t seed)
|
||||
{
|
||||
inchash::hash hstate (seed);
|
||||
inchash::add_expr (tree, hstate);
|
||||
|
@ -5776,7 +5776,7 @@ typedef hash_map<tree,tree,decl_tree_traits> decl_tree_map;
|
|||
|
||||
/* Initialize the abstract argument list iterator object ITER with the
|
||||
arguments from CALL_EXPR node EXP. */
|
||||
static inline void
|
||||
inline void
|
||||
init_call_expr_arg_iterator (tree exp, call_expr_arg_iterator *iter)
|
||||
{
|
||||
iter->t = exp;
|
||||
|
@ -5784,7 +5784,7 @@ init_call_expr_arg_iterator (tree exp, call_expr_arg_iterator *iter)
|
|||
iter->i = 0;
|
||||
}
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
init_const_call_expr_arg_iterator (const_tree exp, const_call_expr_arg_iterator *iter)
|
||||
{
|
||||
iter->t = exp;
|
||||
|
@ -5794,7 +5794,7 @@ init_const_call_expr_arg_iterator (const_tree exp, const_call_expr_arg_iterator
|
|||
|
||||
/* Return the next argument from abstract argument list iterator object ITER,
|
||||
and advance its state. Return NULL_TREE if there are no more arguments. */
|
||||
static inline tree
|
||||
inline tree
|
||||
next_call_expr_arg (call_expr_arg_iterator *iter)
|
||||
{
|
||||
tree result;
|
||||
|
@ -5805,7 +5805,7 @@ next_call_expr_arg (call_expr_arg_iterator *iter)
|
|||
return result;
|
||||
}
|
||||
|
||||
static inline const_tree
|
||||
inline const_tree
|
||||
next_const_call_expr_arg (const_call_expr_arg_iterator *iter)
|
||||
{
|
||||
const_tree result;
|
||||
|
@ -5820,14 +5820,14 @@ next_const_call_expr_arg (const_call_expr_arg_iterator *iter)
|
|||
past and return the first argument. Useful in for expressions, e.g.
|
||||
for (arg = first_call_expr_arg (exp, &iter); arg;
|
||||
arg = next_call_expr_arg (&iter)) */
|
||||
static inline tree
|
||||
inline tree
|
||||
first_call_expr_arg (tree exp, call_expr_arg_iterator *iter)
|
||||
{
|
||||
init_call_expr_arg_iterator (exp, iter);
|
||||
return next_call_expr_arg (iter);
|
||||
}
|
||||
|
||||
static inline const_tree
|
||||
inline const_tree
|
||||
first_const_call_expr_arg (const_tree exp, const_call_expr_arg_iterator *iter)
|
||||
{
|
||||
init_const_call_expr_arg_iterator (exp, iter);
|
||||
|
@ -5836,7 +5836,7 @@ first_const_call_expr_arg (const_tree exp, const_call_expr_arg_iterator *iter)
|
|||
|
||||
/* Test whether there are more arguments in abstract argument list iterator
|
||||
ITER, without changing its state. */
|
||||
static inline bool
|
||||
inline bool
|
||||
more_call_expr_args_p (const call_expr_arg_iterator *iter)
|
||||
{
|
||||
return (iter->i < iter->n);
|
||||
|
@ -5853,7 +5853,7 @@ more_call_expr_args_p (const call_expr_arg_iterator *iter)
|
|||
(arg) = next_const_call_expr_arg (&(iter)))
|
||||
|
||||
/* Return true if tree node T is a language-specific node. */
|
||||
static inline bool
|
||||
inline bool
|
||||
is_lang_specific (const_tree t)
|
||||
{
|
||||
return TREE_CODE (t) == LANG_TYPE || TREE_CODE (t) >= NUM_TREE_CODES;
|
||||
|
@ -5871,7 +5871,7 @@ is_lang_specific (const_tree t)
|
|||
(IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (builtin_decl_explicit (BUILTIN))))
|
||||
|
||||
/* Return the tree node for an explicit standard builtin function or NULL. */
|
||||
static inline tree
|
||||
inline tree
|
||||
builtin_decl_explicit (enum built_in_function fncode)
|
||||
{
|
||||
gcc_checking_assert (BUILTIN_VALID_P (fncode));
|
||||
|
@ -5880,7 +5880,7 @@ builtin_decl_explicit (enum built_in_function fncode)
|
|||
}
|
||||
|
||||
/* Return the tree node for an implicit builtin function or NULL. */
|
||||
static inline tree
|
||||
inline tree
|
||||
builtin_decl_implicit (enum built_in_function fncode)
|
||||
{
|
||||
size_t uns_fncode = (size_t)fncode;
|
||||
|
@ -5900,7 +5900,7 @@ extern tree build_builtin_unreachable (location_t);
|
|||
/* Set explicit builtin function nodes and whether it is an implicit
|
||||
function. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_builtin_decl (enum built_in_function fncode, tree decl, bool implicit_p)
|
||||
{
|
||||
size_t ufncode = (size_t)fncode;
|
||||
|
@ -5915,7 +5915,7 @@ set_builtin_decl (enum built_in_function fncode, tree decl, bool implicit_p)
|
|||
|
||||
/* Set the implicit flag for a builtin function. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_builtin_decl_implicit_p (enum built_in_function fncode, bool implicit_p)
|
||||
{
|
||||
size_t uns_fncode = (size_t)fncode;
|
||||
|
@ -5928,7 +5928,7 @@ set_builtin_decl_implicit_p (enum built_in_function fncode, bool implicit_p)
|
|||
|
||||
/* Set the declared flag for a builtin function. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
set_builtin_decl_declared_p (enum built_in_function fncode, bool declared_p)
|
||||
{
|
||||
size_t uns_fncode = (size_t)fncode;
|
||||
|
@ -5942,7 +5942,7 @@ set_builtin_decl_declared_p (enum built_in_function fncode, bool declared_p)
|
|||
/* Return whether the standard builtin function can be used as an explicit
|
||||
function. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
builtin_decl_explicit_p (enum built_in_function fncode)
|
||||
{
|
||||
gcc_checking_assert (BUILTIN_VALID_P (fncode));
|
||||
|
@ -5951,7 +5951,7 @@ builtin_decl_explicit_p (enum built_in_function fncode)
|
|||
|
||||
/* Return whether the standard builtin function can be used implicitly. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
builtin_decl_implicit_p (enum built_in_function fncode)
|
||||
{
|
||||
size_t uns_fncode = (size_t)fncode;
|
||||
|
@ -5963,7 +5963,7 @@ builtin_decl_implicit_p (enum built_in_function fncode)
|
|||
|
||||
/* Return whether the standard builtin function was declared. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
builtin_decl_declared_p (enum built_in_function fncode)
|
||||
{
|
||||
size_t uns_fncode = (size_t)fncode;
|
||||
|
@ -5983,7 +5983,7 @@ builtin_decl_declared_p (enum built_in_function fncode)
|
|||
Avoid using this, as it's generally better to use attributes rather
|
||||
than to check for functions by name. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
maybe_special_function_p (const_tree fndecl)
|
||||
{
|
||||
tree name_decl = DECL_NAME (fndecl);
|
||||
|
@ -6001,7 +6001,7 @@ maybe_special_function_p (const_tree fndecl)
|
|||
/* Return true if T (assumed to be a DECL) is a global variable.
|
||||
A variable is considered global if its storage is not automatic. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
is_global_var (const_tree t)
|
||||
{
|
||||
return (TREE_STATIC (t) || DECL_EXTERNAL (t));
|
||||
|
@ -6011,7 +6011,7 @@ is_global_var (const_tree t)
|
|||
maybe aliased if it has its address taken by the local TU
|
||||
or possibly by another TU and might be modified through a pointer. */
|
||||
|
||||
static inline bool
|
||||
inline bool
|
||||
may_be_aliased (const_tree var)
|
||||
{
|
||||
return (TREE_CODE (var) != CONST_DECL
|
||||
|
@ -6025,7 +6025,7 @@ may_be_aliased (const_tree var)
|
|||
}
|
||||
|
||||
/* Return pointer to optimization flags of FNDECL. */
|
||||
static inline struct cl_optimization *
|
||||
inline struct cl_optimization *
|
||||
opts_for_fn (const_tree fndecl)
|
||||
{
|
||||
tree fn_opts = DECL_FUNCTION_SPECIFIC_OPTIMIZATION (fndecl);
|
||||
|
@ -6035,7 +6035,7 @@ opts_for_fn (const_tree fndecl)
|
|||
}
|
||||
|
||||
/* Return pointer to target flags of FNDECL. */
|
||||
static inline cl_target_option *
|
||||
inline cl_target_option *
|
||||
target_opts_for_fn (const_tree fndecl)
|
||||
{
|
||||
tree fn_opts = DECL_FUNCTION_SPECIFIC_TARGET (fndecl);
|
||||
|
|
|
@ -3495,7 +3495,7 @@ wi::set_bit_in_zero (unsigned int bit)
|
|||
|
||||
/* Accumulate a set of overflows into OVERFLOW. */
|
||||
|
||||
static inline void
|
||||
inline void
|
||||
wi::accumulate_overflow (wi::overflow_type &overflow,
|
||||
wi::overflow_type suboverflow)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue