Ignore:
Timestamp:
Apr 3, 2016, 4:31:22 PM (3 years ago)
Author:
nmedfort
Message:

Redesigned buffer system to allow the pipeline to control selection of the current input and output streams; DoBlock? functions containing lookahead now take multiple input stream arguments. Selection and passing occurs automatically. Some work on Symbol Table.

File:
1 edited

Legend:

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

    r4974 r5000  
    1717#include <IDISA/idisa_builder.h>
    1818#include <kernels/kernel.h>
     19#include <boost/container/flat_set.hpp>
    1920
    2021namespace llvm {
     
    2425    class VectorType;
    2526    class PointerType;
    26     class ConstantAggregateZero;
    2727    class Constant;
    2828    class FunctionType;
     
    4444
    4545class PabloCompiler {
    46 
     46    using IntSet = boost::container::flat_set<unsigned>;
    4747    using MarkerMap = std::unordered_map<const PabloAST *, Value *>;
    48 
     48    using LookaheadOffsetMap = std::unordered_map<const PabloAST *, IntSet>;
    4949public:
    5050    PabloCompiler(Module * m, IDISA::IDISA_Builder * b);
     
    5555private:
    5656
    57     void Examine(PabloFunction & function);
    58     void Examine(PabloBlock * block);
     57    void Examine(const PabloFunction * const function);
     58    void Examine(const PabloBlock * const block, LookaheadOffsetMap & offsetMap);
    5959
    6060    void compileBlock(const PabloBlock * const block);
     
    6666
    6767    MarkerMap                           mMarkerMap;
    68 
     68    IntSet                              mInputStreamOffset;
    6969    Module *                            mMod;
    7070    IDISA::IDISA_Builder *              iBuilder;
Note: See TracChangeset for help on using the changeset viewer.