2 #ifndef BDWY_PROCEDURE_H
3 #define BDWY_PROCEDURE_H
10 typedef std::set< procLocation * > proclocation_set;
11 typedef proclocation_set::iterator proclocation_set_p;
12 typedef proclocation_set::const_iterator proclocation_set_cp;
22 threeAddrNode * _stmt;
33 proclocation_set _contexts;
40 callsiteEntry(threeAddrNode * stmt, operandNode * call)
46 inline threeAddrNode * stmt()
const {
return _stmt; }
47 inline operandNode * call()
const {
return _call; }
50 inline proclocation_set & contexts() {
return _contexts; }
54 typedef std::map< threeAddrNode *, callsiteEntry * > callsite_map;
55 typedef callsite_map::iterator callsite_map_p;
56 typedef callsite_map::const_iterator callsite_map_cp;
191 TREE procNode * _proc;
216 #ifdef __CALLSITE_MAP
217 TREE callsite_map _callsites;
263 inline const std::string &
name()
const {
return _name; }
283 inline const action_list & actions()
const {
return _actions; }
287 inline procNode * proc()
const {
return _proc; }
291 #ifdef __CALLSITE_MAP
292 inline const callsite_map & callsites()
const {
return _callsites; }
360 #ifdef __PROCLOCATION
361 stmtLocation * def_use_location(procLocation * procloc);
372 #ifdef __PROCLOCATION
373 stmtLocation * dealloc_location(procLocation * procloc);
384 #ifdef __PROCLOCATION
385 stmtLocation * alloc_location(procLocation * procloc);
507 #ifdef __PROCLOCATION
508 void add_calling_context(operandNode * call, procLocation * where);
522 #ifdef __CALLSITE_MAP
523 callsiteEntry * find_callsite(threeAddrNode * stmt);
546 #ifdef __CALLSITE_MAP
547 actionAnn * find_applicable_action(threeAddrNode * stmt);
562 void print(std::ostream & o)
const;