OmniSciDB  1dac507f6e
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
For Class Reference

#include <ResultSetReductionOps.h>

+ Inheritance diagram for For:
+ Collaboration diagram for For:

Public Member Functions

 For (const Value *start, const Value *end, const std::string &label)
 
const std::vector
< std::unique_ptr< Instruction > > & 
body () const
 
const Valuestart () const
 
const Valueend () const
 
const Valueiter () const
 
void run (ReductionInterpreterImpl *interpreter) override
 
template<typename Tp , typename... Args>
Valueadd (Args &&...args)
 
- Public Member Functions inherited from Instruction
 Instruction (const Type type, const std::string &label)
 
- Public Member Functions inherited from Value
 Value (const Type type, const std::string &label)
 
Type type () const
 
size_t id () const
 
const std::string & label () const
 
virtual ~Value ()=default
 

Private Attributes

std::vector< std::unique_ptr
< Instruction > > 
body_
 
const Valuestart_
 
const Valueend_
 
const Value iter_
 

Detailed Description

Definition at line 464 of file ResultSetReductionOps.h.

Constructor & Destructor Documentation

For::For ( const Value start,
const Value end,
const std::string &  label 
)
inline

Definition at line 466 of file ResultSetReductionOps.h.

468  , start_(start)
469  , end_(end)
470  , iter_(Type::Int64, label) {}
const std::string & label() const
Instruction(const Type type, const std::string &label)
const Value * end_
const Value * start_
const Value iter_

Member Function Documentation

template<typename Tp , typename... Args>
Value* For::add ( Args &&...  args)
inline

Definition at line 483 of file ResultSetReductionOps.h.

References run_benchmark_import::args, and body_.

Referenced by anonymous_namespace{ResultSetReductionJIT.cpp}::generate_loop_body().

483  {
484  body_.emplace_back(new Tp(std::forward<Args>(args)...));
485  return body_.back().get();
486  }
std::vector< std::unique_ptr< Instruction > > body_

+ Here is the caller graph for this function:

const std::vector<std::unique_ptr<Instruction> >& For::body ( ) const
inline

Definition at line 472 of file ResultSetReductionOps.h.

References body_.

472 { return body_; }
std::vector< std::unique_ptr< Instruction > > body_
const Value* For::end ( ) const
inline

Definition at line 476 of file ResultSetReductionOps.h.

References end_.

Referenced by anonymous_namespace{ResultSetReductionCodegen.cpp}::translate_for().

476 { return end_; }
const Value * end_

+ Here is the caller graph for this function:

const Value* For::iter ( ) const
inline

Definition at line 478 of file ResultSetReductionOps.h.

References iter_.

Referenced by anonymous_namespace{ResultSetReductionJIT.cpp}::generate_loop_body().

478 { return &iter_; }
const Value iter_

+ Here is the caller graph for this function:

void For::run ( ReductionInterpreterImpl interpreter)
overridevirtual

Implements Instruction.

Definition at line 391 of file ResultSetReductionInterpreter.cpp.

References ReductionInterpreterImpl::runFor().

391  {
392  ReductionInterpreterImpl::runFor(this, interpreter);
393 }
static void runFor(const Instruction *instruction, ReductionInterpreterImpl *interpreter)

+ Here is the call graph for this function:

const Value* For::start ( ) const
inline

Definition at line 474 of file ResultSetReductionOps.h.

References start_.

Referenced by anonymous_namespace{ResultSetReductionCodegen.cpp}::translate_for().

474 { return start_; }
const Value * start_

+ Here is the caller graph for this function:

Member Data Documentation

std::vector<std::unique_ptr<Instruction> > For::body_
private

Definition at line 489 of file ResultSetReductionOps.h.

Referenced by add(), and body().

const Value* For::end_
private

Definition at line 491 of file ResultSetReductionOps.h.

Referenced by end().

const Value For::iter_
private

Definition at line 495 of file ResultSetReductionOps.h.

Referenced by iter().

const Value* For::start_
private

Definition at line 490 of file ResultSetReductionOps.h.

Referenced by start().


The documentation for this class was generated from the following files: