blob: 490ebc20fe0ab20a4ca5b9e80d280085aacaddc4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#pragma once
#include "gimple-walker.hpp"
#include "expr-escaper.hpp"
#include "collect-types.h"
class GimpleEscaper : public GimpleWalker
{
public:
GimpleEscaper(ptrset_t &types) : exprEscaper(types) { _init(); };
ExprEscaper exprEscaper;
ptrset_t get_sets() { return exprEscaper.get_sets(); };
void print_reasons() { exprEscaper.print_reasons(); };
protected:
typedef std::set<const_tree> undefset;
undefset undefined;
void _init();
static bool filter_known_function(cgraph_node *);
static bool filter_known_function(const_tree);
static bool is_function_escaping(cgraph_node *);
static bool is_function_escaping(const_tree);
static bool is_variable_escaping(varpool_node *);
static bool _is_assignment_casted(gassign *s);
virtual void _walk_global(varpool_node *);
virtual void _walk_pre(gassign *s) ;
virtual void _walk_pre(greturn *s) ;
virtual void _walk_pre(gcond *s) ;
virtual void _walk_pre(gcall *s) ;
virtual void _walk_pre(const_tree) ;
};
|