X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbera.h;h=5afee30cc53783b8eb1f1ed482ce3badbf756c67;hb=5b51879171b314533f689985b172e62a7aefd66a;hp=cb64fa664c2d9173c0c7a40517cdc172e6c41ffd;hpb=5663da1d73944b6aae2bf6d38ef58e188ad76e1c;p=libfirm diff --git a/ir/be/bera.h b/ir/be/bera.h index cb64fa664..5afee30cc 100644 --- a/ir/be/bera.h +++ b/ir/be/bera.h @@ -7,7 +7,27 @@ #ifndef _BERA_H #define _BERA_H +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef WITH_LIBCORE +#include +#endif + #include "irnode.h" +#include "irgraph.h" + +#include "be.h" + +typedef struct { +#ifdef WITH_LIBCORE + void (*register_options)(lc_opt_entry_t *grp); +#endif + void (*allocate)(const be_main_env_t *env, ir_graph *irg); +} be_ra_t; + + /** * Check, if two values interfere. @@ -17,4 +37,15 @@ */ int values_interfere(const ir_node *a, const ir_node *b); +/** + * Check, if a value dominates the other one. + * Note, that this function also considers the schedule and does thus + * more than block_dominates(). + * + * @param a The first. + * @param b The second value. + * @return 1 if a dominates b, 0 else. + */ +int value_dominates(const ir_node *a, const ir_node *b); + #endif /* _BERA_H */