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()