PIPS
io.c File Reference
#include <stdio.h>
#include "genC.h"
#include "misc.h"
#include "linear.h"
#include "ri.h"
#include "ri-util.h"
#include "boolean.h"
#include "vecteur.h"
#include "contrainte.h"
#include "sc.h"
#include "transformer.h"
+ Include dependency graph for io.c:

Go to the source code of this file.

Functions

transformer print_transformer (transformer tf)
 package transformer - IOs More...
 
transformer print_any_transformer (transformer tf)
 For debugging without problem from temporary values. More...
 
list print_transformers (list tl)
 
transformer fprint_transformer (FILE *fd, transformer tf, get_variable_name_t value_name)
 
list fprint_transformers (FILE *fd, list tl, get_variable_name_t value_name)
 
char * dump_value_name (entity e)
 char * dump_value_name(e): used as functional argument because entity_name is a macro More...
 
void dump_transformer (transformer tf)
 

Function Documentation

◆ dump_transformer()

void dump_transformer ( transformer  tf)
Parameters
tff

Definition at line 134 of file io.c.

136 {
138 }
transformer fprint_transformer(FILE *fd, transformer tf, get_variable_name_t value_name)
Definition: io.c:69
char * dump_value_name(entity e)
char * dump_value_name(e): used as functional argument because entity_name is a macro
Definition: io.c:128
char *(* get_variable_name_t)(Variable)
Definition: vecteur-local.h:62

References dump_value_name(), and fprint_transformer().

+ Here is the call graph for this function:

◆ dump_value_name()

char* dump_value_name ( entity  e)

char * dump_value_name(e): used as functional argument because entity_name is a macro

FI: should be moved in ri-util/entity.c

Definition at line 128 of file io.c.

130 {
131  return entity_name(e);
132 }
#define entity_name(x)
Definition: ri.h:2790

References entity_name.

Referenced by check_range_wrt_precondition(), dump_transformer(), fortran_user_call_to_transformer(), print_value_mappings(), transformer_combine(), and translate_global_values().

+ Here is the caller graph for this function:

◆ fprint_transformer()

transformer fprint_transformer ( FILE *  fd,
transformer  tf,
get_variable_name_t  value_name 
)

print_transformer returns an int to be compatible with the debug() function; however, debug being a function and not a macro, its arguments are ALWAYS evaluated regardless of the debug level; so a call to print_transformer passed as an argument to debug is ALWAYS effective

print argument list

print relation

Parameters
fdd
tff
value_namealue_name

Definition at line 69 of file io.c.

72 {
73  /* print_transformer returns an int to be compatible with the debug()
74  function; however, debug being a function and not a macro, its
75  arguments are ALWAYS evaluated regardless of the debug level;
76  so a call to print_transformer passed as an argument to debug
77  is ALWAYS effective */
78 
79  if(tf==transformer_undefined)
80  (void) fprintf(stderr,"TRANSFORMER UNDEFINED\n");
81  // For debugging with gdb, dynamic type checking
83  (void) fprintf(stderr,"Arg. \"tf\"is not a transformer.\n");
84  }
85  else {
86  cons * args = transformer_arguments(tf);
88 
89  /* print argument list */
90  (void) fprintf(fd,"arguments:");
91  print_homogeneous_arguments(args, (const char* (*) (entity))value_name);
92 
93  /* print relation */
94  if(SC_UNDEFINED_P(sc))
95  pips_internal_error("undefined relation");
96  (void) fprintf(fd,"\nrelation:");
97  sc_fprint(fd,
98  sc,
99  value_name);
100  }
101 
102  return tf;
103 }
void print_homogeneous_arguments(list args, const char *variable_name(entity))
Functions dealing with entity lists.
Definition: arguments.c:54
#define pips_internal_error
Definition: misc-local.h:149
#define transformer_undefined
Definition: ri.h:2847
#define transformer_domain_number(x)
Definition: ri.h:2869
#define transformer_domain
newgen_test_domain_defined
Definition: ri.h:426
#define transformer_relation(x)
Definition: ri.h:2873
#define transformer_arguments(x)
Definition: ri.h:2871
#define predicate_system(x)
Definition: ri.h:2069
struct Ssysteme * Psysteme
void sc_fprint(FILE *fp, Psysteme ps, get_variable_name_t nom_var)
void sc_fprint(FILE * f, Psysteme ps, char * (*nom_var)()): cette fonction imprime dans le fichier po...
Definition: sc_io.c:220
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
The structure used to build lists in NewGen.
Definition: newgen_list.h:41

References fprintf(), pips_internal_error, predicate_system, print_homogeneous_arguments(), sc_fprint(), transformer_arguments, transformer_domain, transformer_domain_number, transformer_relation, and transformer_undefined.

Referenced by complete_loop_transformer(), complete_loop_transformer_list(), dump_transformer(), expression_equal_in_context_p(), expression_less_than_in_context(), fprint_transformers(), loop_to_transformer(), old_complete_whileloop_transformer(), print_any_transformer(), print_transformer(), standard_whileloop_to_transformer(), transformer_derivative_fix_point(), transformer_equality_fix_point(), transformer_filter(), transformer_list_generic_transitive_closure(), transformer_normalize(), transformer_pattern_fix_point(), and transformer_projection_with_redundancy_elimination_and_check().

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

◆ fprint_transformers()

list fprint_transformers ( FILE *  fd,
list  tl,
get_variable_name_t  value_name 
)
Parameters
fdd
tll
value_namealue_name

Definition at line 105 of file io.c.

108 {
109  if(ENDP(tl)) {
110  // FI: I changed my mind; this is a way to represent a non
111  //feasible transformer
112  //pips_internal_error("transformer lists should never be empty.");
113  fprintf(fd, "Empty transformer list\n");
114  }
115  else {
116  FOREACH(TRANSFORMER, tf, tl) {
117  fprint_transformer(fd, tf, value_name);
118  }
119  }
120  return tl;
121 }
#define ENDP(l)
Test if a list is empty.
Definition: newgen_list.h:66
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
Definition: newgen_list.h:179
#define TRANSFORMER(x)
TRANSFORMER.
Definition: ri.h:2841

References ENDP, FOREACH, fprint_transformer(), fprintf(), and TRANSFORMER.

Referenced by print_transformers().

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

◆ print_any_transformer()

transformer print_any_transformer ( transformer  tf)

For debugging without problem from temporary values.

Parameters
tff

Definition at line 56 of file io.c.

57 {
58  return fprint_transformer(stderr, tf,
60 }
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...
Definition: entity.c:453

References entity_local_name(), and fprint_transformer().

+ Here is the call graph for this function:

◆ print_transformer()

transformer print_transformer ( transformer  tf)

package transformer - IOs

io.c

Francois Irigoin, 21 April 1990 print_transformer(tf): not a macro because of dbx and gdb

Parameters
tff

Definition at line 48 of file io.c.

49 {
50  (void) fprint_transformer(stderr, tf,
52  return tf;
53 }
const char * external_value_name(entity)
Definition: value.c:753

References external_value_name(), and fprint_transformer().

+ Here is the call graph for this function:

◆ print_transformers()

list print_transformers ( list  tl)