OpenASIP 2.2
Loading...
Searching...
No Matches
MoveNodeUse.hh
Go to the documentation of this file.
1/**
2 * @file MoveNodeUse.hh
3 *
4 * Declaration of MoveNodeUse class.
5 *
6 * Wrapper class that contains data dependence information related to one
7 * data dependence induced by a MoveNode.
8 *
9 * Multiple MoveNodeUse objects can point to a single movenode.
10 * @author Heikki Kultala 2008 (hkultala@cs.tut.fi)
11 * @note rating: red
12 */
13
14#ifndef MOVENODEUSE_HH
15#define MOVENODEUSE_HH
16
17#include "MoveNode.hh"
18
19
21public:
22
26 LOOP = 3
27 };
28
29 MoveNodeUse() : mn_(NULL) {} //because STL sucks. always = after this.
31 const MoveNode& mn, bool guard = false, bool ra = false,
32 bool pseudo = false, BBRelation bbRelation = INTRA_BB) :
34
35 inline MoveNodeUse(const MoveNodeUse& mnu, BBRelation newBBRelation);
36
37 // TODO: should be deterministic - this is not?
38 inline bool operator< (const MoveNodeUse& other) const;
39 const MoveNode* mn() const { return mn_; }
40 bool guard() const { return guard_; }
41 bool ra() const { return ra_; }
42 bool pseudo() const { return pseudo_; }
43 bool loop() const { return bbRelation_ == LOOP; }
44 bool interBB() const { return bbRelation_ > INTRA_BB; }
45 BBRelation bbRelation() const { return bbRelation_; }
46private:
47 const MoveNode* mn_;
48 bool guard_;
49 bool ra_;
50 bool pseudo_;
52};
53
54#include "MoveNodeUse.icc"
55
56#endif
MoveNodeUse(const MoveNodeUse &mnu, BBRelation newBBRelation)
MoveNodeUse(const MoveNode &mn, bool guard=false, bool ra=false, bool pseudo=false, BBRelation bbRelation=INTRA_BB)
bool interBB() const
const MoveNode * mn() const
bool operator<(const MoveNodeUse &other) const
bool loop() const
bool guard() const
const MoveNode * mn_
BBRelation bbRelation() const
bool ra() const
bool pseudo() const
BBRelation bbRelation_