25 #include "pips_config.h"
73 "\nA modulo not with exactly 2 arguments\n");
119 list pc, lli, llr, args, new_lli =
NIL;
131 "Call to an assign with no argument\n");
135 user_error(
"text_loop_craft",
"\n An lhs expression not a ref\n");
149 x += sprintf(
comment,
"CDIR$ DOSHARED(");
150 for(lli = lidx; !
ENDP(lli);
POP(lli)) {
153 x += sprintf(
x,
", ");
161 for(lli = lidx, llr = lr, c = 0; !
ENDP(lli);
POP(lli),
POP(llr), c++) {
expression copy_expression(expression p)
EXPRESSION.
unformatted make_unformatted(string a1, intptr_t a2, intptr_t a3, list a4)
sentence make_sentence(enum sentence_utype tag, void *val)
text text_loop_craft(entity module, const char *label, int margin, loop obj, int n, list lr, list lidx)
=====================================================================
expression remove_modulo(expression exp)
=====================================================================
static void rewrite_modulo_expression(expression exp)
Prettyprinter for CRAFT loops.
static void comment(string_buffer code, spoc_hardware_type hw, dagvtx v, int stage, int side, bool flip)
#define gen_recurse(start, domain_number, flt, rwt)
bool gen_true(__attribute__((unused)) gen_chunk *unused)
Return true and ignore the argument.
bool instruction_assign_p(instruction i)
Test if an instruction is an assignment.
#define ENDP(l)
Test if a list is empty.
#define POP(l)
Modify a list pointer to point on the next element of the list.
#define NIL
The empty list (nil in Lisp)
size_t gen_length(const list l)
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
list gen_nconc(list cp1, list cp2)
physically concatenates CP1 and CP2 but do not duplicates the elements
#define CAR(pcons)
Get the value of the first element of a list.
void gen_free_list(list l)
free the spine of the list
#define CDR(pcons)
Get the list less its first element.
#define user_error(fn,...)
list words_expression(expression obj, list *ppdl)
This one is exported.
list words_loop_range(range obj, list *ppdl)
exported for craft
text text_statement(entity, int, statement, list *)
#define MODULO_OPERATOR_NAME
const char * entity_local_name(entity e)
entity_local_name modified so that it does not core when used in vect_fprint, since someone thought t...
#define expression_domain
newgen_execution_domain_defined
#define syntax_reference(x)
#define instruction_loop_p(x)
#define instruction_loop(x)
#define EXPRESSION(x)
EXPRESSION.
#define expression_undefined
#define reference_indices(x)
#define statement_instruction(x)
#define instruction_call(x)
#define call_arguments(x)
#define expression_syntax(x)
The structure used to build lists in NewGen.
#define CHAIN_SWORD(l, s)
#define MERGE_TEXTS(r, t)
#define MAKE_ONE_WORD_SENTENCE(m, s)
#define ADD_SENTENCE_TO_TEXT(t, p)
string words_to_string(cons *lw)
@ is_sentence_unformatted
#define exp
Avoid some warnings from "gcc -Wshadow".