OSDN Git Service

Merge tree-ssa-20020619-branch into mainline.
[pf3gnuchains/gcc-fork.git] / libbanshee / points-to / andersen_terms.h
diff --git a/libbanshee/points-to/andersen_terms.h b/libbanshee/points-to/andersen_terms.h
new file mode 100644 (file)
index 0000000..b893c57
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+
+DO NOT edit this file
+
+*/
+#ifndef ANDERSEN_TERMS_H
+#define ANDERSEN_TERMS_H
+#include <engine/list.h>
+#include <stdio.h>
+#include <engine/bool.h>
+
+
+typedef struct label_term_* label_term;
+typedef struct argterm_* argterm;
+typedef struct argterm_field_* argterm_field;
+typedef struct aterm_* aterm;
+
+extern bool flag_merge_projections;
+extern bool flag_eliminate_cycles;
+DECLARE_LIST(label_term_list,label_term)
+label_term label_term_zero(void);
+label_term label_term_one(void);
+label_term label_term_fresh(const char *name);
+label_term label_term_union(label_term_list exprs) ;
+label_term label_term_inter(label_term_list exprs) ;
+label_term label_term_constant(const char *name) ;
+bool label_term_is_constant(label_term e,const char *name);
+void label_term_inclusion(label_term e1,label_term e2) ;
+void label_term_unify(label_term e1,label_term e2) ;
+label_term_list label_term_tlb(label_term e) ;
+
+void label_term_print(FILE* arg1,label_term arg2) ;
+DECLARE_LIST(argterm_map,argterm_field)
+argterm_field argterm_make_field(const char *label,aterm expr);
+argterm argterm_zero(void);
+argterm argterm_one(void);
+argterm argterm_abs(void);
+argterm argterm_wild(void);
+argterm argterm_fresh(const char *name);
+argterm argterm_row(argterm_map fields,argterm rest) ;
+aterm argterm_extract_field(const char *field_name,argterm row);
+argterm argterm_extract_rest(argterm row);
+argterm_map argterm_extract_fields(argterm row);
+void argterm_inclusion(argterm row1,argterm row2) ;
+void argterm_unify(argterm row1,argterm row2) ;
+void argterm_print(FILE *f,argterm row) ;
+
+DECLARE_LIST(aterm_list,aterm)
+aterm aterm_zero(void);
+aterm aterm_one(void);
+aterm aterm_fresh(const char *name);
+aterm aterm_union(aterm_list exprs) ;
+aterm aterm_inter(aterm_list exprs) ;
+aterm aterm_constant(const char *name) ;
+bool aterm_is_constant(aterm e,const char *name);
+void aterm_inclusion(aterm e1,aterm e2) ;
+void aterm_unify(aterm e1,aterm e2) ;
+aterm_list aterm_tlb(aterm e) ;
+
+bool aterm_is_ref(aterm e);
+aterm ref(label_term arg1,aterm arg2,aterm arg3) ;
+struct ref_decon ref_decon(aterm arg1);
+struct ref_decon
+{
+label_term f0;
+aterm f1;
+aterm f2;
+};
+label_term ref_proj0(aterm arg1) ;
+aterm ref_pat0(label_term arg1) ;
+aterm ref_proj1(aterm arg1) ;
+aterm ref_pat1(aterm arg1) ;
+aterm ref_proj2(aterm arg1) ;
+aterm ref_pat2(aterm arg1) ;
+bool aterm_is_lam(aterm e);
+aterm lam(label_term arg1,argterm arg2,aterm arg3) ;
+struct lam_decon lam_decon(aterm arg1);
+struct lam_decon
+{
+label_term f0;
+argterm f1;
+aterm f2;
+};
+label_term lam_proj0(aterm arg1) ;
+aterm lam_pat0(label_term arg1) ;
+argterm lam_proj1(aterm arg1) ;
+aterm lam_pat1(argterm arg1) ;
+aterm lam_proj2(aterm arg1) ;
+aterm lam_pat2(aterm arg1) ;
+void aterm_print(FILE* arg1,aterm arg2) ;
+/*
+
+Init/reset engine, print constraint graphs
+
+*/
+void andersen_terms_init(void);
+void andersen_terms_reset(void) ;
+void andersen_terms_stats(FILE * arg1);
+void andersen_terms_print_graph(FILE * arg1);
+#endif