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 
16 #include "begin.h"
17 
28 FIRM_API ir_tarval *computed_value(const ir_node *n);
29 
38 FIRM_API ir_node *optimize_in_place(ir_node *n);
39 
43 FIRM_API int ir_is_negated_value(const ir_node *a, const ir_node *b);
44 
50  const ir_node *right);
51 
57 FIRM_API void ir_allow_imprecise_float_transforms(int enable);
58 
60 FIRM_API int ir_imprecise_float_transforms_allowed(void);
61 
64 #include "end.h"
65 
66 #endif
int ir_is_negated_value(const ir_node *a, const ir_node *b)
checks whether 1 value is the negated other value
ir_relation
Relations for comparing numbers.
Definition: firm_types.h:162
struct ir_tarval ir_tarval
Target Machine Value.
Definition: firm_types.h:68
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 ...
int ir_imprecise_float_transforms_allowed(void)
return 1 if imprecise float transformations are allowed.
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 ...
ir_tarval * computed_value(const ir_node *n)
If the expression referenced can be evaluated statically computed_value returns a tarval representing...
void ir_allow_imprecise_float_transforms(int enable)
enable/disable imprecise floatingpoint optimizations.
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53