0 | {--
 1 | Copyright (C) 2024  Joel Berkeley
 2 |
 3 | This program is free software: you can redistribute it and/or modify
 4 | it under the terms of the GNU Affero General Public License as published
 5 | by the Free Software Foundation, either version 3 of the License, or
 6 | (at your option) any later version.
 7 |
 8 | This program is distributed in the hope that it will be useful,
 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of
10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 | GNU Affero General Public License for more details.
12 |
13 | You should have received a copy of the GNU Affero General Public License
14 | along with this program.  If not, see <https://www.gnu.org/licenses/>.
15 | --}
16 | ||| For internal spidr use only.
17 | module Compiler.Xla.Client.ExecutableBuildOptions
18 |
19 | import Compiler.FFI
20 |
21 | ffi : String -> String
22 | ffi = libxla "c/xla/client/executable_build_options.h"
23 |
24 | public export
25 | data ExecutableBuildOptions = MkExecutableBuildOptions AnyPtr
26 |
27 | %foreign (ffi "ExecutableBuildOptions_delete")
28 | prim__delete : AnyPtr -> PrimIO ()
29 |
30 | export
31 | delete : HasIO io => ExecutableBuildOptions -> io ()
32 | delete (MkExecutableBuildOptions opts) = primIO $ prim__delete opts
33 |
34 | %foreign (ffi "ExecutableBuildOptions_new")
35 | prim__mkExecutableBuildOptions : PrimIO AnyPtr
36 |
37 | export
38 | mkExecutableBuildOptions : HasIO io => io ExecutableBuildOptions
39 | mkExecutableBuildOptions = MkExecutableBuildOptions <$> primIO prim__mkExecutableBuildOptions
40 |