Kaydet (Commit) 75c4091b authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Inlining make no sense for virtual functions.

Change-Id: I6392eaceb0544b7faa9a0c726acf6619d971dbb7
üst 165eef49
...@@ -88,17 +88,62 @@ DynamicKernelArgument::DynamicKernelArgument( const std::string& s, ...@@ -88,17 +88,62 @@ DynamicKernelArgument::DynamicKernelArgument( const std::string& s,
FormulaTreeNodeRef ft ) : FormulaTreeNodeRef ft ) :
mSymName(s), mFormulaTree(ft) { } mSymName(s), mFormulaTree(ft) { }
std::string DynamicKernelArgument::GenDoubleSlidingWindowDeclRef( bool ) const
{
return std::string("");
}
/// When Mix, it will be called
std::string DynamicKernelArgument::GenStringSlidingWindowDeclRef( bool ) const
{
return std::string("");
}
bool DynamicKernelArgument::IsMixedArgument() const
{
return false;
}
/// Generate use/references to the argument /// Generate use/references to the argument
void DynamicKernelArgument::GenDeclRef( std::stringstream& ss ) const void DynamicKernelArgument::GenDeclRef( std::stringstream& ss ) const
{ {
ss << mSymName; ss << mSymName;
} }
void DynamicKernelArgument::GenNumDeclRef( std::stringstream& ss ) const
{
ss << ",";
}
void DynamicKernelArgument::GenStringDeclRef( std::stringstream& ss ) const
{
ss << ",";
}
void DynamicKernelArgument::GenSlidingWindowFunction( std::stringstream& ) {}
FormulaToken* DynamicKernelArgument::GetFormulaToken() const FormulaToken* DynamicKernelArgument::GetFormulaToken() const
{ {
return mFormulaTree->GetFormulaToken(); return mFormulaTree->GetFormulaToken();
} }
std::string DynamicKernelArgument::DumpOpName() const
{
return std::string("");
}
void DynamicKernelArgument::DumpInlineFun( std::set<std::string>&, std::set<std::string>& ) const {}
const std::string& DynamicKernelArgument::GetName() const
{
return mSymName;
}
bool DynamicKernelArgument::NeedParallelReduction() const
{
return false;
}
VectorRef::VectorRef( const std::string& s, FormulaTreeNodeRef ft, int idx ) : VectorRef::VectorRef( const std::string& s, FormulaTreeNodeRef ft, int idx ) :
DynamicKernelArgument(s, ft), mpClmem(NULL), mnIndex(idx) DynamicKernelArgument(s, ft), mpClmem(NULL), mnIndex(idx)
{ {
...@@ -144,6 +189,8 @@ std::string VectorRef::GenSlidingWindowDeclRef( bool nested ) const ...@@ -144,6 +189,8 @@ std::string VectorRef::GenSlidingWindowDeclRef( bool nested ) const
return ss.str(); return ss.str();
} }
void VectorRef::GenSlidingWindowFunction( std::stringstream& ) {}
size_t VectorRef::GetWindowSize() const size_t VectorRef::GetWindowSize() const
{ {
FormulaToken* pCur = mFormulaTree->GetFormulaToken(); FormulaToken* pCur = mFormulaTree->GetFormulaToken();
...@@ -164,6 +211,28 @@ size_t VectorRef::GetWindowSize() const ...@@ -164,6 +211,28 @@ size_t VectorRef::GetWindowSize() const
} }
} }
std::string VectorRef::DumpOpName() const
{
return std::string("");
}
void VectorRef::DumpInlineFun( std::set<std::string>&, std::set<std::string>& ) const {}
const std::string& VectorRef::GetName() const
{
return mSymName;
}
cl_mem VectorRef::GetCLBuffer() const
{
return mpClmem;
}
bool VectorRef::NeedParallelReduction() const
{
return false;
}
void Normal::GenSlidingWindowFunction( void Normal::GenSlidingWindowFunction(
std::stringstream& ss, const std::string& sSymName, SubArguments& vSubArguments ) std::stringstream& ss, const std::string& sSymName, SubArguments& vSubArguments )
{ {
......
...@@ -87,6 +87,7 @@ class DynamicKernelArgument : boost::noncopyable ...@@ -87,6 +87,7 @@ class DynamicKernelArgument : boost::noncopyable
{ {
public: public:
DynamicKernelArgument( const std::string& s, FormulaTreeNodeRef ft ); DynamicKernelArgument( const std::string& s, FormulaTreeNodeRef ft );
virtual ~DynamicKernelArgument() {}
/// Generate declaration /// Generate declaration
virtual void GenDecl( std::stringstream& ss ) const = 0; virtual void GenDecl( std::stringstream& ss ) const = 0;
...@@ -97,36 +98,31 @@ public: ...@@ -97,36 +98,31 @@ public:
/// When referenced in a sliding window function /// When referenced in a sliding window function
virtual std::string GenSlidingWindowDeclRef( bool = false ) const = 0; virtual std::string GenSlidingWindowDeclRef( bool = false ) const = 0;
/// Create buffer and pass the buffer to a given kernel
virtual size_t Marshal( cl_kernel, int, int, cl_program ) = 0;
virtual size_t GetWindowSize() const = 0;
/// When Mix, it will be called /// When Mix, it will be called
virtual std::string GenDoubleSlidingWindowDeclRef( bool = false ) const virtual std::string GenDoubleSlidingWindowDeclRef( bool = false ) const;
{ return std::string(""); }
/// When Mix, it will be called /// When Mix, it will be called
virtual std::string GenStringSlidingWindowDeclRef( bool = false ) const virtual std::string GenStringSlidingWindowDeclRef( bool = false ) const;
{ return std::string(""); }
virtual bool IsMixedArgument() const virtual bool IsMixedArgument() const;
{ return false; }
/// Generate use/references to the argument /// Generate use/references to the argument
virtual void GenDeclRef( std::stringstream& ss ) const; virtual void GenDeclRef( std::stringstream& ss ) const;
virtual void GenNumDeclRef( std::stringstream& ss ) const { ss << ",";} virtual void GenNumDeclRef( std::stringstream& ss ) const;
virtual void GenStringDeclRef( std::stringstream& ss ) const { ss << ",";} virtual void GenStringDeclRef( std::stringstream& ss ) const;
/// Create buffer and pass the buffer to a given kernel virtual void GenSlidingWindowFunction( std::stringstream& );
virtual size_t Marshal( cl_kernel, int, int, cl_program ) = 0;
virtual ~DynamicKernelArgument() { }
virtual void GenSlidingWindowFunction( std::stringstream& ) { }
formula::FormulaToken* GetFormulaToken() const; formula::FormulaToken* GetFormulaToken() const;
virtual size_t GetWindowSize() const = 0; virtual std::string DumpOpName() const;
virtual std::string DumpOpName() const { return std::string(""); } virtual void DumpInlineFun( std::set<std::string>&, std::set<std::string>& ) const;
virtual void DumpInlineFun( std::set<std::string>&, const std::string& GetName() const;
std::set<std::string>& ) const { } virtual bool NeedParallelReduction() const;
const std::string& GetName() const { return mSymName; }
virtual bool NeedParallelReduction() const { return false; }
protected: protected:
std::string mSymName; std::string mSymName;
...@@ -142,6 +138,7 @@ class VectorRef : public DynamicKernelArgument ...@@ -142,6 +138,7 @@ class VectorRef : public DynamicKernelArgument
{ {
public: public:
VectorRef( const std::string& s, FormulaTreeNodeRef ft, int index = 0 ); VectorRef( const std::string& s, FormulaTreeNodeRef ft, int index = 0 );
virtual ~VectorRef();
/// Generate declaration /// Generate declaration
virtual void GenDecl( std::stringstream& ss ) const SAL_OVERRIDE; virtual void GenDecl( std::stringstream& ss ) const SAL_OVERRIDE;
...@@ -154,16 +151,13 @@ public: ...@@ -154,16 +151,13 @@ public:
/// Create buffer and pass the buffer to a given kernel /// Create buffer and pass the buffer to a given kernel
virtual size_t Marshal( cl_kernel, int, int, cl_program ) SAL_OVERRIDE; virtual size_t Marshal( cl_kernel, int, int, cl_program ) SAL_OVERRIDE;
virtual ~VectorRef(); virtual void GenSlidingWindowFunction( std::stringstream& ) SAL_OVERRIDE;
virtual void GenSlidingWindowFunction( std::stringstream& ) SAL_OVERRIDE { }
virtual size_t GetWindowSize() const SAL_OVERRIDE; virtual size_t GetWindowSize() const SAL_OVERRIDE;
virtual std::string DumpOpName() const SAL_OVERRIDE { return std::string(""); } virtual std::string DumpOpName() const SAL_OVERRIDE;
virtual void DumpInlineFun( std::set<std::string>&, virtual void DumpInlineFun( std::set<std::string>&, std::set<std::string>& ) const SAL_OVERRIDE;
std::set<std::string>& ) const SAL_OVERRIDE { } const std::string& GetName() const;
const std::string& GetName() const { return mSymName; } virtual cl_mem GetCLBuffer() const;
virtual cl_mem GetCLBuffer() const { return mpClmem; } virtual bool NeedParallelReduction() const SAL_OVERRIDE;
virtual bool NeedParallelReduction() const SAL_OVERRIDE { return false; }
protected: protected:
// Used by marshaling // Used by marshaling
...@@ -200,7 +194,7 @@ public: ...@@ -200,7 +194,7 @@ public:
typedef std::vector<SubArgument> SubArguments; typedef std::vector<SubArgument> SubArguments;
virtual void GenSlidingWindowFunction( std::stringstream&, virtual void GenSlidingWindowFunction( std::stringstream&,
const std::string&, SubArguments& ) = 0; const std::string&, SubArguments& ) = 0;
virtual ~SlidingFunctionBase() { }; virtual ~SlidingFunctionBase() { }
}; };
class Normal : public SlidingFunctionBase class Normal : public SlidingFunctionBase
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment