History log of /llvm-project/llvm/lib/TargetParser/Triple.cpp (Results 1 – 25 of 57)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init
# 16e9601e 27-Jan-2025 ssijaric-nv <ssijaric@nvidia.com>

[Flang] Adjust the trampoline size for AArch64 and PPC (#118678)

Set the trampoline size to match that in compiler-rt/lib/builtins/trampoline_setup.c
and AArch64 and PPC lowering.


# ebef4406 15-Jan-2025 Shilei Tian <i@tianshilei.me>

[LLVM][Triple] Add an argument to specify canonical form to `Triple::normalize` (#122935)

Currently, the output of `Triple::normalize` can vary depending on how the
`Triple` object is constructed, p

[LLVM][Triple] Add an argument to specify canonical form to `Triple::normalize` (#122935)

Currently, the output of `Triple::normalize` can vary depending on how the
`Triple` object is constructed, producing a 3-field, 4-field, or even 5-field
string. However, there is no way to control the format of the output, as all
forms are considered canonical according to the LangRef.

This lack of control can be inconvenient when a specific format is required. To
address this, this PR introduces an argument to specify the desired format (3,
4, or 5 identifiers), with the default set to none to maintain the current
behavior. If the requested format requires more components than are available in
the actual `Data`, `"unknown"` is appended as needed.

show more ...


# a829ebad 14-Jan-2025 Martin Storsjö <martin@martin.st>

[Triple] Ignore the vendor field for MinGW, wrt LTO/IR compatibility (#122801)

For MinGW environments, the regular C/C++ toolchains usually use "w64"
for the vendor field in triples, while Rust too

[Triple] Ignore the vendor field for MinGW, wrt LTO/IR compatibility (#122801)

For MinGW environments, the regular C/C++ toolchains usually use "w64"
for the vendor field in triples, while Rust toolchains usually use "pc"
in the vendor field.

The differences in the vendor field have no bearing on whether the IR is
compatible on this platform. (This probably goes for most other OSes as
well, but limiting the scope of the change to the specific case.)

Add a unit test for the isCompatibleWith, including some existing test
cases found in existing tests.

show more ...


Revision tags: llvmorg-19.1.7
# d7235876 09-Jan-2025 Steven Perron <stevenperron@google.com>

[HLSL] Explicitly set the SPIR-V version with spv-target-env (#121961)

In DXC, setting the vulkan version automatically sets the target spir-v
version to the maximum spir-v version that the vulkan v

[HLSL] Explicitly set the SPIR-V version with spv-target-env (#121961)

In DXC, setting the vulkan version automatically sets the target spir-v
version to the maximum spir-v version that the vulkan version must
support. So for Vulkan 1.2, we set the spir-v version to spirv 1.5
because every implementation of Vulkan 1.2 must support spirv 1.5, but
not spir-v 1.6.

show more ...


# 1c16807d 17-Dec-2024 Nick Sarnie <nick.sarnie@intel.com>

[LLVM] Add Intel vendor in Triple (#120250)

We plan to make use of this in SPIR-V-based OpenMP offloading, for which
there is already an initial patch in review.

Signed-off-by: Sarnie, Nick <nic

[LLVM] Add Intel vendor in Triple (#120250)

We plan to make use of this in SPIR-V-based OpenMP offloading, for which
there is already an initial patch in review.

Signed-off-by: Sarnie, Nick <nick.sarnie@intel.com>

show more ...


Revision tags: llvmorg-19.1.6, llvmorg-19.1.5
# 7672216e 21-Nov-2024 Joseph Huber <huberjn@outlook.com>

[LLVM] Add environment triple for 'llvm' (#117218)

Summary:
The LLVM C library is an in-development environment for running
executables on various systems. Similarly how we have `-gnu` to indicate
t

[LLVM] Add environment triple for 'llvm' (#117218)

Summary:
The LLVM C library is an in-development environment for running
executables on various systems. Similarly how we have `-gnu` to indicate
that we are using a GNU toolchain we should support `-llvm` to indicate
the LLVM C library. This patch only adds the basic support for the
triple and does not do any necessary clang changes to handle compiling
with it.

Fixes https://github.com/llvm/llvm-project/issues/117251

show more ...


Revision tags: llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2
# c6ba7b38 15-Oct-2024 hpoussin <32227662+hpoussin@users.noreply.github.com>

[Triple] Make mipsel-*-windows-* use COFF files by default (#107809)

Windows NT/MIPS and Windows CE/MIPS always used COFF format.

This is an extract of PR #107744.


# 387b37af 14-Oct-2024 Michał Górny <mgorny@gentoo.org>

[LLVM] [Clang] Support for Gentoo `*t64` triples (64-bit time_t ABIs) (#111302)

Gentoo is planning to introduce a `*t64` suffix for triples that will be
used by 32-bit platforms that use 64-bit `ti

[LLVM] [Clang] Support for Gentoo `*t64` triples (64-bit time_t ABIs) (#111302)

Gentoo is planning to introduce a `*t64` suffix for triples that will be
used by 32-bit platforms that use 64-bit `time_t`. Add support for
parsing and accepting these triples, and while at it make clang
automatically enable the necessary glibc feature macros when this suffix
is used.

An open question is whether we can backport this to LLVM 19.x. After
all, adding new triplets to Triple sounds like an ABI change — though I
suppose we can minimize the risk of breaking something if we move new
enum values to the very end.

show more ...


# d0756cae 04-Oct-2024 Jonathan Thackray <jonathan.thackray@arm.com>

[ARM][AArch64] Introduce the Armv9.6-A architecture version (#110825)

This introduces the Armv9.6-A architecture version, including the
relevant command-line option for -march.

More details abou

[ARM][AArch64] Introduce the Armv9.6-A architecture version (#110825)

This introduces the Armv9.6-A architecture version, including the
relevant command-line option for -march.

More details about the Armv9.6-A architecture version can be found at:
* https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-developments-2024
* https://developer.arm.com/documentation/ddi0602/2024-09/

show more ...


Revision tags: llvmorg-19.1.1
# 72a21805 20-Sep-2024 Alex Rønne Petersen <alex@alexrp.com>

[llvm][Triple] Add `Environment` members and parsing for glibc/musl parity. (#107664)

This adds support for:

* `muslabin32` (MIPS N32)
* `muslabi64` (MIPS N64)
* `muslf32` (LoongArch ILP32F/LP6

[llvm][Triple] Add `Environment` members and parsing for glibc/musl parity. (#107664)

This adds support for:

* `muslabin32` (MIPS N32)
* `muslabi64` (MIPS N64)
* `muslf32` (LoongArch ILP32F/LP64F)
* `muslsf` (LoongArch ILP32S/LP64S)

As we start adding glibc/musl cross-compilation support for these
targets in Zig, it would make our life easier if LLVM recognized these
triples. I'm hoping this'll be uncontroversial since the same has
already been done for `musleabi`, `musleabihf`, and `muslx32`.

I intentionally left out a musl equivalent of `gnuf64` (LoongArch
ILP32D/LP64D); my understanding is that Loongson ultimately settled on
simply `gnu` for this much more common case, so there doesn't *seem* to
be a particularly compelling reason to add a `muslf64` that's basically
deprecated on arrival.

Note: I don't have commit access.

show more ...


Revision tags: llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3
# 617cf8a7 06-Aug-2024 Aaron Ballman <aaron@aaronballman.com>

Reapply "Finish deleting the le32/le64 targets" (#99079) (#101983)

This reverts commit d3f8105c65046173e20c4c59394b4a7f1bbe7627.

Halide no longer relies on this target:
https://github.com/llvm/l

Reapply "Finish deleting the le32/le64 targets" (#99079) (#101983)

This reverts commit d3f8105c65046173e20c4c59394b4a7f1bbe7627.

Halide no longer relies on this target:
https://github.com/llvm/llvm-project/pull/98497#issuecomment-2253358685

show more ...


Revision tags: llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init
# 146fd7cd 22-Jul-2024 Daniil Kovalev <dkovalev@accesssoftek.com>

[PAC][Driver] Support `pauthtest` ABI for AArch64 Linux triples (#97237)

When `pauthtest` is either passed as environment part of AArch64 Linux
triple
or passed via `-mabi=`, enable the following

[PAC][Driver] Support `pauthtest` ABI for AArch64 Linux triples (#97237)

When `pauthtest` is either passed as environment part of AArch64 Linux
triple
or passed via `-mabi=`, enable the following ptrauth flags:

- `intrinsics`;
- `calls`;
- `returns`;
- `auth-traps`;
- `vtable-pointer-address-discrimination`;
- `vtable-pointer-type-discrimination`;
- `init-fini`.

Some related stuff is still subject to change, and the ABI itself might
be changed, so end users are not expected to use this and the ABI name
has 'test' suffix.

If `-mabi=pauthtest` option is used, it's normalized to effective
triple.

When the environment part of the effective triple is `pauthtest`, try
to use `aarch64-linux-pauthtest` as multilib directory.

The following is not supported:
- combination of `pauthtest` ABI with any branch protection scheme
except BTI;
- explicit set of environment part of the triple to a value different
from `pauthtest` in combination with `-mabi=pauthtest`;
- usage on non-Linux OS.

---------

Co-authored-by: Anatoly Trosinenko <atrosinenko@accesssoftek.com>

show more ...


# d3f8105c 16-Jul-2024 Aaron Ballman <aaron@aaronballman.com>

Revert "Finish deleting the le32/le64 targets" (#99079)

Reverts llvm/llvm-project#98497

We're reverting this for approx 30 days so that the Halide project has
time to transition off the target.


# 2369a54f 12-Jul-2024 Aaron Ballman <aaron@aaronballman.com>

Finish deleting the le32/le64 targets (#98497)

This is a revert of ef5e7f90ea4d5063ce68b952c5de473e610afc02 which was a
temporary partial revert of 77ac823fd285973cfb3517932c09d82e6a32f46d.
The le

Finish deleting the le32/le64 targets (#98497)

This is a revert of ef5e7f90ea4d5063ce68b952c5de473e610afc02 which was a
temporary partial revert of 77ac823fd285973cfb3517932c09d82e6a32f46d.
The le32 and le64 targets are no longer necessary to retain, so this
removes them entirely.

show more ...


Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6
# 531a0b67 13-May-2024 Xiang Li <python3kgae@outlook.com>

[DirectX] Reapply Fix DXIL part header version encoding (#91956)

This reapplies
https://github.com/llvm/llvm-project/commit/195d8ac26d91ca798733c3a5f58d67992d43503d
[DirectX] Fix DXIL part header

[DirectX] Reapply Fix DXIL part header version encoding (#91956)

This reapplies
https://github.com/llvm/llvm-project/commit/195d8ac26d91ca798733c3a5f58d67992d43503d
[DirectX] Fix DXIL part header version encoding. The endian issue was
fixed by
https://github.com/llvm/llvm-project/commit/f42117c8517cc928c6373bad35ebf75d94fe865b.

Move MinorVersion be the lower 8 bit.
Set DXIL version in DXContainerObjectWriter::writeObject.

Fixes #89952

show more ...


# d6550543 10-May-2024 Justin Bogner <mail@justinbogner.com>

Revert "[DirectX] Fix DXIL part header version encoding" (#91791)

Test failures on big endian bots after this change.

Reverts llvm/llvm-project#91506


# 195d8ac2 10-May-2024 Xiang Li <python3kgae@outlook.com>

[DirectX] Fix DXIL part header version encoding (#91506)

Move MinorVersion be the lower 8 bit.
Set DXIL version in DXContainerObjectWriter::writeObject.


Fixes #89952


# bb6df080 08-May-2024 Kazu Hirata <kazu@google.com>

[llvm] Use StringRef::operator== instead of StringRef::equals (NFC) (#91441)

I'm planning to remove StringRef::equals in favor of
StringRef::operator==.

- StringRef::operator==/!= outnumber Stri

[llvm] Use StringRef::operator== instead of StringRef::equals (NFC) (#91441)

I'm planning to remove StringRef::equals in favor of
StringRef::operator==.

- StringRef::operator==/!= outnumber StringRef::equals by a factor of
70 under llvm/ in terms of their usage.

- The elimination of StringRef::equals brings StringRef closer to
std::string_view, which has operator== but not equals.

- S == "foo" is more readable than S.equals("foo"), especially for
!Long.Expression.equals("str") vs Long.Expression != "str".

show more ...


# 6d890148 08-May-2024 S. Bharadwaj Yadavalli <Bharadwaj.Yadavalli@microsoft.com>

[DXIL] Set DXIL Version in DXIL target triple based on shader model version (#91407)

This change set restores commit 080978dd2067d0c9ea7e229aa7696c2480d89ef1 that was reverted to address ASAN
failu

[DXIL] Set DXIL Version in DXIL target triple based on shader model version (#91407)

This change set restores commit 080978dd2067d0c9ea7e229aa7696c2480d89ef1 that was reverted to address ASAN
failures and includes a fix for the ASAN failures.

Following is the description of the change:

An earlier commit provided a way to decouple DXIL version from Shader
Model version by representing the DXIL version as `SubArch` in the DXIL
Target Triple and adding corresponding valid DXIL Arch types.

This change constructs DXIL target triple with DXIL version that is
deduced from Shader Model version specified in the following scenarios:

1. When compilation target profile is specified:
For e.g., DXIL target triple `dxilv1.8-unknown-shader6.8-library` is
constructed when `-T lib_6_8` is specified.
2. When DXIL target triple without DXIL version is specified:
For e.g., DXIL target triple `dxilv1.8-pc-shadermodel6.8-library` is
constructed when `-mtriple=dxil-pc-shadermodel6.8-library` is specified.

Updated relevant HLSL tests that check for target triple.

show more ...


# 665af09a 08-May-2024 Xiang Li <python3kgae@outlook.com>

[DirectX backend] emits metadata for DXIL version. (#88350)

Emit named metadata "dx.version" for DXIL version.

Default to DXIL 1.0


# 178ff395 07-May-2024 S. Bharadwaj Yadavalli <Bharadwaj.Yadavalli@microsoft.com>

Revert "[DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version" (#91290)

Reverts llvm/llvm-project#90809

Need to investigate ASAN failures.


# 080978dd 06-May-2024 S. Bharadwaj Yadavalli <Bharadwaj.Yadavalli@microsoft.com>

[DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (#90809)

An earlier commit provided a way to decouple DXIL version from Shader
Model version by representing the

[DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (#90809)

An earlier commit provided a way to decouple DXIL version from Shader
Model version by representing the DXIL version as `SubArch` in the DXIL
Target Triple and adding corresponding valid DXIL Arch types.

This change constructs DXIL target triple with DXIL version that is
deduced from Shader Model version specified in the following scenarios:

1. When compilation target profile is specified:
For e.g., DXIL target triple `dxilv1.8-unknown-shader6.8-library` is
constructed when `-T lib_6_8` is specified.
2. When DXIL target triple without DXIL version is specified:
For e.g., DXIL target triple `dxilv1.8-pc-shadermodel6.8-library` is
constructed when `-mtriple=dxil-pc-shadermodel6.8-library` is specified.

Updated relevant HLSL tests that check for target triple.

Validated that Clang (`check-clang`) and LLVM (`check-llvm`) regression
tests pass.

show more ...


# 4b75fcf0 02-May-2024 YunQiang Su <syq@debian.org>

Triple::normalize: Use none as OS for XX-none-ABI (#89638)

When parsing a 3-component triple, after we determine Arch and Env, if
the middle component is "none", treat it as OS instead of Vendor.

Triple::normalize: Use none as OS for XX-none-ABI (#89638)

When parsing a 3-component triple, after we determine Arch and Env, if
the middle component is "none", treat it as OS instead of Vendor.

See:
https://discourse.llvm.org/t/rfc-baremetal-target-triple-normalization/78524
Fixes: #89582.

show more ...


Revision tags: llvmorg-18.1.5
# f352ce36 22-Apr-2024 Michal Paszkowski <michal@paszkowski.org>

[SPIR-V] Emit SPIR-V generator magic number and version (#87951)

This patch:
- Adds SPIR-V backend's registered generator magic number to the emitted
binary. The magic number consists of the gener

[SPIR-V] Emit SPIR-V generator magic number and version (#87951)

This patch:
- Adds SPIR-V backend's registered generator magic number to the emitted
binary. The magic number consists of the generator ID (43) and LLVM
major version.
- Adds SPIR-V version to the binary.
- Allows reading the expected (maximum supported) SPIR-V version from
the target triple.
- Uses VersionTuple for representing versions throughout the backend's
codebase.
- Registers v1.6 for spirv32 and spirv64 triple.

See more: https://github.com/KhronosGroup/SPIRV-Headers/commit/7d500c

show more ...


# a2face49 18-Apr-2024 S. Bharadwaj Yadavalli <Bharadwaj.Yadavalli@microsoft.com>

[DXIL] Add DXIL SubArch to correspond to version number (#89125)

This change is in line with similar notation in SPIRV.

Decoupling version numbering of DXIL and of Shader Model is intended to
e

[DXIL] Add DXIL SubArch to correspond to version number (#89125)

This change is in line with similar notation in SPIRV.

Decoupling version numbering of DXIL and of Shader Model is intended to
enable accurate specification of DXIL features that can be targeted by
different Shader Model versions.

show more ...


123