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 #include "begin.h"
16 
31 };
32 
34 typedef struct {
41  enum range_types range_type;
44 } vrp_attr;
45 
50 FIRM_API void set_vrp_data(ir_graph *irg);
51 
55 FIRM_API void free_vrp_data(ir_graph *irg);
56 
64 FIRM_API ir_relation vrp_cmp(const ir_node *left, const ir_node *right);
65 
73 FIRM_API vrp_attr *vrp_get_info(const ir_node *n);
74 
77 #include "end.h"
78 
79 #endif
No information could be derived so far.
Definition: vrp.h:26
ir_tarval * range_bottom
lower end of the value range
Definition: vrp.h:42
void set_vrp_data(ir_graph *irg)
Sets vrp data on the graph irg.
information cannot be derived
Definition: vrp.h:30
VRP information for a single node.
Definition: vrp.h:34
ir_tarval * bits_set
The bits which, by analysis, are definitely set: 0: may be not set, 1: definitely set...
Definition: vrp.h:35
struct ir_tarval ir_tarval
Target Machine Value.
Definition: firm_types.h:68
bottom and top form a range, including both values
Definition: vrp.h:27
range_types
Type of a value range.
Definition: vrp.h:25
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! ...
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:38
ir_relation
Relations for comparing numbers.
Definition: firm_types.h:159
ir_relation vrp_cmp(const ir_node *left, const ir_node *right)
Test, if the two nodes can be compared with their vrp information.
ir_tarval * range_top
upper end of the value range
Definition: vrp.h:43
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53
struct ir_graph ir_graph
Procedure Graph.
Definition: firm_types.h:74
range from bottom to top cannot be, but borders might be
Definition: vrp.h:28