Version 3.0.0
Version 3.0.0
Upgrade guidance:
- The mux spec has been bumped:
- 0.74.0: to account for changes to
BaseModule
. - 0.75.0: to remove code supporting
cl_codeplay_program_snapshot
. - 0.76.0: to add code supporting
cl_intel_required_subgroup_size
.
- 0.74.0: to account for changes to
- The
cl_codeplay_program_snapshot
extension has been removed. cl::binary::ProgramInfo
andcl::binary::KernelInfo
have been removed and
replaced with equivalent structures in thecompiler
namespace.compiler::Module::finalize
no longer takes a callback to populate program
info - it now takescompiler::ProgramInfo
by pointer and populates it
itself if passed a non-null address.
Feature additions:
muxc
now supports OpenCL C inputs, before running a (now optional) pass
pipeline. A device is required for this to work.The file type is worked out
from the file extension, and LLVM IR is assumed otherwise. Options can be
provided to this step with-cl-options
. This also provides the ability to
select a device based on its index from 0, using--device-idx <idx>
.- The
cl_intel_required_subgroup_size
OpenCL extension is now supported. Note
that no in-tree targets currently report any supported sub-group sizes so no
kernels compiled with a required sub-group size will successfully compile. - The SPIR-V
SubgroupSize
execution mode is now supported via the
SubgroupDispatch
capability. Note that other aspects of this capability are
not supported. - The SPIR-V
OptNoneINTEL
capability is now supported. compiler::BaseModulePassMachinery
can now be given compiler options to
guide its decisions.- A new method -
compiler::BaseModulePassMachinery::handlePipelineElement
-
has been added to allow more customizable target-specific pipeline component
Future feature dropping for next major release (4.0.0):
SPIR 1.2
is deprecated and will be removed.LLVM 15
support will switch toLLVM 17
.