#include "Halide.h" #include <stdio.h> using namespace Halide; int main(int argc, char **argv) { // Turning on tracing wraps certain Exprs. This shouldn't effect // bounds inference. Func f, g; Var x; f(x) = clamp(x, 0, 100); f.compute_root(); g(x) = f(f(x)); // f is known to be bounded, so this means we need 101 values of // f. This shouldn't be confused by tracing loads of f or stores // to g. f.trace_loads(); g.trace_stores(); // Shouldn't throw an error about unbounded access. g.compile_jit(); printf("Success!\n"); return 0; }