libFirm
iropt.h
1 /*
2  * This file is part of libFirm.
3  * Copyright (C) 2012 University of Karlsruhe.
4  */
5 
11 #ifndef FIRM_IR_IROPT_H
12 #define FIRM_IR_IROPT_H
13 
14 #include "firm_types.h"
15 #include "begin.h"
16 
27 FIRM_API ir_tarval *computed_value(const ir_node *n);
28 
37 FIRM_API ir_node *optimize_in_place(ir_node *n);
38 
42 FIRM_API int ir_is_negated_value(const ir_node *a, const ir_node *b);
43 
49  const ir_node *right);
50 
56 FIRM_API void ir_allow_imprecise_float_transforms(int enable);
57 
59 FIRM_API int ir_imprecise_float_transforms_allowed(void);
60 
63 #include "end.h"
64 
65 #endif
int ir_is_negated_value(const ir_node *a, const ir_node *b)
checks whether 1 value is the negated other value
struct ir_tarval ir_tarval
Target Machine Value.
Definition: firm_types.h:68
int ir_imprecise_float_transforms_allowed(void)
return 1 if imprecise float transformations are allowed.
ir_relation
Relations for comparing numbers.
Definition: firm_types.h:159
ir_node * optimize_in_place(ir_node *n)
Applies all optimizations to n that are expressible as a pattern in Firm, i.e., they need not a walk ...
ir_tarval * computed_value(const ir_node *n)
If the expression referenced can be evaluated statically computed_value returns a tarval representing...
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53
void ir_allow_imprecise_float_transforms(int enable)
enable/disable imprecise floatingpoint optimizations.
ir_relation ir_get_possible_cmp_relations(const ir_node *left, const ir_node *right)
(conservatively) approximates all possible relations when comparing the value left and right ...