comparison gcc/doc/gimple.texi @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 @c Copyright (C) 2008-2017 Free Software Foundation, Inc. 1 @c Copyright (C) 2008-2018 Free Software Foundation, Inc.
2 @c Free Software Foundation, Inc. 2 @c Free Software Foundation, Inc.
3 @c This is part of the GCC manual. 3 @c This is part of the GCC manual.
4 @c For copying conditions, see the file gcc.texi. 4 @c For copying conditions, see the file gcc.texi.
5 5
6 @node GIMPLE 6 @node GIMPLE
829 829
830 @deftypefn {GIMPLE function} bool is_gimple_omp (gimple g) 830 @deftypefn {GIMPLE function} bool is_gimple_omp (gimple g)
831 Return true if g is any of the OpenMP codes. 831 Return true if g is any of the OpenMP codes.
832 @end deftypefn 832 @end deftypefn
833 833
834 @deftypefn {GIMPLE function} gimple_debug_begin_stmt_p (gimple g)
835 Return true if g is a @code{GIMPLE_DEBUG} that marks the beginning of
836 a source statement.
837 @end deftypefn
838
839 @deftypefn {GIMPLE function} gimple_debug_inline_entry_p (gimple g)
840 Return true if g is a @code{GIMPLE_DEBUG} that marks the entry
841 point of an inlined function.
842 @end deftypefn
843
844 @deftypefn {GIMPLE function} gimple_debug_nonbind_marker_p (gimple g)
845 Return true if g is a @code{GIMPLE_DEBUG} that marks a program location,
846 without any variable binding.
847 @end deftypefn
848
834 @node Manipulating GIMPLE statements 849 @node Manipulating GIMPLE statements
835 @section Manipulating GIMPLE statements 850 @section Manipulating GIMPLE statements
836 @cindex Manipulating GIMPLE statements 851 @cindex Manipulating GIMPLE statements
837 852
838 This section documents all the functions available to handle each 853 This section documents all the functions available to handle each
1528 1543
1529 @node @code{GIMPLE_DEBUG} 1544 @node @code{GIMPLE_DEBUG}
1530 @subsection @code{GIMPLE_DEBUG} 1545 @subsection @code{GIMPLE_DEBUG}
1531 @cindex @code{GIMPLE_DEBUG} 1546 @cindex @code{GIMPLE_DEBUG}
1532 @cindex @code{GIMPLE_DEBUG_BIND} 1547 @cindex @code{GIMPLE_DEBUG_BIND}
1548 @cindex @code{GIMPLE_DEBUG_BEGIN_STMT}
1549 @cindex @code{GIMPLE_DEBUG_INLINE_ENTRY}
1533 1550
1534 @deftypefn {GIMPLE function} gdebug *gimple_build_debug_bind (tree var, @ 1551 @deftypefn {GIMPLE function} gdebug *gimple_build_debug_bind (tree var, @
1535 tree value, gimple stmt) 1552 tree value, gimple stmt)
1536 Build a @code{GIMPLE_DEBUG} statement with @code{GIMPLE_DEBUG_BIND} of 1553 Build a @code{GIMPLE_DEBUG} statement with @code{GIMPLE_DEBUG_BIND}
1537 @code{subcode}. The effect of this statement is to tell debug 1554 @code{subcode}. The effect of this statement is to tell debug
1538 information generation machinery that the value of user variable 1555 information generation machinery that the value of user variable
1539 @code{var} is given by @code{value} at that point, and to remain with 1556 @code{var} is given by @code{value} at that point, and to remain with
1540 that value until @code{var} runs out of scope, a 1557 that value until @code{var} runs out of scope, a
1541 dynamically-subsequent debug bind statement overrides the binding, or 1558 dynamically-subsequent debug bind statement overrides the binding, or
1602 @deftypefn {GIMPLE function} bool gimple_debug_bind_has_value_p (gimple stmt) 1619 @deftypefn {GIMPLE function} bool gimple_debug_bind_has_value_p (gimple stmt)
1603 Return @code{TRUE} if @code{stmt} binds a user variable to a value, 1620 Return @code{TRUE} if @code{stmt} binds a user variable to a value,
1604 and @code{FALSE} if it unbinds the variable. 1621 and @code{FALSE} if it unbinds the variable.
1605 @end deftypefn 1622 @end deftypefn
1606 1623
1624 @deftypefn {GIMPLE function} gimple gimple_build_debug_begin_stmt (tree block, location_t location)
1625 Build a @code{GIMPLE_DEBUG} statement with
1626 @code{GIMPLE_DEBUG_BEGIN_STMT} @code{subcode}. The effect of this
1627 statement is to tell debug information generation machinery that the
1628 user statement at the given @code{location} and @code{block} starts at
1629 the point at which the statement is inserted. The intent is that side
1630 effects (e.g. variable bindings) of all prior user statements are
1631 observable, and that none of the side effects of subsequent user
1632 statements are.
1633 @end deftypefn
1634
1635 @deftypefn {GIMPLE function} gimple gimple_build_debug_inline_entry (tree block, location_t location)
1636 Build a @code{GIMPLE_DEBUG} statement with
1637 @code{GIMPLE_DEBUG_INLINE_ENTRY} @code{subcode}. The effect of this
1638 statement is to tell debug information generation machinery that a
1639 function call at @code{location} underwent inline substitution, that
1640 @code{block} is the enclosing lexical block created for the
1641 substitution, and that at the point of the program in which the stmt is
1642 inserted, all parameters for the inlined function are bound to the
1643 respective arguments, and none of the side effects of its stmts are
1644 observable.
1645 @end deftypefn
1646
1607 @node @code{GIMPLE_EH_FILTER} 1647 @node @code{GIMPLE_EH_FILTER}
1608 @subsection @code{GIMPLE_EH_FILTER} 1648 @subsection @code{GIMPLE_EH_FILTER}
1609 @cindex @code{GIMPLE_EH_FILTER} 1649 @cindex @code{GIMPLE_EH_FILTER}
1610 1650
1611 @deftypefn {GIMPLE function} geh_filter *gimple_build_eh_filter (tree types, @ 1651 @deftypefn {GIMPLE function} geh_filter *gimple_build_eh_filter (tree types, @