[Offload] Handle `BoundArchitecture` for non-GPU targets (#132037) Summary: Offloading tends to have a bound architecture that directly correponds to the `-mcpu` argument for that embedded job. This is currently handled by the GPU offloading toolchains, but is ignored by the CPU ones. This is problematic for languages like SYCL or OpenMP which permit 'offloading' to non-GPU targets. This patch handles this by putting generic handling in the GCC toolchain for those languages. I would've made this fully generic but it regressed some HIP sanitizer tests because their use-case is really weird. This also only goes for the languages that inherit from 'generic_gcc`. I could've made it in the base class, but I felt like it wasn't necessary as we only support offloading based off of this toolchain. In the future if we need it we can move it around. --------- Co-authored-by: Nick Sarnie <nick.sarnie@intel.com>
Welcome to the LLVM project!
This repository contains the source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and run-time environments.
The LLVM project has multiple components. The core of the project is itself called “LLVM”. This contains all of the tools, libraries, and header files needed to process intermediate representations and convert them into object files. Tools include an assembler, disassembler, bitcode analyzer, and bitcode optimizer.
C-like languages use the Clang frontend. This component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode -- and from there into object files, using LLVM.
Other components include: the libc++ C++ standard library, the LLD linker, and more.
Consult the Getting Started with LLVM page for information on building and running LLVM.
For information on how to contribute to the LLVM project, please take a look at the Contributing to LLVM guide.
Join the LLVM Discourse forums, Discord chat, LLVM Office Hours or Regular sync-ups.
The LLVM project has adopted a code of conduct for participants to all modes of communication within the project.