https://github.com/halide/Halide
Raw File
Tip revision: 53435b9e372b9ba73e6668d276619ed5cf3aa80d authored by Steven Johnson on 10 January 2019, 21:05:59 UTC
Add autotune_classic.sh and support
Tip revision: 53435b9
DebugArguments.cpp
#include "DebugArguments.h"
#include "IROperator.h"
#include "Module.h"

namespace Halide {
namespace Internal {

using std::vector;

void debug_arguments(LoweredFunc *func) {
    internal_assert(func);
    vector<Stmt> stmts;
    stmts.push_back(Evaluate::make(print("Entering Pipeline " + func->name)));
    for (LoweredArgument arg : func->args) {
        std::ostringstream name;
        Expr scalar_var = Variable::make(arg.type, arg.name);
        Expr buffer_var = Variable::make(type_of<halide_buffer_t *>(), arg.name + ".buffer");
        Expr value;
        switch (arg.kind) {
        case Argument::InputScalar:
            name << " Input " << arg.type << ' ' << arg.name << ':';
            value = scalar_var;
            break;
        case Argument::InputBuffer:
            name << " Input Buffer " << arg.name << ':';
            value = buffer_var;
            break;
        case Argument::OutputBuffer:
            name << " Output Buffer " << arg.name << ':';
            value = buffer_var;
            break;
        }
        stmts.push_back(Evaluate::make(print(name.str(), value)));
    }
    stmts.push_back(func->body);
    stmts.push_back(Evaluate::make(print("Exiting Pipeline " + func->name)));
    func->body = Block::make(stmts);
}

}  // namespace Internal
}  // namespace Halide
back to top