OmniSciDB  72c90bc290
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups 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 546 of file ResultSetReductionOps.h.

Constructor & Destructor Documentation

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

Definition at line 548 of file ResultSetReductionOps.h.

550  , start_(start)
551  , end_(end)
552  , 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 565 of file ResultSetReductionOps.h.

References run_benchmark_import::args, and body_.

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

565  {
566  body_.emplace_back(new Tp(std::forward<Args>(args)...));
567  return body_.back().get();
568  }
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 554 of file ResultSetReductionOps.h.

References body_.

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

Definition at line 558 of file ResultSetReductionOps.h.

References end_.

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

558 { return end_; }
const Value * end_

+ Here is the caller graph for this function:

const Value* For::iter ( ) const
inline

Definition at line 560 of file ResultSetReductionOps.h.

References iter_.

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

560 { return &iter_; }
const Value iter_

+ Here is the caller graph for this function:

void For::run ( ReductionInterpreterImpl interpreter)
overridevirtual

Implements Instruction.

Definition at line 407 of file ResultSetReductionInterpreter.cpp.

References ReductionInterpreterImpl::runFor().

407  {
408  ReductionInterpreterImpl::runFor(this, interpreter);
409 }
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 556 of file ResultSetReductionOps.h.

References start_.

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

556 { 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 571 of file ResultSetReductionOps.h.

Referenced by add(), and body().

const Value* For::end_
private

Definition at line 573 of file ResultSetReductionOps.h.

Referenced by end().

const Value For::iter_
private

Definition at line 577 of file ResultSetReductionOps.h.

Referenced by iter().

const Value* For::start_
private

Definition at line 572 of file ResultSetReductionOps.h.

Referenced by start().


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