As from my understanting, relax BYOC codegen for
foo is registered under
relax.ext.foo and has signature:
Array<runtime::Module> FooCodegen(Array<Function> functions, Map<String, ObjectRef> options, Map<Constant, String> /*unused*/);
It gets called by the
RunCodegen pass on functions with the
codegen annotation set to
Now I am also following the target/device integration documentation as I would like to be able to build model for my target for my new device by simply passing the target to
The documentation states that I need to register the target codegen under
target.build.foo with the signature:
runtime::Module GeneratorFooCode(IRModule mod, Target target);
These two are different, and I was hoping I could just reuse
target.build.foo but I am not sure how to get to a single
runtime::Module from an
Also I am not sure whether this is the correct way for BYOC for new device to provide their code generation as this seems to leads to duplicate code in my example.
Am I missing something?