[Driver] Enable -ftime-trace for CUDA/HIP device compilation (#179701) Previously, -ftime-trace only generated trace files for host compilation when compiling CUDA/HIP code. Device compilation was excluded because the OffloadingPrefix was non-empty, causing handleTimeTrace() to be skipped. This patch enables -ftime-trace for offload device compilation by: 1. Passing the offloading prefix to handleTimeTrace() 2. Including the bound architecture in the trace filename 3. Deriving the trace output directory from the -o option for device compilation (since the device output is a temp file) Trace files are now generated for each offload target: - Host: output.json - Device: output-hip-amdgcn-amd-amdhsa-gfx906.json Note: When using --save-temps, multiple compilation phases (preprocess, compile, codegen) write to the same trace file, with each phase overwriting the previous. This is pre-existing behavior that also affects regular C++ compilation and is not addressed by this patch. This addresses a long-standing limitation noted in D150282. GitOrigin-RevId: a63a548b5ba6eeb3adf55eefcfa08ec742af8550
Welcome to Clang.
This is a compiler front-end for the C family of languages (C, C++ and Objective-C) which is built as part of the LLVM compiler infrastructure project.
Unlike many other compiler frontends, Clang is useful for a number of things beyond just compiling code: we intend for Clang to be host to a number of different source-level tools. One example of this is the Clang Static Analyzer.
If you're interested in more (including how to build Clang) it is best to read the relevant websites. Here are some pointers:
Information on Clang: http://clang.llvm.org/
Building and using Clang: http://clang.llvm.org/get_started.html
Clang Static Analyzer: http://clang-analyzer.llvm.org/
Information on the LLVM project: http://llvm.org/
If you have questions or comments about Clang, a great place to discuss them is on the Clang forums:
If you find a bug in Clang, please file it in the LLVM bug tracker: