PIPS
newgen.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include "genC.h"
#include "linear.h"
#include "matrice.h"
#include "specs.h"
#include "all_newgen_headers.h"
#include "newgen.h"
+ Include dependency graph for newgen.c:

Go to the source code of this file.

Typedefs

typedef void * void_star
 
typedef void * arc_label
 typedef void * vertex; More...
 
typedef void * vertex_label
 
typedef void * db_void
 
typedef void * operator_id_sons
 

Functions

void initialize_newgen ()
 cproto-generated files More...
 

Typedef Documentation

◆ arc_label

typedef void* arc_label

typedef void * vertex;

Definition at line 35 of file newgen.c.

◆ db_void

typedef void* db_void

Definition at line 37 of file newgen.c.

◆ operator_id_sons

typedef void* operator_id_sons

Definition at line 38 of file newgen.c.

◆ vertex_label

typedef void* vertex_label

Definition at line 36 of file newgen.c.

◆ void_star

typedef void* void_star

Definition at line 33 of file newgen.c.

Function Documentation

◆ initialize_newgen()

void initialize_newgen ( void  )

cproto-generated files

newgen.c

Read NewGen specification file

Initialise external functions... re-entry in newgen because of the graph stuff...

can't get the size... FC

can't get the size... FC

added because newgen lacks support for hash maps with integer keys

read

write

free

copy

size

do nothing!

read

write

free

copy

size

Definition at line 48 of file newgen.c.

49 {
50  /* Read NewGen specification file
51  */
53 
54  /* Initialise external functions...
55  * re-entry in newgen because of the graph stuff...
56  */
58  (void* (*)()) gen_read,
59  (void (*)(FILE*, void*)) gen_write,
60  (void (*)(void*)) gen_free,
61  (void* (*)(void*)) gen_copy_tree_with_sharing,
62  (int (*)(void*)) gen_allocated_memory);
63 
65  (void* (*)()) gen_read,
66  (void (*)(FILE*, void*)) gen_write,
67  (void (*)()) gen_free,
68  (void* (*)()) gen_copy_tree_with_sharing,
69  (int (*)()) gen_allocated_memory);
70 
72  (void* (*)()) polynome_gen_read,
73  (void (*)()) polynome_gen_write,
74  (void (*)()) polynome_gen_free,
75  (void* (*)()) polynome_gen_copy_tree,
76  (int (*)()) polynome_gen_allocated_memory);
77 
79  (void* (*)()) vect_gen_read,
80  (void (*)()) vect_gen_write,
81  (void (*)()) vect_gen_free,
82  (void* (*)()) vect_gen_copy_tree,
83  (int (*)()) vect_gen_allocated_memory);
84 
86  (void* (*)()) sc_gen_read,
87  (void (*)()) sc_gen_write,
88  (void (*)()) sc_gen_free,
89  (void* (*)()) sc_gen_copy_tree,
90  (int (*)()) sc_gen_allocated_memory);
91 
93  (void* (*)()) gen_core_NULL,
94  (void (*)()) gen_core,
95  (void (*)()) free,
96  (void* (*)()) gen_core_NULL,
97  (int (*)()) NULL); /* can't get the size... FC */
98 
100  (void* (*)()) gen_core_NULL,
101  (void (*)()) gen_core,
102  (void (*)()) sg_rm,
103  (void* (*)()) sg_dup,
104  (int (*)()) NULL); /* can't get the size... FC */
105 
107  (void* (*)()) gen_core_NULL,
108  (void (*)()) gen_core,
109  (void (*)()) gen_null,
110  (void* (*)()) gen_identity,
111  (int (*)()) gen_false);
112 
113  /* added because newgen lacks support for hash maps with integer keys */
115  (void* (*)()) gen_NULL, /* read */
116  (void (*)()) gen_null, /* write */
117  (void (*)()) gen_null, /* free */
118  (void* (*)()) gen_NULL, /* copy */
119  (int (*)()) gen_true); /* size */
120 
121  /* do nothing! */
123  (void* (*)()) gen_NULL, /* read */
124  (void (*)()) gen_null, /* write */
125  (void (*)()) gen_null, /* free */
126  (void* (*)()) gen_NULL, /* copy */
127  (int (*)()) gen_true); /* size */
128 }
#define PPOLYNOME_NEWGEN_EXTERNAL
Definition: complexity_ri.h:20
#define PVECTEUR_NEWGEN_EXTERNAL
Definition: compsec.h:27
#define PTSG_NEWGEN_EXTERNAL
Definition: dg.h:34
#define PSYSTEME_NEWGEN_EXTERNAL
Definition: effects.h:48
void gen_free(gen_chunk *obj)
version without shared_pointers.
Definition: genClib.c:992
gen_chunk * gen_copy_tree_with_sharing(gen_chunk *obj)
for re-entry only in gen_copy_tree...
Definition: genClib.c:1442
void gen_init_external(int which, void *(*read)(FILE *, int(*)(void)), void(*write)(FILE *, void *), void(*free)(void *), void *(*copy)(void *), int(*allocated_memory)(void *))
GEN_INIT_EXTERNAL defines entry points for free, read and write functions of external types.
Definition: genClib.c:2276
gen_chunk * gen_read(FILE *file)
GEN_READ reads any object from the FILE stream.
Definition: genClib.c:2323
void gen_read_spec(char *spec,...)
Definition: genClib.c:2218
int gen_allocated_memory(gen_chunk *obj)
re-entry is automatic for this function.
Definition: genClib.c:2690
void gen_write(FILE *fd, gen_chunk *obj)
GEN_WRITE writes the OBJect on the stream FD.
Definition: genClib.c:1745
void free(void *)
#define ARC_LABEL_NEWGEN_EXTERNAL
Definition: graph.h:21
#define VERTEX_LABEL_NEWGEN_EXTERNAL
Definition: graph.h:13
void * gen_NULL(__attribute__((unused)) void *unused)
idem with a void* return
Definition: genClib.c:2764
void * gen_core_NULL(__attribute__((unused)) void *p)
Definition: genClib.c:2827
bool gen_false(__attribute__((unused)) gen_chunk *unused)
Return false and ignore the argument.
Definition: genClib.c:2796
void gen_core(__attribute__((unused)) void *p)
Abort when called.
Definition: genClib.c:2822
void gen_null(__attribute__((unused)) void *unused)
Ignore the argument.
Definition: genClib.c:2752
bool gen_true(__attribute__((unused)) gen_chunk *unused)
Return true and ignore the argument.
Definition: genClib.c:2780
void * gen_identity(const void *x)
Just return the argument.
Definition: genClib.c:2807
Pvecteur vect_gen_copy_tree(Pvecteur)
Definition: Pvecteur.c:163
void vect_gen_write(FILE *, Pvecteur)
Pvecteur.c.
Definition: Pvecteur.c:108
int sc_gen_allocated_memory(Psysteme)
Definition: Psc.c:208
int polynome_gen_allocated_memory(Ppolynome)
Definition: Ppolynome.c:168
Pvecteur vect_gen_read(FILE *, int(*)(void))
void sc_gen_free(Psysteme)
Definition: Psc.c:198
int vect_gen_allocated_memory(Pvecteur)
Definition: Pvecteur.c:168
void vect_gen_free(Pvecteur)
Definition: Pvecteur.c:158
void polynome_gen_free(Ppolynome)
Definition: Ppolynome.c:148
void polynome_gen_write(FILE *, Ppolynome)
Definition: Ppolynome.c:97
Ppolynome polynome_gen_read(FILE *, int(*)(void))
Ppolynome polynome_gen_copy_tree(Ppolynome)
Definition: Ppolynome.c:154
Psysteme sc_gen_copy_tree(Psysteme)
Definition: Psc.c:203
void sc_gen_write(FILE *, Psysteme)
Psc.c.
Definition: Psc.c:82
Psysteme sc_gen_read(FILE *, int(*)(void))
#define DB_VOID_NEWGEN_EXTERNAL
#define OPERATOR_ID_SONS_NEWGEN_EXTERNAL
Definition: sac_private.h:48
Ptsg sg_dup(Ptsg sg_in)
Ptsg sg_dup(Ptsg sg_in): allocation d'un systeme generateur sg_out et copie sans sharing des ensemble...
Definition: sg.c:84
void sg_rm(Ptsg sg)
void sg_rm(Ptsg sg): liberation de l'espace memoire occupe par un systeme generateur
Definition: sg.c:249
#define ALL_SPECS
Definition: specs.h:1
#define MATRICE_NEWGEN_EXTERNAL
Definition: tiling.h:21
#define VOID_STAR_NEWGEN_EXTERNAL

References ALL_SPECS, ARC_LABEL_NEWGEN_EXTERNAL, DB_VOID_NEWGEN_EXTERNAL, free(), gen_allocated_memory(), gen_copy_tree_with_sharing(), gen_core(), gen_core_NULL(), gen_false(), gen_free(), gen_identity(), gen_init_external(), gen_null(), gen_NULL(), gen_read(), gen_read_spec(), gen_true(), gen_write(), MATRICE_NEWGEN_EXTERNAL, OPERATOR_ID_SONS_NEWGEN_EXTERNAL, polynome_gen_allocated_memory(), polynome_gen_copy_tree(), polynome_gen_free(), polynome_gen_read(), polynome_gen_write(), PPOLYNOME_NEWGEN_EXTERNAL, PSYSTEME_NEWGEN_EXTERNAL, PTSG_NEWGEN_EXTERNAL, PVECTEUR_NEWGEN_EXTERNAL, sc_gen_allocated_memory(), sc_gen_copy_tree(), sc_gen_free(), sc_gen_read(), sc_gen_write(), sg_dup(), sg_rm(), vect_gen_allocated_memory(), vect_gen_copy_tree(), vect_gen_free(), vect_gen_read(), vect_gen_write(), VERTEX_LABEL_NEWGEN_EXTERNAL, and VOID_STAR_NEWGEN_EXTERNAL.

Referenced by atinit(), gpips_main(), pips_main(), tpips_init(), and wpips_main().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: