PIPS
hpfc.c File Reference
#include <stdio.h>
#include <string.h>
#include "linear.h"
#include "genC.h"
#include "ri.h"
#include "misc.h"
#include "properties.h"
#include "ri-util.h"
+ Include dependency graph for hpfc.c:

Go to the source code of this file.

Functions

bool hpf_directive_string_p (const char *s)
 recognize an hpf directive special entity. More...
 
bool hpf_directive_entity_p (entity e)
 
bool realign_directive_p (entity f)
 
bool redistribute_directive_p (entity f)
 
bool dead_fcd_directive_p (entity f)
 
bool fcd_directive_string_p (const char *s)
 
bool fcd_directive_p (entity f)
 
bool keep_directive_in_code_p (const char *s)
 whether an entity must be kept in the code. More...
 

Function Documentation

◆ dead_fcd_directive_p()

bool dead_fcd_directive_p ( entity  f)

Definition at line 74 of file hpfc.c.

75 {
76  return top_level_entity_p(f) &&
78 }
#define same_string_p(s1, s2)
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
Definition: offsets.c:15
#define DEAD_SUFFIX
#define HPF_PREFIX
moved here because needed by syntax:-(
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
bool top_level_entity_p(entity e)
Check if the scope of entity e is global.
Definition: entity.c:1130

References DEAD_SUFFIX, entity_local_name(), f(), HPF_PREFIX, same_string_p, and top_level_entity_p().

Referenced by continue_propagation_p(), and hpf_compile_call().

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

◆ fcd_directive_p()

bool fcd_directive_p ( entity  f)

Definition at line 90 of file hpfc.c.

91 {
92  return top_level_entity_p(f) &&
94 }
bool fcd_directive_string_p(const char *s)
Definition: hpfc.c:80

References entity_local_name(), f(), fcd_directive_string_p(), and top_level_entity_p().

+ Here is the call graph for this function:

◆ fcd_directive_string_p()

bool fcd_directive_string_p ( const char *  s)

Definition at line 80 of file hpfc.c.

81 {
88 }
#define TIMEON_SUFFIX
#define SYNCHRO_SUFFIX
#define HOSTSECTION_SUFFIX
#define TIMEOFF_SUFFIX
#define TELL_SUFFIX
suffixes for my own (FCD:-) directives.

References DEAD_SUFFIX, HOSTSECTION_SUFFIX, HPF_PREFIX, same_string_p, SYNCHRO_SUFFIX, TELL_SUFFIX, TIMEOFF_SUFFIX, and TIMEON_SUFFIX.

Referenced by fcd_directive_p(), and keep_directive_in_code_p().

+ Here is the caller graph for this function:

◆ hpf_directive_entity_p()

bool hpf_directive_entity_p ( entity  e)

Definition at line 56 of file hpfc.c.

57 {
58  return top_level_entity_p(e) &&
60 }
bool hpf_directive_string_p(const char *s)
recognize an hpf directive special entity.
Definition: hpfc.c:51

References entity_local_name(), hpf_directive_string_p(), and top_level_entity_p().

Referenced by directive_filter(), distribution_format(), hpfc_call_with_distributed_args_p(), hpfc_compile(), and hpfc_directives_handler().

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

◆ hpf_directive_string_p()

bool hpf_directive_string_p ( const char *  s)

recognize an hpf directive special entity.

hpfc.c

(the prefix of which is HPF_PREFIX, as a convention) both functions are available, based on the name and on the entity.

Definition at line 51 of file hpfc.c.

52 {
53  return strncmp(HPF_PREFIX, s, strlen(HPF_PREFIX))==0;
54 }

References HPF_PREFIX.

Referenced by EndOfProcedure(), hpf_directive_entity_p(), and hpfc_filter().

+ Here is the caller graph for this function:

◆ keep_directive_in_code_p()

bool keep_directive_in_code_p ( const char *  s)

whether an entity must be kept in the code.

if so, a maybe fake source code must be supplied, and the directive will be kept in the callee list. not kept if some property tells not to...

!(same_string_p(s, HPF_PREFIX TELL_SUFFIX) && get_bool_property(FCD_IGNORE_PREFIX "TELL"))

Definition at line 101 of file hpfc.c.

102 {
103  return fcd_directive_string_p(s) &&
105  get_bool_property(FCD_IGNORE_PREFIX "SYNCHRO")) &&
110  /* !(same_string_p(s, HPF_PREFIX TELL_SUFFIX) &&
111  get_bool_property(FCD_IGNORE_PREFIX "TELL")) */
112 }
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
#define FCD_IGNORE_PREFIX
property prefix for ignoring FCD directives TIME, SYNCHRO and SET exists.

References fcd_directive_string_p(), FCD_IGNORE_PREFIX, get_bool_property(), HPF_PREFIX, same_string_p, SYNCHRO_SUFFIX, TIMEOFF_SUFFIX, and TIMEON_SUFFIX.

Referenced by directive_filter(), and EndOfProcedure().

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

◆ realign_directive_p()

bool realign_directive_p ( entity  f)

Definition at line 62 of file hpfc.c.

63 {
64  return top_level_entity_p(f) &&
66 }
#define REALIGN_SUFFIX

References entity_local_name(), f(), HPF_PREFIX, REALIGN_SUFFIX, same_string_p, and top_level_entity_p().

Referenced by continue_propagation_p().

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

◆ redistribute_directive_p()

bool redistribute_directive_p ( entity  f)

Definition at line 68 of file hpfc.c.

69 {
70  return top_level_entity_p(f) &&
72 }
#define REDISTRIBUTE_SUFFIX

References entity_local_name(), f(), HPF_PREFIX, REDISTRIBUTE_SUFFIX, same_string_p, and top_level_entity_p().

Referenced by continue_propagation_p().

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