gccint: GIMPLE sequences

1 
1 12.9 GIMPLE sequences
1 =====================
1 
1 GIMPLE sequences are the tuple equivalent of 'STATEMENT_LIST''s used in
1 'GENERIC'.  They are used to chain statements together, and when used in
1 conjunction with sequence iterators, provide a framework for iterating
1 through statements.
1 
1  GIMPLE sequences are of type struct 'gimple_sequence', but are more
1 commonly passed by reference to functions dealing with sequences.  The
1 type for a sequence pointer is 'gimple_seq' which is the same as struct
1 'gimple_sequence' *.  When declaring a local sequence, you can define a
1 local variable of type struct 'gimple_sequence'.  When declaring a
1 sequence allocated on the garbage collected heap, use the function
1 'gimple_seq_alloc' documented below.
1 
1  There are convenience functions for iterating through sequences in the
1 section entitled Sequence Iterators.
1 
1  Below is a list of functions to manipulate and query sequences.
1 
1  -- GIMPLE function: void gimple_seq_add_stmt (gimple_seq *seq, gimple
1           g)
1      Link a gimple statement to the end of the sequence *'SEQ' if 'G' is
1      not 'NULL'.  If *'SEQ' is 'NULL', allocate a sequence before
1      linking.
1 
1  -- GIMPLE function: void gimple_seq_add_seq (gimple_seq *dest,
1           gimple_seq src)
1      Append sequence 'SRC' to the end of sequence *'DEST' if 'SRC' is
1      not 'NULL'.  If *'DEST' is 'NULL', allocate a new sequence before
1      appending.
1 
1  -- GIMPLE function: gimple_seq gimple_seq_deep_copy (gimple_seq src)
1      Perform a deep copy of sequence 'SRC' and return the result.
1 
1  -- GIMPLE function: gimple_seq gimple_seq_reverse (gimple_seq seq)
1      Reverse the order of the statements in the sequence 'SEQ'.  Return
1      'SEQ'.
1 
1  -- GIMPLE function: gimple gimple_seq_first (gimple_seq s)
1      Return the first statement in sequence 'S'.
1 
1  -- GIMPLE function: gimple gimple_seq_last (gimple_seq s)
1      Return the last statement in sequence 'S'.
1 
1  -- GIMPLE function: void gimple_seq_set_last (gimple_seq s, gimple
1           last)
1      Set the last statement in sequence 'S' to the statement in 'LAST'.
1 
1  -- GIMPLE function: void gimple_seq_set_first (gimple_seq s, gimple
1           first)
1      Set the first statement in sequence 'S' to the statement in
1      'FIRST'.
1 
1  -- GIMPLE function: void gimple_seq_init (gimple_seq s)
1      Initialize sequence 'S' to an empty sequence.
1 
1  -- GIMPLE function: gimple_seq gimple_seq_alloc (void)
1      Allocate a new sequence in the garbage collected store and return
1      it.
1 
1  -- GIMPLE function: void gimple_seq_copy (gimple_seq dest, gimple_seq
1           src)
1      Copy the sequence 'SRC' into the sequence 'DEST'.
1 
1  -- GIMPLE function: bool gimple_seq_empty_p (gimple_seq s)
1      Return true if the sequence 'S' is empty.
1 
1  -- GIMPLE function: gimple_seq bb_seq (basic_block bb)
1      Returns the sequence of statements in 'BB'.
1 
1  -- GIMPLE function: void set_bb_seq (basic_block bb, gimple_seq seq)
1      Sets the sequence of statements in 'BB' to 'SEQ'.
1 
1  -- GIMPLE function: bool gimple_seq_singleton_p (gimple_seq seq)
1      Determine whether 'SEQ' contains exactly one statement.
1