libFirm
vrp.h
1 /*
2  * This file is part of libFirm.
3  * Copyright (C) 2012 University of Karlsruhe.
4  */
5 
11 #ifndef VRP_H
12 #define VRP_H
13 
14 #include "firm_types.h"
15 
16 #include "begin.h"
17 
32 };
33 
35 typedef struct {
42  enum range_types range_type;
45 } vrp_attr;
46 
51 FIRM_API void set_vrp_data(ir_graph *irg);
52 
56 FIRM_API void free_vrp_data(ir_graph *irg);
57 
65 FIRM_API ir_relation vrp_cmp(const ir_node *left, const ir_node *right);
66 
74 FIRM_API vrp_attr *vrp_get_info(const ir_node *n);
75 
78 #include "end.h"
79 
80 #endif
ir_relation
Relations for comparing numbers.
Definition: firm_types.h:162
struct ir_tarval ir_tarval
Target Machine Value.
Definition: firm_types.h:68
range from bottom to top cannot be, but borders might be
Definition: vrp.h:29
void set_vrp_data(ir_graph *irg)
Sets vrp data on the graph irg.
ir_tarval * range_bottom
lower end of the value range
Definition: vrp.h:43
ir_tarval * bits_set
The bits which, by analysis, are definitely set: 0: may be not set, 1: definitely set...
Definition: vrp.h:36
VRP information for a single node.
Definition: vrp.h:35
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53
No information could be derived so far.
Definition: vrp.h:27
void free_vrp_data(ir_graph *irg)
free vrp infos in an irg
ir_tarval * bits_not_set
The bits which by analysis are definitely not set: 1 for may be set, 0: definitely not set...
Definition: vrp.h:39
range_types
Type of a value range.
Definition: vrp.h:26
bottom and top form a range, including both values
Definition: vrp.h:28
ir_tarval * range_top
upper end of the value range
Definition: vrp.h:44
ir_relation vrp_cmp(const ir_node *left, const ir_node *right)
Test, if the two nodes can be compared with their vrp information.
struct ir_graph ir_graph
Procedure Graph.
Definition: firm_types.h:74
vrp_attr * vrp_get_info(const ir_node *n)
Returns the vrp data for this node Note: only allowed for nodes with an integer mode! ...
information cannot be derived
Definition: vrp.h:31