X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbera.h;h=cb0f5880937ba5c667d8c630113242b078544a55;hb=7438ae082c9ec7658ccd006b40aa62084aedca2d;hp=cb64fa664c2d9173c0c7a40517cdc172e6c41ffd;hpb=5663da1d73944b6aae2bf6d38ef58e188ad76e1c;p=libfirm diff --git a/ir/be/bera.h b/ir/be/bera.h index cb64fa664..cb0f58809 100644 --- a/ir/be/bera.h +++ b/ir/be/bera.h @@ -7,7 +7,24 @@ #ifndef _BERA_H #define _BERA_H -#include "irnode.h" +#include "firm_config.h" + +#ifdef WITH_LIBCORE +#include +#endif + +#include "firm_types.h" + +#include "be.h" + +typedef struct { +#ifdef WITH_LIBCORE + void (*register_options)(lc_opt_entry_t *grp); +#endif + void (*allocate)(const be_irg_t *bi); +} be_ra_t; + + /** * Check, if two values interfere. @@ -17,4 +34,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 */