21#ifndef GCC_ANALYZER_CALL_STRING_H
22#define GCC_ANALYZER_CALL_STRING_H
29class return_superedge;
75 std::unique_ptr<json::value>
to_json ()
const;
124 return hstate.
end ();
130 template <
typename T>
static inline void remove (T &entry)
135 template <
typename T>
static inline bool is_empty (
const T &entry)
137 return entry.m_key.m_caller ==
NULL;
139 template <
typename T>
static inline bool is_deleted (
const T &entry)
141 return entry.m_key.m_caller ==
reinterpret_cast<const supernode *
> (1);
143 template <
typename T>
static inline void mark_empty (T &entry)
146 entry.m_value =
NULL;
150 entry.m_key.m_caller =
reinterpret_cast<const supernode *
> (1);
Definition call-string.h:48
const supernode * get_caller_node() const
const call_string * get_parent() const
Definition call-string.h:84
static int cmp(const call_string &a, const call_string &b)
void recursive_log(logger *logger) const
void print(pretty_printer *pp) const
DISABLE_COPY_AND_ASSIGN(call_string)
element_t operator[](unsigned idx) const
Definition call-string.h:98
int calc_recursion_depth() const
hash_map< element_t, const call_string *, hashmap_traits_t > m_children
Definition call-string.h:166
auto_vec< element_t > m_elements
Definition call-string.h:165
int count_occurrences_of_function(function *) const
const supernode * get_callee_node() const
const call_string * push_call(const supergraph &sg, const call_superedge *sedge) const
call_string(const call_string &parent, const element_t &to_push)
const call_string * push_call(const supernode *src, const supernode *dest) const
const call_string * m_parent
Definition call-string.h:164
const element_t & get_top_of_stack() const
Definition call-string.h:102
bool empty_p() const
Definition call-string.h:77
static int cmp_ptr_ptr(const void *, const void *)
unsigned length() const
Definition call-string.h:97
std::unique_ptr< json::value > to_json() const
Definition supergraph.h:446
Definition analyzer-logging.h:34
Definition region-model-manager.h:32
Definition supergraph.h:109
Definition supergraph.h:235
hashval_t end() const
Definition inchash.h:49
void add_ptr(const void *ptr)
Definition inchash.h:94
Definition pretty-print.h:241
Definition access-diagram.h:30
Ca const poly_int< N, Cb > & b
Definition poly-int.h:771
Ca & a
Definition poly-int.h:770
Definition call-string.h:56
bool operator==(const element_t &other) const
const supernode * m_caller
Definition call-string.h:69
element_t(const supernode *caller, const supernode *callee)
Definition call-string.h:57
function * get_callee_function() const
bool operator!=(const element_t &other) const
function * get_caller_function() const
const supernode * m_callee
Definition call-string.h:70
Definition call-string.h:114
static void mark_deleted(T &entry)
Definition call-string.h:148
static void mark_empty(T &entry)
Definition call-string.h:143
static bool is_deleted(const T &entry)
Definition call-string.h:139
static hashval_t hash(const key_type &k)
Definition call-string.h:119
const call_string * value_type
Definition call-string.h:116
static const bool empty_zero_p
Definition call-string.h:134
static void remove(T &entry)
Definition call-string.h:130
static bool equal_keys(const key_type &k1, const key_type &k2)
Definition call-string.h:126
element_t key_type
Definition call-string.h:115
static bool is_empty(const T &entry)
Definition call-string.h:135
static const bool maybe_mx
Definition call-string.h:118
Definition function.h:249
#define NULL
Definition system.h:50
#define gcc_assert(EXPR)
Definition system.h:814