mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 21:26:07 +00:00

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.
22 lines
852 B
C++
22 lines
852 B
C++
//===------- Targets.h - Declare target feature support ---------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file declares things required for construction of a TargetInfo object
|
|
// from a target triple. Typically individual targets will need to include from
|
|
// here in order to get these functions if required.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_H
|
|
#define LLVM_CLANG_LIB_BASIC_TARGETS_H
|
|
|
|
#include "TargetDefines.h"
|
|
#include "clang/Basic/TargetInfo.h"
|
|
|
|
#endif // LLVM_CLANG_LIB_BASIC_TARGETS_H
|