Skip to content

Version 3.0.0

Compare
Choose a tag to compare
@coldav coldav released this 02 Aug 09:01
· 1113 commits to main since this release

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.
  • The cl_codeplay_program_snapshot extension has been removed.
  • cl::binary::ProgramInfo and cl::binary::KernelInfo have been removed and
    replaced with equivalent structures in the compiler namespace.
  • compiler::Module::finalize no longer takes a callback to populate program
    info - it now takes compiler::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 to LLVM 17.