X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbearch_t.h;h=efba49542a4c8edb7df33677cf1199a8ca867855;hb=952e0be71291f6475cb4c86894e43dc531eb8980;hp=6a1909642a92836385a2fd0a1859b8958f88e5b8;hpb=3f0b6e8217576d23654d406170c543a791edac56;p=libfirm diff --git a/ir/be/bearch_t.h b/ir/be/bearch_t.h index 6a1909642..efba49542 100644 --- a/ir/be/bearch_t.h +++ b/ir/be/bearch_t.h @@ -523,6 +523,11 @@ struct arch_isa_if_t { */ ir_graph **(*get_backend_irg_list)(const void *self, ir_graph ***irgs); + /** + * mark node as rematerialized + */ + void (*mark_remat)(const void *self, ir_node *node); + /** * parse an assembler constraint part and set flags according to its nature * advances the *c pointer to point to the last parsed character (so if you @@ -534,7 +539,7 @@ struct arch_isa_if_t { * returns true if the string is a valid clobbered (register) in this * backend */ - bool (*is_valid_clobber)(const void *self, const char *clobber); + int (*is_valid_clobber)(const void *self, const char *clobber); }; #define arch_env_done(env) ((env)->impl->done(env)) @@ -552,6 +557,8 @@ struct arch_isa_if_t { #define arch_env_get_backend_irg_list(env,irgs) ((env)->impl->get_backend_irg_list((env), (irgs))) #define arch_env_parse_asm_constraint(env,c) ((env)->impl->parse_asm_constraint((env), (c)) #define arch_env_is_valid_clobber(env,clobber) ((env)->impl->is_valid_clobber((env), (clobber)) +#define arch_env_mark_remat(env,node) \ + do { if ((env)->impl->mark_remat != NULL) (env)->impl->mark_remat((env), (node)); } while(0) /** * ISA base class.