Ir.Compiler_optionsval hiprtc :
hip_include_options:string list ->
rocwmma_include_options:string list ->
uses_rocwmma:bool ->
with_debug:bool ->
string listThe hiprtc (HIP) option vector: includes, then the clang fast-math umbrella with its left-to-right overrides (-fno-associative-math, -fhonor-infinities), then debug.
nvrtc's opt-IN for floating-point reassociation. It exists here only so nvrtc can be checked never to emit it: the CUDA half of the reduction-order policy is a MEMBERSHIP claim, not an ordering one.
val nvrtc :
cuda_include_options:string list ->
arch_options:string list ->
with_device_debug:bool ->
string listThe nvrtc (CUDA) option vector. What this guarantees is the absence of nvrtc_reassociation_opt_in: --use_fast_math is a fixed expansion of four switches, none of which concerns reassociation (measured for gh-ocannl-784; see the implementation).
Which Metal math-policy API the host macOS offers: the modern split properties (macOS 15+), or the deprecated fastMathEnabled fallback (macOS 14).
Ordered property writes to apply to an MTLCompileOptions object; Metal_backend is only the interpreter that applies them, so the complete sequence is testable without linking Metal.
val equal_metal_option : metal_option -> metal_option -> boolval metal :
routine_logging:bool ->
math_api:metal_math_api ->
metal_option listval render_metal : metal_option list -> stringOne line, for diagnostics that have to travel through a log or an exception message: a compile's effective option vector is the state a numeric mismatch is reproducible against, and reading it off a failure is what turns "schedule-dependent numeric mismatch" into "optimizer flag".