Hi, this trivial patch just moves several gimple.h functions down to after the gimple_statement_d definition (whose members will be used by them with patch 6).
As per [0/6] regstrapped with the other five on x86_64-linux. I consider this obvious. Ciao, Michael. ---------------------- 2012-05-02 Michael Matz <m...@suse.de> * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last, gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first, gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq, set_bb_seq): Move down to after gimple_statement_d definition. Index: gimple.h =================================================================== *** gimple.h.orig 2012-05-01 22:43:34.000000000 +0200 --- gimple.h 2012-05-01 22:44:15.000000000 +0200 *************** struct GTY ((chain_next ("%h.next_free") *** 154,262 **** }; - /* Return the first node in GIMPLE sequence S. */ - - static inline gimple_seq_node - gimple_seq_first (const_gimple_seq s) - { - return s ? s->first : NULL; - } - - - /* Return the first statement in GIMPLE sequence S. */ - - static inline gimple - gimple_seq_first_stmt (const_gimple_seq s) - { - gimple_seq_node n = gimple_seq_first (s); - return (n) ? n->stmt : NULL; - } - - - /* Return the last node in GIMPLE sequence S. */ - - static inline gimple_seq_node - gimple_seq_last (const_gimple_seq s) - { - return s ? s->last : NULL; - } - - - /* Return the last statement in GIMPLE sequence S. */ - - static inline gimple - gimple_seq_last_stmt (const_gimple_seq s) - { - gimple_seq_node n = gimple_seq_last (s); - return (n) ? n->stmt : NULL; - } - - - /* Set the last node in GIMPLE sequence S to LAST. */ - - static inline void - gimple_seq_set_last (gimple_seq s, gimple_seq_node last) - { - s->last = last; - } - - - /* Set the first node in GIMPLE sequence S to FIRST. */ - - static inline void - gimple_seq_set_first (gimple_seq s, gimple_seq_node first) - { - s->first = first; - } - - - /* Return true if GIMPLE sequence S is empty. */ - - static inline bool - gimple_seq_empty_p (const_gimple_seq s) - { - return s == NULL || s->first == NULL; - } - - - void gimple_seq_add_stmt (gimple_seq *, gimple); - - /* Link gimple statement GS to the end of the sequence *SEQ_P. If - *SEQ_P is NULL, a new sequence is allocated. This function is - similar to gimple_seq_add_stmt, but does not scan the operands. - During gimplification, we need to manipulate statement sequences - before the def/use vectors have been constructed. */ - void gimple_seq_add_stmt_without_update (gimple_seq *, gimple); - - /* Allocate a new sequence and initialize its first element with STMT. */ - - static inline gimple_seq - gimple_seq_alloc_with_stmt (gimple stmt) - { - gimple_seq seq = NULL; - gimple_seq_add_stmt (&seq, stmt); - return seq; - } - - - /* Returns the sequence of statements in BB. */ - - static inline gimple_seq - bb_seq (const_basic_block bb) - { - return (!(bb->flags & BB_RTL) && bb->il.gimple) ? bb->il.gimple->seq : NULL; - } - - - /* Sets the sequence of statements in BB to SEQ. */ - - static inline void - set_bb_seq (basic_block bb, gimple_seq seq) - { - gcc_checking_assert (!(bb->flags & BB_RTL)); - bb->il.gimple->seq = seq; - } - /* Iterator object for GIMPLE statement sequences. */ typedef struct --- 154,159 ---- *************** extern tree tree_ssa_strip_useless_type_ *** 1135,1140 **** --- 1032,1141 ---- extern bool useless_type_conversion_p (tree, tree); extern bool types_compatible_p (tree, tree); + /* Return the first node in GIMPLE sequence S. */ + + static inline gimple_seq_node + gimple_seq_first (const_gimple_seq s) + { + return s ? s->first : NULL; + } + + + /* Return the first statement in GIMPLE sequence S. */ + + static inline gimple + gimple_seq_first_stmt (const_gimple_seq s) + { + gimple_seq_node n = gimple_seq_first (s); + return (n) ? n->stmt : NULL; + } + + + /* Return the last node in GIMPLE sequence S. */ + + static inline gimple_seq_node + gimple_seq_last (const_gimple_seq s) + { + return s ? s->last : NULL; + } + + + /* Return the last statement in GIMPLE sequence S. */ + + static inline gimple + gimple_seq_last_stmt (const_gimple_seq s) + { + gimple_seq_node n = gimple_seq_last (s); + return (n) ? n->stmt : NULL; + } + + + /* Set the last node in GIMPLE sequence S to LAST. */ + + static inline void + gimple_seq_set_last (gimple_seq s, gimple_seq_node last) + { + s->last = last; + } + + + /* Set the first node in GIMPLE sequence S to FIRST. */ + + static inline void + gimple_seq_set_first (gimple_seq s, gimple_seq_node first) + { + s->first = first; + } + + + /* Return true if GIMPLE sequence S is empty. */ + + static inline bool + gimple_seq_empty_p (const_gimple_seq s) + { + return s == NULL || s->first == NULL; + } + + + void gimple_seq_add_stmt (gimple_seq *, gimple); + + /* Link gimple statement GS to the end of the sequence *SEQ_P. If + *SEQ_P is NULL, a new sequence is allocated. This function is + similar to gimple_seq_add_stmt, but does not scan the operands. + During gimplification, we need to manipulate statement sequences + before the def/use vectors have been constructed. */ + void gimple_seq_add_stmt_without_update (gimple_seq *, gimple); + + /* Allocate a new sequence and initialize its first element with STMT. */ + + static inline gimple_seq + gimple_seq_alloc_with_stmt (gimple stmt) + { + gimple_seq seq = NULL; + gimple_seq_add_stmt (&seq, stmt); + return seq; + } + + + /* Returns the sequence of statements in BB. */ + + static inline gimple_seq + bb_seq (const_basic_block bb) + { + return (!(bb->flags & BB_RTL) && bb->il.gimple) ? bb->il.gimple->seq : NULL; + } + + + /* Sets the sequence of statements in BB to SEQ. */ + + static inline void + set_bb_seq (basic_block bb, gimple_seq seq) + { + gcc_checking_assert (!(bb->flags & BB_RTL)); + bb->il.gimple->seq = seq; + } + + /* Return the code for GIMPLE statement G. */ static inline enum gimple_code