Halide
LoopNest.h File Reference
#include "FunctionDAG.h"
#include "PerfectHashMap.h"
#include <map>
#include <set>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  Halide::Internal::Autoscheduler::LoopNest
 
struct  Halide::Internal::Autoscheduler::LoopNest::Sites
 
struct  Halide::Internal::Autoscheduler::LoopNest::StageScheduleState
 
struct  Halide::Internal::Autoscheduler::LoopNest::StageScheduleState::FuncVar
 

Namespaces

 Halide
 This file defines the class FunctionDAG, which is our representation of a Halide pipeline, and contains methods to using Halide's bounds tools to query properties of it.
 
 Halide::Internal
 
 Halide::Internal::Autoscheduler
 

Typedefs

template<typename T >
using Halide::Internal::Autoscheduler::NodeMap = PerfectHashMap< FunctionDAG::Node, T >
 
template<typename T >
using Halide::Internal::Autoscheduler::StageMap = PerfectHashMap< FunctionDAG::Node::Stage, T >
 

Functions

std::vector< std::vector< int64_t > > Halide::Internal::Autoscheduler::generate_tilings (const vector< int64_t > &s, int d, int factor, bool allow_splits)
 
const LoopNest * Halide::Internal::Autoscheduler::deepest_common_ancestor (const std::map< const LoopNest *, std::pair< const LoopNest *, int >> &parents, const LoopNest *a, const LoopNest *b)
 
void Halide::Internal::Autoscheduler::compute_loop_nest_parents (std::map< const LoopNest *, std::pair< const LoopNest *, int >> &parents, const LoopNest *here, int depth)