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