Ignore:
Timestamp:
Nov 14, 2015, 5:38:36 PM (4 years ago)
Author:
nmedfort
Message:

Bug fix for Multiplexing. Added ability to set the body of a If/While? node after creation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/toolchain.cpp

    r4868 r4870  
    4949#include "do_grep.h"
    5050
     51using namespace pablo;
     52
    5153static cl::OptionCategory cRegexOutputOptions("Regex Dump Options",
    5254                                              "These options control printing of intermediate regular expression structures.");
     
    116118}
    117119   
    118 pablo::PabloFunction * re2pablo_compiler(const Encoding encoding, re::RE * re_ast) {   
    119     pablo::PabloFunction * function = pablo::PabloFunction::Create("process_block", 8, 2);   
     120PabloFunction * re2pablo_compiler(const Encoding encoding, re::RE * re_ast) {
     121    PabloFunction * function = PabloFunction::Create("process_block", 8, 2);
    120122    cc::CC_Compiler cc_compiler(*function, encoding);
    121123    re::RE_Compiler re_compiler(*function, cc_compiler);
     
    128130        llvm::raw_os_ostream cerr(std::cerr);
    129131        cerr << "Initial Pablo AST:\n";
    130         PabloPrinter::print(function->getEntryBlock().statements(), cerr);
     132        PabloPrinter::print(function, cerr);
    131133    }
    132134#ifndef NDEBUG
    133     pablo::PabloVerifier::verify(*function, "creation");
     135    PabloVerifier::verify(*function, "creation");
    134136#endif
    135137    return function;
    136138}
    137139
    138 void pablo_function_passes(pablo::PabloFunction * function) {
     140void pablo_function_passes(PabloFunction * function) {
    139141    // Scan through the pablo code and perform DCE and CSE
    140142    if (!DisablePabloCSE) {
    141         pablo::Simplifier::optimize(*function);
     143        Simplifier::optimize(*function);
    142144    }
    143145    if (PabloSinkingPass) {
    144         pablo::CodeMotionPass::optimize(*function);
     146        CodeMotionPass::optimize(*function);
    145147    }
    146148#ifdef ENABLE_MULTIPLEXING   
    147149    if (EnableMultiplexing) {
    148         pablo::BDDMinimizationPass::optimize(*function);
    149         pablo::AutoMultiplexing::optimize(*function, MultiplexingSetLimit, MultiplexingSelectionLimit);
     150        BDDMinimizationPass::optimize(*function);
     151        AutoMultiplexing::optimize(*function, MultiplexingSetLimit, MultiplexingSelectionLimit);
    150152    }
    151153    if (EnableReassociation) {
    152         pablo::BooleanReassociationPass::optimize(*function);
     154        BooleanReassociationPass::optimize(*function);
    153155    }
    154156#endif
     
    157159        llvm::raw_os_ostream cerr(std::cerr);
    158160        cerr << "Final Pablo AST:\n";
    159         PabloPrinter::print(function->getEntryBlock().statements(), cerr);
    160     }
    161 }
    162 
    163 
     161        PabloPrinter::print(function, cerr);
     162    }
     163}
    164164
    165165ExecutionEngine * JIT_to_ExecutionEngine (llvm::Function * f) {
Note: See TracChangeset for help on using the changeset viewer.