25 #include "pips_config.h"
40 #include "resources.h"
43 #define DEBUG_NAME "INSTRUCTION_SELECTION_DEBUG_LEVEL"
92 if (fun==ctx->
bplus && nargs==2)
116 else if (fun==ctx->
bminus && nargs==2)
const char * module_name(const char *s)
Return the module part of an entity name.
void reset_current_module_entity(void)
Reset the current module entity.
void reset_current_module_statement(void)
Reset the current module statement.
statement set_current_module_statement(statement)
Set the current module statement.
statement get_current_module_statement(void)
Get the current module statement.
entity set_current_module_entity(entity)
static.c
void gen_context_multi_recurse(void *o, void *context,...)
Multi-recursion with context function visitor.
bool gen_false(__attribute__((unused)) gen_chunk *unused)
Return false and ignore the argument.
void gen_null(__attribute__((unused)) void *unused)
Ignore the argument.
bool gen_true(__attribute__((unused)) gen_chunk *unused)
Return true and ignore the argument.
list gen_make_list(int domain,...)
#define NIL
The empty list (nil in Lisp)
size_t gen_length(const list l)
gen_chunk gen_nth(int n, const list l)
to be used as ENTITY(gen_nth(3, l))...
string db_get_memory_resource(const char *rname, const char *oname, bool pure)
Return the pointer to the resource, whatever it is.
#define DB_PUT_MEMORY_RESOURCE(res_name, own_name, res_val)
conform to old interface.
bool instruction_selection(const char *module_name)
instruction_selection.c
static list is_this_op(expression e, entity op, size_t len)
whether e is a call to op with len parameters if ok, the list of arguments is returned.
static void update_call(call c, entity op, expression e, list le)
static void select_op_rwt(call c, inst_sel_ctx *ctx)
static entity bplus
A + (–B) -> A - B FMA -> FMS.
#define MINUS_OPERATOR_NAME
#define PLUS_OPERATOR_NAME
#define IMS_OPERATOR_NAME
#define UNARY_MINUS_OPERATOR_NAME
#define IMA_OPERATOR_NAME
Integer Multiply Add and Sub, FC 27/10/2005 for FI.
#define MULTIPLY_OPERATOR_NAME
entity local_name_to_top_level_entity(const char *n)
This function try to find a top-level entity from a local name.
entity entity_intrinsic(const char *name)
FI: I do not understand this function name (see next one!).
bool expression_call_p(expression e)
#define expression_domain
newgen_execution_domain_defined
#define call_domain
newgen_callees_domain_defined
#define EXPRESSION(x)
EXPRESSION.
#define reference_domain
newgen_range_domain_defined
#define call_arguments(x)
#define expression_syntax(x)
The structure used to build lists in NewGen.