MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
tensor.cpp
Go to the documentation of this file.
2
3#include <mim/plugin.h>
4
11
12using namespace mim;
13using namespace mim::plug;
14
15namespace mim::plug::tensor {
24} // namespace mim::plug::tensor
25
26// clang-format off
27static constexpr PluginArg known_args[] = {
28 {"reassoc-max=<n>", "Longest matrix chain whose `Catalan(n − 1)` bracketings `tensor.reassoc` enumerates and, failing one that provably wins for every extent, dispatches over at run time (default `4`; below `3` switches the dispatch off)."},
29 {"reassoc-vec=<n>", "Vector lanes `tensor.reassoc` pads a product's vector loop to, so that a bracketing whose intermediates are too narrow to fill a vector is charged for the lanes it leaves idle (`1` … `1024`, default `8`; `1` counts plain scalar multiplications)."},
30};
31// clang-format on
32
35 {}, {}};
36}
static void hook(Flags2Phases &phases)
Definition phase.h:70
#define MIM_EXPORT
Definition config.h:21
The tensor Plugin
Definition constraints.h:5
void reg_phases(Flags2Phases &phases)
Definition tensor.cpp:16
void register_normalizers(Normalizers &normalizers)
Definition ast.h:16
absl::flat_hash_map< flags_t, std::function< std::unique_ptr< Phase >(World &)> > Flags2Phases
Maps an axiom of a Phase to a function that creates one.
Definition plugin.h:30
mim::Plugin mim_get_plugin()
One -X <plugin>:<arg> a Plugin understands; see Arguments.
Definition plugin.h:34
#define MIM_VERSION
Definition plugin.h:149
Basic info and registration function pointer to be returned from a specific plugin.
Definition plugin.h:154
static constexpr PluginArg known_args[]
Definition tensor.cpp:27