MimIR 0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mim::plug::compile Namespace Reference

The compile Plugin More...

Classes

class  DebugPrint
 
class  InternalCleanup
 

Enumerations

%compile.Pass
enum class  Pass : flags_t
 
%compile.Phase
enum class  Phase : flags_t
 
%compile.Pipeline
enum class  Pipeline : flags_t
 
%compile.PassList
enum class  PassList : flags_t
 
%compile.CombinedPhase
enum class  CombinedPhase : flags_t
 
%compile.Plugin
enum class  Plugin : flags_t
 
%compile.core_plugin
enum class  core_plugin : flags_t
 
%compile.mem_plugin
enum class  mem_plugin : flags_t
 
%compile.demo_plugin
enum class  demo_plugin : flags_t
 
%compile.affine_plugin
enum class  affine_plugin : flags_t
 
%compile.autodiff_plugin
enum class  autodiff_plugin : flags_t
 
%compile.clos_plugin
enum class  clos_plugin : flags_t
 
%compile.direct_plugin
enum class  direct_plugin : flags_t
 
%compile.refly_plugin
enum class  refly_plugin : flags_t
 
%compile.regex_plugin
enum class  regex_plugin : flags_t
 
%compile.matrix_plugin
enum class  matrix_plugin : flags_t
 
%compile.pipe
enum class  pipe : flags_t
 
%compile.debug_phase
enum class  debug_phase : flags_t
 
%compile.pass_list
enum class  pass_list : flags_t
 
%compile.passes_to_phase
enum class  passes_to_phase : flags_t
 
%compile.phase_list
enum class  phase_list : flags_t
 
%compile.phases_to_phase
enum class  phases_to_phase : flags_t
 
%compile.beta_red_pass
enum class  beta_red_pass : flags_t
 
%compile.eta_red_pass
enum class  eta_red_pass : flags_t
 
%compile.eta_exp_pass
enum class  eta_exp_pass : flags_t
 
%compile.scalarize_pass
enum class  scalarize_pass : flags_t
 
%compile.tail_rec_elim_pass
enum class  tail_rec_elim_pass : flags_t
 
%compile.lam_spec_pass
enum class  lam_spec_pass : flags_t
 
%compile.ret_wrap_pass
enum class  ret_wrap_pass : flags_t
 
%compile.nullptr_pass
enum class  nullptr_pass : flags_t
 
%compile.internal_cleanup_pass
enum class  internal_cleanup_pass : flags_t
 
%compile.plugin_select
enum class  plugin_select : flags_t
 

Functions

void handle_optimization_part (const Def *part, World &world, Passes &passes, PipelineBuilder &builder)
 
void register_normalizers (Normalizers &normalizers)
 

Variables

static constexpr plugin_t Plugin_Id = 0x11039128d1800000
 

%compile.pass_phase

enum class  pass_phase : flags_t
 
Ref normalize_pass_phase (Ref type, Ref, Ref arg)
 

%compile.combine_pass_list

enum class  combine_pass_list : flags_t
 
Ref normalize_combine_pass_list (Ref type, Ref, Ref arg)
 combine_pass_list K (pass_list pass11 ... pass1N) ... (pass_list passK1 ... passKM) = pass_list pass11 ... p1N ... / passK1 ... passKM
 

%compile.single_pass_phase

enum class  single_pass_phase : flags_t
 
Ref normalize_single_pass_phase (Ref type, Ref, Ref arg)
 single_pass_phase pass -> passes_to_phase 1 pass
 

%compile.combined_phase

enum class  combined_phase : flags_t
 
Ref normalize_combined_phase (Ref type, Ref, Ref arg)
 combined_phase (phase_list phase1 ... phasen) -> phases_to_phase n (phase1, ..., phasen)
 

Detailed Description

Enumeration Type Documentation

◆ affine_plugin

Definition at line 77 of file autogen.h.

◆ autodiff_plugin

Definition at line 84 of file autogen.h.

◆ beta_red_pass

Definition at line 200 of file autogen.h.

◆ clos_plugin

Definition at line 91 of file autogen.h.

◆ combine_pass_list

Definition at line 162 of file autogen.h.

◆ combined_phase

Definition at line 185 of file autogen.h.

◆ CombinedPhase

Definition at line 42 of file autogen.h.

