Ignore:
Timestamp:
Jan 19, 2017, 2:41:02 PM (3 years ago)
Author:
nmedfort
Message:

Code clean-up. Removed Pablo Call, SetIthBit? and Prototype.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/pablo/carry_manager.h

    r5238 r5267  
    77#ifndef CARRY_MANAGER_H
    88#define CARRY_MANAGER_H
    9 #include <llvm/IR/IRBuilder.h>
    10 #include <llvm/IR/Module.h>
    11 #include <IR_Gen/idisa_builder.h>
    12 #include <pablo/pablo_kernel.h>
    13 #include <pablo/codegenstate.h>
     9
    1410#include <pablo/carry_data.h>
    15 #include <llvm/IR/Constants.h>
    16 #include <kernels/kernel.h>
     11#include <vector>
     12namespace IDISA { class IDISA_Builder; }
     13namespace llvm { class BasicBlock; }
     14namespace llvm { class Function; }
     15namespace llvm { class PHINode; }
     16namespace llvm { class StructType; }
     17namespace llvm { class Type; }
     18namespace llvm { class Value; }
     19namespace pablo { class Advance; }
     20namespace pablo { class PabloBlock; }
     21namespace pablo { class PabloKernel; }
     22namespace pablo { class Statement; }
     23
    1724
    1825/*
     
    2734*/
    2835
    29 using namespace llvm;
    30 
    3136namespace pablo {
    32 
    33 class PabloBlock;
    34 
    35 
    3637
    3738class CarryManager {
     
    4142public:
    4243 
    43     explicit CarryManager(IDISA::IDISA_Builder * idb) noexcept
    44     : iBuilder(idb)
    45     , mKernel(nullptr)
    46     , mSelf(nullptr)
    47     , mFunction(nullptr)
    48     , mBitBlockType(idb->getBitBlockType())
    49     , mBitBlockWidth(idb->getBitBlockWidth())
    50     , mCurrentFrameIndex(0)
    51     , mCurrentScope(nullptr)
    52     , mCarryInfo(nullptr)
    53     , mCarryPackType(mBitBlockType)
    54     , mCarryPackPtr(nullptr)
    55     , mIfDepth(0)
    56     , mLoopDepth(0) {
    57 
    58     }
    59 
    60     ~CarryManager() {
    61 
    62     }
     44    explicit CarryManager(IDISA::IDISA_Builder * idb) noexcept;
    6345
    6446    void initializeCarryData(PabloKernel * const kernel);
    6547
    66     void initializeCodeGen(Value * const self, Function *function);
     48    void initializeCodeGen(llvm::Value * const self, llvm::Function *function);
    6749
    6850    /* Entering and leaving loops. */
     
    7052    void enterLoopScope(PabloBlock * const scope);
    7153
    72     void enterLoopBody(BasicBlock * const entryBlock);
     54    void enterLoopBody(llvm::BasicBlock * const entryBlock);
    7355
    74     void leaveLoopBody(BasicBlock * const exitBlock);
     56    void leaveLoopBody(llvm::BasicBlock * const exitBlock);
    7557
    76     void leaveLoopScope(BasicBlock * const entryBlock, BasicBlock * const exitBlock);
     58    void leaveLoopScope(llvm::BasicBlock * const entryBlock, llvm::BasicBlock * const exitBlock);
    7759
    7860    /* Entering and leaving ifs. */
     
    8062    void enterIfScope(PabloBlock * const scope);
    8163
    82     void enterIfBody(BasicBlock * const entryBlock);
     64    void enterIfBody(llvm::BasicBlock * const entryBlock);
    8365
    84     void leaveIfBody(BasicBlock * const exitBlock);
     66    void leaveIfBody(llvm::BasicBlock * const exitBlock);
    8567
    86     void leaveIfScope(BasicBlock * const entryBlock, BasicBlock * const exitBlock);
     68    void leaveIfScope(llvm::BasicBlock * const entryBlock, llvm::BasicBlock * const exitBlock);
    8769
    8870    /* Methods for processing individual carry-generating operations. */
    8971   
    90     Value * addCarryInCarryOut(const Statement * operation, Value * const e1, Value * const e2);
     72    llvm::Value * addCarryInCarryOut(const Statement * operation, llvm::Value * const e1, llvm::Value * const e2);
    9173
    92     Value * advanceCarryInCarryOut(const Advance * advance, Value * const strm);
     74    llvm::Value * advanceCarryInCarryOut(const Advance * advance, llvm::Value * const strm);
    9375 
    9476    /* Methods for getting and setting carry summary values for If statements */
    9577         
    96     Value * generateSummaryTest(Value * condition);
     78    llvm::Value * generateSummaryTest(llvm::Value * condition);
    9779   
    9880protected:
     
    10082    static unsigned enumerate(PabloBlock * const scope, unsigned index = 0);
    10183    static bool requiresVariableLengthMode(const PabloBlock * const scope);
    102     StructType * analyse(PabloBlock * const scope, const unsigned ifDepth = 0, const unsigned whileDepth = 0);
     84    llvm::StructType * analyse(PabloBlock * const scope, const unsigned ifDepth = 0, const unsigned whileDepth = 0);
    10385
    10486    /* Entering and leaving scopes. */
     
    10789
    10890    /* Methods for processing individual carry-generating operations. */
    109     Value * getNextCarryIn();
    110     void setNextCarryOut(Value * const carryOut);
    111     Value * longAdvanceCarryInCarryOut(const unsigned shiftAmount, Value * const value);
     91    llvm::Value * getNextCarryIn();
     92    void setNextCarryOut(llvm::Value * const carryOut);
     93    llvm::Value * longAdvanceCarryInCarryOut(const unsigned shiftAmount, llvm::Value * const value);
    11294
    11395    /* Summary handling routines */
    114     void addToSummary(Value * const value);
     96    void addToSummary(llvm::Value * const value);
    11597
    11698    bool inCollapsingCarryMode() const;
     
    118100private:
    119101
    120     IDISA::IDISA_Builder * const                iBuilder;
    121     PabloKernel *                               mKernel;
    122     Value *                                     mSelf;
    123     Function *                                  mFunction;
    124     Type * const                                mBitBlockType;
    125     const unsigned                              mBitBlockWidth;
     102    IDISA::IDISA_Builder * const                    iBuilder;
     103    PabloKernel *                                   mKernel;
     104    llvm::Value *                                   mSelf;
     105    llvm::Function *                                mFunction;
     106    llvm::Type * const                              mBitBlockType;
     107    const unsigned                                  mBitBlockWidth;
    126108
    127     Value *                                     mCurrentFrame;
    128     unsigned                                    mCurrentFrameIndex;
     109    llvm::Value *                                   mCurrentFrame;
     110    unsigned                                        mCurrentFrameIndex;
    129111
    130     PabloBlock *                                mCurrentScope;
    131     CarryData *                                 mCarryInfo;
     112    PabloBlock *                                    mCurrentScope;
     113    CarryData *                                     mCarryInfo;
    132114
    133     Type *                                      mCarryPackType;
    134     Value *                                     mCarryPackPtr;
     115    llvm::Type *                                    mCarryPackType;
     116    llvm::Value *                                   mCarryPackPtr;
    135117
    136     unsigned                                    mIfDepth;
     118    unsigned                                        mIfDepth;
    137119
    138     unsigned                                    mLoopDepth;   
    139     Value *                                     mLoopSelector;
    140     std::vector<PHINode *>                      mLoopIndicies;
     120    unsigned                                        mLoopDepth;
     121    llvm::Value *                                   mLoopSelector;
     122    std::vector<llvm::PHINode *>                    mLoopIndicies;
    141123
    142     std::vector<CarryData>                      mCarryMetadata;
    143     std::vector<std::pair<Value *, unsigned>>  mCarryFrame;
     124    std::vector<CarryData>                          mCarryMetadata;
     125    std::vector<std::pair<llvm::Value *, unsigned>> mCarryFrame;
    144126
    145     std::vector<Value *>                        mCarrySummary;
     127    std::vector<llvm::Value *>                      mCarrySummary;
    146128};
    147129
Note: See TracChangeset for help on using the changeset viewer.