MCPcopy Create free account
hub / github.com/ROCm/AMDMIGraphX / inline_submodule

Function inline_submodule

src/inline_module.cpp:34–49  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32inline namespace MIGRAPHX_INLINE_NS {
33
34static void inline_submodule(module& m, instruction_ref ins, bool cond)
35{
36 const auto& mod_inputs = ins->module_inputs();
37 module_ref smod = cond ? mod_inputs.at(0) : mod_inputs.at(1);
38 auto mod_outputs = m.insert_instructions(ins, smod);
39
40 auto ins_outputs = ins->outputs();
41 assert(mod_outputs.size() >= ins_outputs.size());
42 for(const auto& out : ins_outputs)
43 {
44 auto val = out->get_operator().to_value();
45 assert(val.contains("index"));
46 auto index = val.at("index").to<std::size_t>();
47 m.replace_instruction(out, mod_outputs.at(index));
48 }
49}
50
51void inline_module::apply(module& m) const
52{

Callers 1

applyMethod · 0.85

Calls 7

atMethod · 0.80
insert_instructionsMethod · 0.80
outputsMethod · 0.80
replace_instructionMethod · 0.80
sizeMethod · 0.45
to_valueMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected