MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
lower_map_reduce.h
Go to the documentation of this file.
1#pragma once
2
3#include <mim/phase.h>
4
5#include "mim/plug/gpu/gpu.h"
6
8
9class LowerMapReduce : public RWPhase {
10public:
11 using Super = RWPhase;
12
15
16private:
17 /// Skips the whole phase if the program already contains an explicit `gpu.init`.
18 // TODO: consider different solution to gpu.init vs gpu.auto_init problem
19 void start() final;
20 const Def* rewrite_imm_App(const App*) final;
21
22 const Def* lower_map_reduce_post(const App*);
23};
24
25} // namespace mim::plug::gpu::phase
Base class for all Defs.
Definition def.h:273
flags_t annex() const
Definition phase.h:81
RWPhase(World &world, std::string name, Analysis *analysis=nullptr)
Definition phase.h:431
World & world()=delete
Hides both and forbids direct access.
The World represents the whole program and manages creation of MimIR nodes (Defs).
Definition world.h:40
void start() final
Skips the whole phase if the program already contains an explicit gpu.init.
LowerMapReduce(World &world, flags_t annex)
const Def * rewrite_imm_App(const App *) final
u64 flags_t
Definition types.h:39