Go to the source code of this file.
Functions |
void | omega_initialize (void) |
omega_pb | omega_alloc_problem (int, int) |
enum omega_result | omega_solve_problem (omega_pb, enum omega_result) |
enum omega_result | omega_simplify_problem (omega_pb) |
enum omega_result | omega_simplify_approximate (omega_pb) |
enum omega_result | omega_constrain_variable_sign (omega_pb, enum omega_eqn_color, int, int) |
void | debug (omega_pb_d &ref) |
void | debug (omega_pb_d *ptr) |
void | debug_omega_problem (omega_pb) |
void | omega_print_problem (FILE *, omega_pb) |
void | omega_print_red_equations (FILE *, omega_pb) |
int | omega_count_red_equations (omega_pb) |
void | omega_pretty_print_problem (FILE *, omega_pb) |
void | omega_unprotect_variable (omega_pb, int var) |
void | omega_negate_geq (omega_pb, int) |
void | omega_convert_eq_to_geqs (omega_pb, int eq) |
void | omega_print_eqn (FILE *, omega_pb, eqn, bool, int) |
bool | omega_problem_has_red_equations (omega_pb) |
enum omega_result | omega_eliminate_redundant (omega_pb, bool) |
void | omega_eliminate_red (omega_pb, bool) |
void | omega_constrain_variable_value (omega_pb, enum omega_eqn_color, int, int) |
bool | omega_query_variable (omega_pb, int, int *, int *) |
int | omega_query_variable_signs (omega_pb, int, int, int, int, int, int, bool *, int *) |
bool | omega_query_variable_bounds (omega_pb, int, int *, int *) |
void | omega_no_procedure (omega_pb) |
static bool | omega_wildcard_p () |
static bool | omega_safe_var_p () |
static void | omega_print_eq () |
static void | omega_print_geq () |
static void | omega_print_geq_extra () |
static void | omega_copy_eqn () |
static void | omega_init_eqn_zero () |
static eqn | omega_alloc_eqns () |
static void | omega_free_eqns () |
static bool | single_var_geq () |
static int | omega_add_zero_eq () |
static int | omega_add_zero_geq () |
static void | omega_initialize_variables () |
static void | omega_free_problem () |
static void | omega_copy_problem () |
Typedef Documentation
Enumeration Type Documentation
Values used for labeling equations. Private (not used outside the
solver).
- Enumerator:
-
Results of the Omega solver.
- Enumerator:
omega_false |
|
omega_true |
|
omega_unknown |
Value returned when the solver is unable to determine an
answer. |
omega_simplify |
Value used for asking the solver to simplify the system. |
Function Documentation
static int omega_add_zero_eq |
( |
| ) |
|
|
inlinestatic |
static int omega_add_zero_geq |
( |
| ) |
|
|
inlinestatic |
static eqn omega_alloc_eqns |
( |
| ) |
|
|
inlinestatic |
Allocate N equations with S variables.
omega_pb omega_alloc_problem |
( |
int |
, |
|
|
int |
|
|
) |
| |
Unprotects VAR and simplifies PB.
void omega_convert_eq_to_geqs |
( |
omega_pb |
, |
|
|
int |
eq |
|
) |
| |
static void omega_copy_eqn |
( |
| ) |
|
|
inlinestatic |
static void omega_copy_problem |
( |
| ) |
|
|
inlinestatic |
int omega_count_red_equations |
( |
omega_pb |
| ) |
|
void omega_eliminate_red |
( |
omega_pb |
, |
|
|
bool |
|
|
) |
| |
static void omega_free_eqns |
( |
| ) |
|
|
inlinestatic |
static void omega_free_problem |
( |
| ) |
|
|
inlinestatic |
static void omega_init_eqn_zero |
( |
| ) |
|
|
inlinestatic |
void omega_initialize |
( |
void |
| ) |
|
Initialization of the Omega solver.
static void omega_initialize_variables |
( |
| ) |
|
|
inlinestatic |
void omega_negate_geq |
( |
omega_pb |
, |
|
|
int |
|
|
) |
| |
void omega_pretty_print_problem |
( |
FILE * |
, |
|
|
omega_pb |
|
|
) |
| |
static void omega_print_eq |
( |
| ) |
|
|
inlinestatic |
void omega_print_eqn |
( |
FILE * |
, |
|
|
omega_pb |
, |
|
|
eqn |
, |
|
|
bool |
, |
|
|
int |
|
|
) |
| |
static void omega_print_geq |
( |
| ) |
|
|
inlinestatic |
static void omega_print_geq_extra |
( |
| ) |
|
|
inlinestatic |
Print to FILE inequality E from PB.
void omega_print_problem |
( |
FILE * |
, |
|
|
omega_pb |
|
|
) |
| |
void omega_print_red_equations |
( |
FILE * |
, |
|
|
omega_pb |
|
|
) |
| |
bool omega_problem_has_red_equations |
( |
omega_pb |
| ) |
|
bool omega_query_variable |
( |
omega_pb |
, |
|
|
int |
, |
|
|
int * |
, |
|
|
int * |
|
|
) |
| |
bool omega_query_variable_bounds |
( |
omega_pb |
, |
|
|
int |
, |
|
|
int * |
, |
|
|
int * |
|
|
) |
| |
int omega_query_variable_signs |
( |
omega_pb |
pb, |
|
|
int |
i, |
|
|
int |
dd_lt, |
|
|
int |
dd_eq, |
|
|
int |
dd_gt, |
|
|
int |
lower_bound, |
|
|
int |
upper_bound, |
|
|
bool * |
dist_known, |
|
|
int * |
dist |
|
) |
| |
For problem PB, return an integer that represents the classic data
dependence direction in function of the DD_LT, DD_EQ and DD_GT bit
masks that are added to the result. When DIST_KNOWN is true, DIST
is set to the classic data dependence distance. LOWER_BOUND and
UPPER_BOUND are bounds on the value of variable I, for example, it
is possible to narrow the iteration domain with safe approximations
of loop counts, and thus discard some data dependences that cannot
occur.
static bool omega_safe_var_p |
( |
| ) |
|
|
inlinestatic |
void omega_unprotect_variable |
( |
omega_pb |
, |
|
|
int |
var |
|
) |
| |
static bool omega_wildcard_p |
( |
| ) |
|
|
inlinestatic |
Return true when variable I in problem PB is a wildcard.
References omega_print_eqn().
static bool single_var_geq |
( |
| ) |
|
|
inlinestatic |
Variable Documentation