OpenADFortTk (including Open64 and OpenAnalysis references)
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
LinearityIRInterface.hpp
Go to the documentation of this file.
1
20
#ifndef LinearityIRInterface_h
21
#define LinearityIRInterface_h
22
23
#include <iostream>
24
#include <list>
25
#include <string>
26
#include <
OpenAnalysis/Utils/OA_ptr.hpp
>
27
#include <
OpenAnalysis/IRInterface/IRHandles.hpp
>
28
#include <
OpenAnalysis/ExprTree/ExprTree.hpp
>
29
//#include <OpenAnalysis/IRInterface/ExprStmtPairIterator.hpp>
30
#include <
OpenAnalysis/IRInterface/AssignPairIterator.hpp
>
31
32
namespace
OA {
33
namespace
Linearity {
34
35
36
// Operations are classified into one of the following types:
37
enum
LinOpType
{
38
OPR_ADDSUB
,
// Operation is either Add or Subtract
39
OPR_MPYDIV
,
// Operation is either Multiply or Divide
40
OPR_POWER
,
// Operation is a Power
41
OPR_LINEAR
,
// Generic Linear Operation
42
OPR_NONLINEAR
,
// Generic Nonlinear Operation
43
OPR_NONE
44
};
45
51
class
LinearityIRInterface
:
public
virtual
IRHandlesIRInterface
{
52
public
:
53
LinearityIRInterface
() { }
54
virtual
~LinearityIRInterface
() { }
55
57
virtual
LinOpType
getLinearityOpType
(
OpHandle
op) = 0;
58
62
virtual
OA_ptr<AssignPairIterator>
63
getAssignPairIterator
(
StmtHandle
h) = 0;
64
66
virtual
OA_ptr<ExprTree>
getExprTree
(
ExprHandle
h) = 0;
67
68
};
69
70
}
// end of namespace Linearity
71
}
// end of namespace OA
72
73
#endif
74
OpenAnalysis
src
OpenAnalysis
IRInterface
LinearityIRInterface.hpp
Generated on Fri Mar 14 2014 04:23:11 for OpenADFortTk (including Open64 and OpenAnalysis references) by
1.8.4