◆ core_plugin

Definition at line 56 of file autogen.h.

◆ debug_phase

Definition at line 133 of file autogen.h.

◆ demo_plugin

Definition at line 70 of file autogen.h.

◆ direct_plugin

Definition at line 98 of file autogen.h.

◆ eta_exp_pass

Definition at line 214 of file autogen.h.

◆ eta_red_pass

Definition at line 207 of file autogen.h.

◆ internal_cleanup_pass

Definition at line 256 of file autogen.h.

◆ lam_spec_pass

Definition at line 235 of file autogen.h.

◆ matrix_plugin

Definition at line 119 of file autogen.h.

◆ mem_plugin

Definition at line 63 of file autogen.h.

◆ nullptr_pass

Definition at line 249 of file autogen.h.

◆ Pass

enum class mim::plug::compile::Pass : flags_t
strong

Definition at line 14 of file autogen.h.

◆ pass_list

Definition at line 140 of file autogen.h.

◆ pass_phase

Definition at line 147 of file autogen.h.

◆ passes_to_phase

Definition at line 155 of file autogen.h.

◆ PassList

Definition at line 35 of file autogen.h.

◆ Phase

enum class mim::plug::compile::Phase : flags_t
strong

Definition at line 21 of file autogen.h.

◆ phase_list

Definition at line 178 of file autogen.h.

◆ phases_to_phase

Definition at line 193 of file autogen.h.

◆ pipe

enum class mim::plug::compile::pipe : flags_t
strong

Definition at line 126 of file autogen.h.

◆ Pipeline

Definition at line 28 of file autogen.h.

◆ Plugin

enum class mim::plug::compile::Plugin : flags_t
strong

Definition at line 49 of file autogen.h.

◆ plugin_select

Definition at line 263 of file autogen.h.

◆ refly_plugin

Definition at line 105 of file autogen.h.

◆ regex_plugin

Definition at line 112 of file autogen.h.

◆ ret_wrap_pass

Definition at line 242 of file autogen.h.

◆ scalarize_pass

Definition at line 221 of file autogen.h.

◆ single_pass_phase

Definition at line 170 of file autogen.h.

◆ tail_rec_elim_pass

Definition at line 228 of file autogen.h.

Function Documentation

◆ handle_optimization_part()

void mim::plug::compile::handle_optimization_part ( const Def * part,
World & world,
Passes & passes,
PipelineBuilder & builder )
inline

Definition at line 9 of file compile.h.

References mim::collect_args(), mim::Def::reduce(), and mim::Def::type().

Referenced by add_passes(), add_phases(), and mim_get_plugin().

◆ normalize_combine_pass_list()

Ref mim::plug::compile::normalize_combine_pass_list ( Ref type,
Ref ,
Ref arg )

combine_pass_list K (pass_list pass11 ... pass1N) ... (pass_list passK1 ... passKM) = pass_list pass11 ... p1N ... / passK1 ... passKM

Definition at line 45 of file normalizers.cpp.

References mim::Annex::Base, mim::collect_args(), mim::Def::projs(), and mim::Def::world().

Referenced by normalize_pass_phase().

◆ normalize_combined_phase()

Ref mim::plug::compile::normalize_combined_phase ( Ref type,
Ref ,
Ref arg )

combined_phase (phase_list phase1 ... phasen) -> phases_to_phase n (phase1, ..., phasen)

Definition at line 30 of file normalizers.cpp.

References mim::Annex::Base, mim::collect_args(), and mim::Def::world().

◆ normalize_pass_phase()

Ref mim::plug::compile::normalize_pass_phase ( Ref type,
Ref ,
Ref arg )

◆ normalize_single_pass_phase()

Ref mim::plug::compile::normalize_single_pass_phase ( Ref type,
Ref ,
Ref arg )

single_pass_phase pass -> passes_to_phase 1 pass

Definition at line 41 of file normalizers.cpp.

References mim::World::call(), and mim::Def::world().

◆ register_normalizers()

void mim::plug::compile::register_normalizers ( Normalizers & normalizers)

Referenced by mim_get_plugin().

Variable Documentation

◆ Plugin_Id

plugin_t mim::plug::compile::Plugin_Id = 0x11039128d1800000
staticconstexpr

Definition at line 10 of file autogen.h.