Ignore:
Timestamp:
Jan 13, 2018, 11:57:43 AM (12 months ago)
Author:
nmedfort
Message:

Pablo support for byte comparisions; LineFeed? kernel processes byte streams directly. Some clean up of PabloBuilder? functionality.

File:
1 edited

Legend:

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

    r5620 r5828  
    2121namespace pablo { class PabloKernel; }
    2222namespace pablo { class Statement; }
     23namespace pablo { class Var; }
    2324namespace pablo { class While; }
    2425namespace kernel { class KernelBuilder; }
     
    4041protected:
    4142
    42     void initializeKernelData(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
     43    void initializeKernelData(const std::unique_ptr<kernel::KernelBuilder> & b);
    4344
    44     void compile(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
     45    void compile(const std::unique_ptr<kernel::KernelBuilder> & b);
    4546
    46     void releaseKernelData(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
     47    void releaseKernelData(const std::unique_ptr<kernel::KernelBuilder> & b);
     48
     49    void clearCarryData(const std::unique_ptr<kernel::KernelBuilder> & b);
    4750
    4851private:
    4952
    50     void examineBlock(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, const PabloBlock * const block);
     53    void examineBlock(const std::unique_ptr<kernel::KernelBuilder> & b, const PabloBlock * const block);
    5154
    52     void compileBlock(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, const PabloBlock * const block);
     55    void compileBlock(const std::unique_ptr<kernel::KernelBuilder> & b, const PabloBlock * const block);
    5356
    54     void compileStatement(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, const Statement * stmt);
     57    void compileStatement(const std::unique_ptr<kernel::KernelBuilder> & b, const Statement * stmt);
    5558
    56     void compileIf(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, const If * ifStmt);
     59    void compileIf(const std::unique_ptr<kernel::KernelBuilder> & b, const If * ifStmt);
    5760
    58     void compileWhile(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, const While * whileStmt);
     61    void compileWhile(const std::unique_ptr<kernel::KernelBuilder> & b, const While * whileStmt);
    5962
    60     void addBranchCounter(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
     63    void addBranchCounter(const std::unique_ptr<kernel::KernelBuilder> & b);
    6164
    62     llvm::Value * compileExpression(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, const PabloAST * expr, const bool ensureLoaded = true) const;
     65    llvm::Value * getPointerToVar(const std::unique_ptr<kernel::KernelBuilder> & b, const Var * var, llvm::Value * index1, llvm::Value * index2 = nullptr);
     66
     67    llvm::Value * compileExpression(const std::unique_ptr<kernel::KernelBuilder> & b, const PabloAST * expr, const bool ensureLoaded = true);
    6368
    6469private:
Note: See TracChangeset for help on using the changeset viewer.