OmniSciDB
a5dc49c757
|
#include <DiamondCodegen.h>
Public Member Functions | |
DiamondCodegen (llvm::Value *cond, Executor *executor, const bool chain_to_next, const std::string &label_prefix, DiamondCodegen *parent, const bool share_false_edge_with_parent) | |
void | setChainToNext () |
void | setFalseTarget (llvm::BasicBlock *cond_false) |
~DiamondCodegen () | |
Public Attributes | |
Executor * | executor_ |
llvm::BasicBlock * | cond_true_ |
llvm::BasicBlock * | cond_false_ |
llvm::BasicBlock * | orig_cond_false_ |
bool | chain_to_next_ |
DiamondCodegen * | parent_ |
Helper struct for generating a branching instruction in LLVM IR. The diamond refers to both branches, the starting basic block, and the ending block. The true and false basic blocks are created on initialization, and the branches are created at destruction.
Definition at line 30 of file DiamondCodegen.h.
DiamondCodegen::DiamondCodegen | ( | llvm::Value * | cond, |
Executor * | executor, | ||
const bool | chain_to_next, | ||
const std::string & | label_prefix, | ||
DiamondCodegen * | parent, | ||
const bool | share_false_edge_with_parent | ||
) |
Definition at line 22 of file DiamondCodegen.cpp.
References AUTOMATIC_IR_METADATA, chain_to_next_, CHECK, cond_false_, cond_true_, executor_, orig_cond_false_, and parent_.
DiamondCodegen::~DiamondCodegen | ( | ) |
Definition at line 59 of file DiamondCodegen.cpp.
References AUTOMATIC_IR_METADATA, chain_to_next_, cond_false_, executor_, orig_cond_false_, and parent_.
void DiamondCodegen::setChainToNext | ( | ) |
void DiamondCodegen::setFalseTarget | ( | llvm::BasicBlock * | cond_false | ) |
Definition at line 54 of file DiamondCodegen.cpp.
References CHECK, cond_false_, orig_cond_false_, and parent_.
Referenced by Executor::groupByColumnCodegen().
bool DiamondCodegen::chain_to_next_ |
Definition at line 45 of file DiamondCodegen.h.
Referenced by DiamondCodegen(), setChainToNext(), and ~DiamondCodegen().
llvm::BasicBlock* DiamondCodegen::cond_false_ |
Definition at line 43 of file DiamondCodegen.h.
Referenced by GroupByAndAggregate::codegen(), TargetExprCodegen::codegenAggregate(), DiamondCodegen(), setFalseTarget(), and ~DiamondCodegen().
llvm::BasicBlock* DiamondCodegen::cond_true_ |
Definition at line 42 of file DiamondCodegen.h.
Referenced by TargetExprCodegen::codegenAggregate(), and DiamondCodegen().
Executor* DiamondCodegen::executor_ |
Definition at line 41 of file DiamondCodegen.h.
Referenced by DiamondCodegen(), and ~DiamondCodegen().
llvm::BasicBlock* DiamondCodegen::orig_cond_false_ |
Definition at line 44 of file DiamondCodegen.h.
Referenced by DiamondCodegen(), Executor::groupByColumnCodegen(), setFalseTarget(), and ~DiamondCodegen().
DiamondCodegen* DiamondCodegen::parent_ |
Definition at line 46 of file DiamondCodegen.h.
Referenced by DiamondCodegen(), setChainToNext(), setFalseTarget(), and ~DiamondCodegen().