17 | module Compiler.Enzyme.MLIR.Passes.Passes
19 | import Compiler.MLIR.Pass.PassManager
22 | ffi : String -> String
23 | ffi = libxla "c/Enzyme/MLIR/Passes/Passes.h"
25 | %foreign (ffi "PassManager_addPass_DifferentiatePass")
26 | prim__passManagerAddPassDifferentiatePass : GCAnyPtr -> String -> PrimIO ()
29 | addDifferentiatePass : HasIO io => PassManager -> String -> io ()
30 | addDifferentiatePass (MkPassManager pm) postpass =
31 | primIO $
prim__passManagerAddPassDifferentiatePass pm postpass
33 | %foreign (ffi "PassManager_addPass_OutlineEnzymeFromRegionPass")
34 | prim__passManagerAddPassOutlineEnzymeFromRegionPass : GCAnyPtr -> PrimIO ()
37 | addOutlineEnzymeFromRegionPass : HasIO io => PassManager -> io ()
38 | addOutlineEnzymeFromRegionPass (MkPassManager pm) =
39 | primIO $
prim__passManagerAddPassOutlineEnzymeFromRegionPass pm
41 | %foreign (ffi "registerRemoveUnusedEnzymeOpsPass")
42 | prim__registerRemoveUnusedEnzymeOpsPass : PrimIO ()
45 | registerRemoveUnusedEnzymeOpsPass : HasIO io => io ()
46 | registerRemoveUnusedEnzymeOpsPass = primIO $
prim__registerRemoveUnusedEnzymeOpsPass