#ifndef HALIDE_INTERNAL_REALIZATION_ORDER_H #define HALIDE_INTERNAL_REALIZATION_ORDER_H /** \file * * Defines the lowering pass that determines the order in which * realizations are injected. */ #include <vector> #include <string> #include <map> namespace Halide { namespace Internal { class Function; /** Given a bunch of functions that call each other, determine an * order in which to do the scheduling. This in turn influences the * order in which stages are computed when there's no strict * dependency between them. Currently just some arbitrary depth-first * traversal of the call graph. */ std::vector<std::string> realization_order(const std::vector<Function> &output, const std::map<std::string, Function> &env); } } #endif