llvm-project
acc32667 - [Clang][NFC] Refactor `Targets.h` to make it publicly accessible (#116090)

Commit
1 year ago
[Clang][NFC] Refactor `Targets.h` to make it publicly accessible (#116090) This PR is motivated by the requirements of ClangIR, which includes compilation pipelines that do not always start from the Clang driver. In these cases, accessing some target-specific information, such as obtaining a data layout string for a given target triple or querying other target details, requires foundational infrastructure like `clang::TargetInfo`. Since ClangIR is actively being upstreamed, sharing this logic across components has become essential, which leads to this PR. The function `clang::targets::AllocateTarget` serves as the factory for Clang's `TargetInfo`. To enable sharing, this PR moves `AllocateTarget` to a public header. The existing header `clang/lib/Basic/Targets.h` previously contained two parts: the `AllocateTarget` function and target-specific macro helpers. With `AllocateTarget` moved, only the macro stuff remain in `Targets.h`. To better organize the code, the macro helpers have been relocated to a new file, `clang/lib/Basic/TargetDefines.h` (essentially a rename). The original `Targets.h` now serves as a proxy header that includes both headers to maintain compatibility.
Author
Parents
Loading