GCC Middle and Back End API Reference
ipa-predicate.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  expr_eval_op
 
struct  condition
 
struct  inline_param_summary
 
class  ipa_predicate
 

Typedefs

typedef vec< expr_eval_op, va_gc > * expr_eval_ops
 
typedef vec< condition, va_gc > * conditions
 
typedef uint32_t clause_t
 

Functions

void dump_condition (FILE *f, conditions conditions, int cond)
 
ipa_predicate add_condition (ipa_fn_summary *summary, ipa_node_params *params_summary, int operand_num, tree type, struct agg_position_info *aggpos, enum tree_code code, tree val, expr_eval_ops param_ops=NULL)
 

Typedef Documentation

◆ clause_t

typedef uint32_t clause_t
Predicates are used to represent function parameters (such as runtime) which depend on a context function is called in. Predicates are logical formulas in conjunctive-disjunctive form consisting of clauses which are bitmaps specifying a set of condition that must be true for a clause to be satisfied. Physically they are represented as array of clauses terminated by 0. In order to make predicate (possibly) true, all of its clauses must be (possibly) true. To make clause (possibly) true, one of conditions it mentions must be (possibly) true. There are fixed bounds on number of clauses and conditions and all the manipulation functions are conservative in positive direction. I.e. we may lose precision by thinking that predicate may be true even when it is not.

◆ conditions

◆ expr_eval_ops

Function Documentation

◆ add_condition()

◆ dump_condition()