Next: Sequence iterators, Previous: Tuple specific accessors, Up: GIMPLE [Contents][Index]
GIMPLE sequences are the tuple equivalent of STATEMENT_LIST’s
used in GENERIC. They are used to chain statements together, and
when used in conjunction with sequence iterators, provide a
framework for iterating through statements.
GIMPLE sequences are of type struct gimple_sequence, but are more
commonly passed by reference to functions dealing with sequences.
The type for a sequence pointer is gimple_seq which is the same
as struct gimple_sequence *. When declaring a local sequence,
you can define a local variable of type struct gimple_sequence.
When declaring a sequence allocated on the garbage collected
heap, use the function gimple_seq_alloc documented below.
There are convenience functions for iterating through sequences in the section entitled Sequence Iterators.
Below is a list of functions to manipulate and query sequences.
Link a gimple statement to the end of the sequence *SEQ if G is
not NULL. If *SEQ is NULL, allocate a sequence before linking.
Append sequence SRC to the end of sequence *DEST if SRC is not
NULL. If *DEST is NULL, allocate a new sequence before
appending.
Perform a deep copy of sequence SRC and return the result.
Reverse the order of the statements in the sequence SEQ. Return
SEQ.
Return the first statement in sequence S.
Return the last statement in sequence S.
Set the last statement in sequence S to the statement in LAST.
Set the first statement in sequence S to the statement in FIRST.
Initialize sequence S to an empty sequence.
Allocate a new sequence in the garbage collected store and return it.
Copy the sequence SRC into the sequence DEST.
Return true if the sequence S is empty.
Returns the sequence of statements in BB.
Sets the sequence of statements in BB to SEQ.
Determine whether SEQ contains exactly one statement.
Next: Sequence iterators, Previous: Tuple specific accessors, Up: GIMPLE [Contents][Index]