#define ADD_PASS_WRAPPER_0(name, builder) \
m.def(name, [](mlir::PassManager &pm) { pm.addPass(builder()); })
#define ADD_PASS_WRAPPER_1(name, builder, ty0) \
m.def(name, \
[](mlir::PassManager &pm, ty0 val0) { pm.addPass(builder(val0)); })
#define ADD_PASS_WRAPPER_2(name, builder, ty0, ty1) \
m.def(name, [](mlir::PassManager &pm, ty0 val0, ty1 val1) { \
pm.addPass(builder(val0, val1)); \
})
#define ADD_PASS_WRAPPER_3(name, builder, ty0, ty1, ty2) \
m.def(name, [](mlir::PassManager &pm, ty0 val0, ty1 val1, ty2 val2) { \
pm.addPass(builder(val0, val1, val2)); \
})
#define ADD_PASS_WRAPPER_4(name, builder, ty0, ty1, ty2, ty3) \
m.def(name, [](mlir::PassManager &pm, ty0 val0, ty1 val1, ty2 val2, \
ty3 val3) { pm.addPass(builder(val0, val1, val2, val3)); })
#define ADD_PASS_OPTION_WRAPPER_1(name, builder, ty0) \
m.def(name, \
[](mlir::PassManager &pm, ty0 val0) { pm.addPass(builder({val0})); })
#define ADD_PASS_OPTION_WRAPPER_2(name, builder, ty0, ty1) \
m.def(name, [](mlir::PassManager &pm, ty0 val0, ty1 val1) { \
pm.addPass(builder({val0, val1})); \
})
#define ADD_PASS_OPTION_WRAPPER_3(name, builder, ty0, ty1, ty2) \
m.def(name, [](mlir::PassManager &pm, ty0 val0, ty1 val1, ty2 val2) { \
pm.addPass(builder({val0, val1, val2})); \
})
#define ADD_PASS_OPTION_WRAPPER_4(name, builder, ty0, ty1, ty2, ty3) \
m.def(name, \
[](mlir::PassManager &pm, ty0 val0, ty1 val1, ty2 val2, ty3 val3) { \
pm.addPass(builder({val0, val1, val2, val3})); \
})