tree
gimple_simplify (enum tree_code, tree, tree, gimple_seq *, tree (*)(tree))
¶tree
gimple_simplify (enum tree_code, tree, tree, tree, gimple_seq *, tree (*)(tree))
¶tree
gimple_simplify (enum tree_code, tree, tree, tree, tree, gimple_seq *, tree (*)(tree))
¶tree
gimple_simplify (enum built_in_function, tree, tree, gimple_seq *, tree (*)(tree))
¶tree
gimple_simplify (enum built_in_function, tree, tree, tree, gimple_seq *, tree (*)(tree))
¶tree
gimple_simplify (enum built_in_function, tree, tree, tree, tree, gimple_seq *, tree (*)(tree))
¶The main GIMPLE API entry to the expression simplifications mimicking that of the GENERIC fold_{unary,binary,ternary} functions.
thus providing n-ary overloads for operation or function. The
additional arguments are a gimple_seq where built statements are
inserted on (if NULL
then simplifications requiring new statements
are not performed) and a valueization hook that can be used to
tie simplifications to a SSA lattice.
In addition to those APIs fold_stmt
is overloaded with
a valueization hook:
fold_stmt
(gimple_stmt_iterator *, tree (*)(tree));
¶On top of these a fold_buildN
-like API for GIMPLE is introduced:
tree
gimple_build (gimple_seq *, location_t, enum tree_code, tree, tree, tree (*valueize) (tree) = NULL);
¶tree
gimple_build (gimple_seq *, location_t, enum tree_code, tree, tree, tree, tree (*valueize) (tree) = NULL);
¶tree
gimple_build (gimple_seq *, location_t, enum tree_code, tree, tree, tree, tree, tree (*valueize) (tree) = NULL);
¶tree
gimple_build (gimple_seq *, location_t, enum built_in_function, tree, tree, tree (*valueize) (tree) = NULL);
¶tree
gimple_build (gimple_seq *, location_t, enum built_in_function, tree, tree, tree, tree (*valueize) (tree) = NULL);
¶tree
gimple_build (gimple_seq *, location_t, enum built_in_function, tree, tree, tree, tree, tree (*valueize) (tree) = NULL);
¶tree
gimple_convert (gimple_seq *, location_t, tree, tree);
¶which is supposed to replace force_gimple_operand (fold_buildN (...), ...)
and calls to fold_convert
. Overloads without the location_t
argument exist. Built statements are inserted on the provided sequence
and simplification is performed using the optional valueization hook.