FreeTensor
Loading...
Searching...
No Matches
Namespaces | Macros | Functions
lower.h File Reference
#include <unordered_set>
#include <autograd/clear_mark_version.h>
#include <config.h>
#include <driver/target.h>
#include <pass/cpu/lower_parallel_reduction.h>
#include <pass/float_simplify.h>
#include <pass/gpu/lower_parallel_reduction.h>
#include <pass/gpu/lower_vector.h>
#include <pass/gpu/make_sync.h>
#include <pass/gpu/multiplex_buffers.h>
#include <pass/gpu/normalize_threads.h>
#include <pass/gpu/normalize_var_in_kernel.h>
#include <pass/gpu/simplex_buffers.h>
#include <pass/make_heap_alloc.h>
#include <pass/make_parallel_reduction.h>
#include <pass/make_reduction.h>
#include <pass/merge_and_hoist_if.h>
#include <pass/move_out_first_or_last_iter.h>
#include <pass/prop_one_time_use.h>
#include <pass/remove_cyclic_assign.h>
#include <pass/remove_dead_var.h>
#include <pass/remove_writes.h>
#include <pass/scalar_prop_const.h>
#include <pass/shrink_for.h>
#include <pass/shrink_var.h>
#include <pass/simplify.h>
#include <pass/sink_var.h>
#include <pass/tensor_prop_const.h>
#include <pass/use_builtin_div.h>
#include <pass/z3_simplify.h>
Include dependency graph for lower.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  freetensor
 

Macros

#define FIRST_OF(x, ...)   (x)
 
#define APPLY(name, pass, ...)
 

Functions

template<class T >
freetensor::lower (const T &_ast, const Ref< Target > &_target=nullptr, const std::unordered_set< std::string > &skipPasses={}, int verbose=0)
 

Macro Definition Documentation

◆ APPLY

#define APPLY (   name,
  pass,
  ... 
)
Value:
skipPasses.count(name) ? FIRST_OF(__VA_ARGS__) \
: maybePrint(name, pass(__VA_ARGS__))
#define FIRST_OF(x,...)

◆ FIRST_OF

#define FIRST_OF (   x,
  ... 
)    (x)