Fix the ukernels system build on older toolchains. (#14155) In the process of adding the ukernels bitcode build, we dropped all cmake configure-check for toolchain support for CPU-feature-enabling flags, and configured headers. I didn't properly think through that: that worked essentially because no one had tried building with an older toolchain. On x86-64, that was OK because we didn't use any recent flag. but on ARM that was more problematic with the `+i8mm` target feature. @freddan80 ran into this on https://github.com/openxla/iree/issues/12684. So this brings back configure-checks and configured-headers, but only where they are specifically needed and not interfering with the bitcode build --- only in the arch/ subdirs and only in the system-build. Some `#if defined(IREE_DEVICE_STANDALONE)` lets the bitcode build opt out of including the configured headers. This has a couple of side benefits. We get to drop the clumsy `#if`'s trying to do version checks on compiler version tokens, and we get to conditionally add those feature-specific dependencies instead of having those `#if`'s around the entire files, which confuse syntax highlighting when the feature token is not defined in the IDE build.
IREE (Intermediate Representation Execution Environment, pronounced as “eerie”) is an MLIR-based end-to-end compiler and runtime that lowers Machine Learning (ML) models to a unified IR that scales up to meet the needs of the datacenter and down to satisfy the constraints and special considerations of mobile and edge deployments.
See our website for project details, user guides, and instructions on building from source.
IREE is still in its early phase. We have settled down on the overarching infrastructure and are actively improving various software components as well as project logistics. It is still quite far from ready for everyday use and is made available without any support at the moment. With that said, we welcome any kind of feedback on any communication channels!
See our website for more information.
IREE is licensed under the terms of the Apache 2.0 License with LLVM Exceptions. See LICENSE for more information.