|
libFirm 1.20
|
Memory disambiguator. More...
Go to the source code of this file.
Typedefs | |
| typedef ir_alias_relation(* | DISAMBIGUATOR_FUNC )(const ir_node *adr1, const ir_mode *mode1, const ir_node *adr2, const ir_mode *mode2) |
| A source language specific memory disambiguator function. | |
Enumerations | |
| enum | ir_alias_relation { ir_no_alias, ir_may_alias, ir_sure_alias } |
| The alias relation of two memory addresses. More... | |
| enum | ir_entity_usage_computed_state { ir_entity_usage_not_computed, ir_entity_usage_computed } |
| The state of the entity usage flags. More... | |
| enum | ir_disambuigator_options { aa_opt_no_opt = 0, aa_opt_type_based = 1, aa_opt_byte_type_may_alias = 2, aa_opt_no_alias_args = 4, aa_opt_no_alias_args_global = 8, aa_opt_no_alias = 16, aa_opt_inherited = 128 } |
| Possible options for the memory disambiguator. More... | |
| enum | ir_storage_class_class_t { ir_sc_pointer = 0x0, ir_sc_globalvar = 0x1, ir_sc_localvar = 0x2, ir_sc_tls = 0x3, ir_sc_malloced = 0x4, ir_sc_globaladdr = 0x5, ir_sc_modifier_nottaken = 0x80, ir_sc_modifier_argument = 0x40, ir_sc_modifiers = ir_sc_modifier_nottaken | ir_sc_modifier_argument } |
| Classify storage locations. More... | |
Functions | |
| ir_storage_class_class_t | get_base_sc (ir_storage_class_class_t x) |
| Returns the base storage class (ignore modifier) | |
| ir_storage_class_class_t | classify_pointer (const ir_node *irn, const ir_entity *ent) |
| Classify a base pointer. | |
| const char * | get_ir_alias_relation_name (ir_alias_relation rel) |
| Returns a human readable name for an alias relation. | |
| ir_alias_relation | get_alias_relation (const ir_node *adr1, const ir_mode *mode1, const ir_node *adr2, const ir_mode *mode2) |
| Determine the alias relation between two addresses. | |
| void | set_language_memory_disambiguator (DISAMBIGUATOR_FUNC func) |
| Sets a source language specific memory disambiguator function. | |
| void | mem_disambig_init (void) |
| Initialize the relation cache. | |
| ir_alias_relation | get_alias_relation_ex (const ir_node *adr1, const ir_mode *mode1, const ir_node *adr2, const ir_mode *mode2) |
| Determine the alias relation between two addresses and cache the result. | |
| void | mem_disambig_term (void) |
| Free the relation cache. | |
| void | assure_irg_entity_usage_computed (ir_graph *irg) |
| Assure that the entity usage flags have been computed for the given graph. | |
| ir_entity_usage_computed_state | get_irp_globals_entity_usage_state (void) |
| Returns the current address taken state of the globals. | |
| void | set_irp_globals_entity_usage_state (ir_entity_usage_computed_state state) |
| Sets the current address taken state of the globals. | |
| void | assure_irp_globals_entity_usage_computed (void) |
| Assure that the address taken flag is computed for the global and TLS entities (variables). | |
| unsigned | get_irg_memory_disambiguator_options (const ir_graph *irg) |
| Returns the memory disambiguator options for a graph. | |
| void | set_irg_memory_disambiguator_options (ir_graph *irg, unsigned options) |
| Sets the memory disambiguator options for a graph. | |
| void | set_irp_memory_disambiguator_options (unsigned options) |
| Sets the global disambiguator options for all graphs not having local options. | |
| void | mark_private_methods (void) |
| Mark all private methods, i.e. | |
| ir_prog_pass_t * | mark_private_methods_pass (const char *name) |
| Creates an ir_prog pass for mark_private_methods(). | |