[clang] [clang] [MinGW] Don't look for a GCC in path if the install base has a proper mingw sysroot (PR #76949)

2024-01-04 Thread Jacek Caban via cfe-commits
cjacek wrote: Looks mostly good to me, but I wonder if we should change testTriple as well. https://github.com/llvm/llvm-project/pull/76949 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-comm

[clang] [clang] [MinGW] Don't look for a GCC in path if the install base has a proper mingw sysroot (PR #76949)

2024-01-05 Thread Jacek Caban via cfe-commits
cjacek wrote: > Although, on a second thought, it might actually still be good to adjust it > in sync. If we're invoking Clang with `-m32` and deciding on whether to use > i386/i586/i686, and we end up using the install base as sysroot, without > inferring any triple from there, we shouldn't g

[clang] [clang] [MinGW] Don't look for a GCC in path if the install base has a proper mingw sysroot (PR #76949)

2024-01-05 Thread Jacek Caban via cfe-commits
https://github.com/cjacek approved this pull request. https://github.com/llvm/llvm-project/pull/76949 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [clang][Driver] Pass -machine argument to the linker explicitly for ARM64EC targets. (PR #86835)

2024-03-27 Thread Jacek Caban via cfe-commits
https://github.com/cjacek created https://github.com/llvm/llvm-project/pull/86835 Currently, Clang doesn't explicitly pass the `-machine` argument to the linker, relying on the linker to infer it from the input. However, MSVC's link.exe requires `-machine` to be specified explicitly for ARM64E

[clang] [clang][Driver] Pass -machine argument to the linker explicitly for ARM64EC targets. (PR #86835)

2024-03-28 Thread Jacek Caban via cfe-commits
https://github.com/cjacek updated https://github.com/llvm/llvm-project/pull/86835 >From 7a4a69076b2172e50ce305f97e0f97f67d00aa32 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Thu, 28 Mar 2024 14:58:48 +0100 Subject: [PATCH] [clang][Driver] Pass -machine argument to the linker explicitly for

[clang] [clang][Driver] Pass -machine argument to the linker explicitly for ARM64EC targets. (PR #86835)

2024-03-28 Thread Jacek Caban via cfe-commits
cjacek wrote: Sounds good to me, the new version uses `-marm64x` flag instead. Thanks. https://github.com/llvm/llvm-project/pull/86835 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Driver] Pass -machine argument to the linker explicitly for ARM64EC targets. (PR #86835)

2024-03-30 Thread Jacek Caban via cfe-commits
https://github.com/cjacek closed https://github.com/llvm/llvm-project/pull/86835 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][NFC] Fix ARM64EC clang-cl linker driver tests. (PR #87160)

2024-03-30 Thread Jacek Caban via cfe-commits
https://github.com/cjacek created https://github.com/llvm/llvm-project/pull/87160 Add '--' argument to clang-cl to avoid interpreting input files with /U option. Fix for llvm-clang-aarch64-darwin buildbot failure after #86835. >From 2808ce015e4d025164c635d75795c714babe4f05 Mon Sep 17 00:00:00

[clang] [clang][NFC] Fix ARM64EC clang-cl linker driver tests. (PR #87160)

2024-03-30 Thread Jacek Caban via cfe-commits
https://github.com/cjacek closed https://github.com/llvm/llvm-project/pull/87160 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [llvm-ar][Archive] Use getDefaultTargetTriple instead of host triple for the fallback archive format. (PR #82888)

2024-02-24 Thread Jacek Caban via cfe-commits
https://github.com/cjacek created https://github.com/llvm/llvm-project/pull/82888 As suggested by @gbreynoo in #82642. >From 3f23b5ed11ef7453c64da562ad47701cc77ee3e0 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sat, 24 Feb 2024 01:16:45 +0100 Subject: [PATCH] [llvm-ar][Archive] Use getDefa

[clang] [llvm] [llvm-ar][Archive] Use getDefaultTargetTriple instead of host triple for the fallback archive format. (PR #82888)

2024-02-26 Thread Jacek Caban via cfe-commits
https://github.com/cjacek updated https://github.com/llvm/llvm-project/pull/82888 >From 3f23b5ed11ef7453c64da562ad47701cc77ee3e0 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sat, 24 Feb 2024 01:16:45 +0100 Subject: [PATCH 1/2] [llvm-ar][Archive] Use getDefaultTargetTriple instead of host t

[clang] [llvm] [llvm-ar][Archive] Use getDefaultTargetTriple instead of host triple for the fallback archive format. (PR #82888)

2024-02-26 Thread Jacek Caban via cfe-commits
https://github.com/cjacek updated https://github.com/llvm/llvm-project/pull/82888 >From 8ea9b943089de8a6c3f3a5161a4e89eab4975c2a Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sat, 24 Feb 2024 01:16:45 +0100 Subject: [PATCH] [llvm-ar][Archive] Use getDefaultTargetTriple instead of host tripl

[clang] [llvm] [llvm-ar][Archive] Use getDefaultTargetTriple instead of host triple for the fallback archive format. (PR #82888)

2024-02-26 Thread Jacek Caban via cfe-commits
cjacek wrote: I added documentation and rebased, thanks. https://github.com/llvm/llvm-project/pull/82888 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [llvm-ar][Archive] Use getDefaultTargetTriple instead of host triple for the fallback archive format. (PR #82888)

2024-02-27 Thread Jacek Caban via cfe-commits
https://github.com/cjacek updated https://github.com/llvm/llvm-project/pull/82888 >From 24c0fae7f777daa235ba435e1ae3479d26da526b Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sat, 24 Feb 2024 01:16:45 +0100 Subject: [PATCH] [llvm-ar][Archive] Use getDefaultTargetTriple instead of host tripl

[clang] [llvm] [llvm-ar][Archive] Use getDefaultTargetTriple instead of host triple for the fallback archive format. (PR #82888)

2024-02-27 Thread Jacek Caban via cfe-commits
https://github.com/cjacek closed https://github.com/llvm/llvm-project/pull/82888 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [llvm-ar][Archive] Use getDefaultTargetTriple instead of host triple for the fallback archive format. (PR #82888)

2024-02-27 Thread Jacek Caban via cfe-commits
cjacek wrote: Thanks. I pushed without tests. https://github.com/llvm/llvm-project/pull/82888 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang] Arm64EC entry/exit thunks, consolidated. (PR #79067)

2024-01-24 Thread Jacek Caban via cfe-commits
cjacek wrote: Thanks! FWIW, I tested and reviewed the new version and it works and looks good to me. https://github.com/llvm/llvm-project/pull/79067 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinf

[clang] [Clang][AArch64] Define x86_64 macros for ARM64EC targets (PR #65420)

2023-09-10 Thread Jacek Caban via cfe-commits
cjacek wrote: LGTM https://github.com/llvm/llvm-project/pull/65420 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Disable C++14 sized deallocation by default for MinGW targets (PR #97232)

2024-07-01 Thread Jacek Caban via cfe-commits
https://github.com/cjacek approved this pull request. https://github.com/llvm/llvm-project/pull/97232 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [ARM64EC] Add support for parsing __vectorcall (PR #87725)

2024-04-08 Thread Jacek Caban via cfe-commits
https://github.com/cjacek approved this pull request. https://github.com/llvm/llvm-project/pull/87725 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [ARM64EC] Fix compilation of intrin.h in ARM64EC mode. (PR #87717)

2024-04-08 Thread Jacek Caban via cfe-commits
https://github.com/cjacek approved this pull request. > (If we actually need some of these intrinsics in ARM64EC mode, we can > revisit later.) FWIW, most of them are provided by MSVC/Windows SDK via `softintrin.h` (included from `intrin.h`) as functions, not actual intrisics. https://github

[clang] [ARM64EC] Fix arm_neon.h on ARM64EC. (PR #88572)

2024-04-15 Thread Jacek Caban via cfe-commits
https://github.com/cjacek approved this pull request. https://github.com/llvm/llvm-project/pull/88572 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [ARM64EC] Add softintrin.lib as an implicit dependency to object files. (PR #89171)

2024-04-18 Thread Jacek Caban via cfe-commits
https://github.com/cjacek approved this pull request. LGTM (and CI failure doesn't seem related) https://github.com/llvm/llvm-project/pull/89171 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe

[clang] [clang][ARM64EC] Add support for hybrid_patchable attribute. (PR #99478)

2024-07-27 Thread Jacek Caban via cfe-commits
https://github.com/cjacek closed https://github.com/llvm/llvm-project/pull/99478 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][ARM64EC] Add support for hybrid_patchable attribute. (PR #99478)

2024-07-27 Thread Jacek Caban via cfe-commits
cjacek wrote: /cherry-pick ea98dc8b8f508b8393651992830e5e51d3876728 https://github.com/llvm/llvm-project/pull/99478 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][ARM64EC] Add support for hybrid_patchable attribute. (PR #99478)

2024-07-27 Thread Jacek Caban via cfe-commits
cjacek wrote: Thanks. I created #100872 for dllexport fix. https://github.com/llvm/llvm-project/pull/99478 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][ARM64EC] Add support for hybrid_patchable attribute. (PR #99478)

2024-07-27 Thread Jacek Caban via cfe-commits
https://github.com/cjacek milestoned https://github.com/llvm/llvm-project/pull/99478 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][ARM64EC] Add support for hybrid_patchable attribute. (PR #99478)

2024-07-27 Thread Jacek Caban via cfe-commits
cjacek wrote: /cherry-pick ea98dc8b8f508b8393651992830e5e51d3876728 https://github.com/llvm/llvm-project/pull/99478 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [clang][ARM64EC] Add support for hybrid_patchable attribute. (PR #99478)

2024-07-18 Thread Jacek Caban via cfe-commits
https://github.com/cjacek created https://github.com/llvm/llvm-project/pull/99478 This adds support for `hybrid_patchable` on top of LLVM part from #92965 (so it depends on #92965 and this PR is meant only for the second commit). For the most part, it just adds LLVM attribute whenever C/C++ at

[clang] [clang][ARM64EC] Add support for hybrid_patchable attribute. (PR #99478)

2024-07-19 Thread Jacek Caban via cfe-commits
https://github.com/cjacek updated https://github.com/llvm/llvm-project/pull/99478 >From 31584aa0b95dd88df8518bf334fb3e24086b1bdb Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Fri, 3 May 2024 00:27:20 +0200 Subject: [PATCH] [clang][ARM64EC] Add support for hybrid_patchable attribute. --- cl

[clang] [clang][ARM64EC] Add support for hybrid_patchable attribute. (PR #99478)

2024-07-19 Thread Jacek Caban via cfe-commits
@@ -4027,6 +4030,12 @@ def SelectAny : InheritableAttr { let SimpleHandler = 1; } +def HybridPatchable : DeclOrTypeAttr, TargetSpecificAttr { + let Spellings = [Declspec<"hybrid_patchable">, GCC<"hybrid_patchable">]; cjacek wrote: Yes, I was thinking mostl

[clang] [clang][ARM64EC] Add support for hybrid_patchable attribute. (PR #99478)

2024-07-19 Thread Jacek Caban via cfe-commits
@@ -477,6 +477,9 @@ def TargetELF : TargetSpec { def TargetELFOrMachO : TargetSpec { let ObjectFormats = ["ELF", "MachO"]; } +def TargetArm64EC : TargetSpec { cjacek wrote: I renamed it to `TargetWindowsArm64EC` in the new version. https://github.com/llvm/l

[clang] [clang][ARM64EC] Add support for hybrid_patchable attribute. (PR #99478)

2024-07-19 Thread Jacek Caban via cfe-commits
@@ -4027,6 +4030,12 @@ def SelectAny : InheritableAttr { let SimpleHandler = 1; } +def HybridPatchable : DeclOrTypeAttr, TargetSpecificAttr { cjacek wrote: Right, I don't remember why I did it like that. I changed it in the new version. https://github.com/

[clang] [clang][ARM64EC] Add support for hybrid_patchable attribute. (PR #99478)

2024-07-19 Thread Jacek Caban via cfe-commits
@@ -6886,6 +6886,13 @@ static void checkAttributesAfterMerging(Sema &S, NamedDecl &ND) { } } + if (HybridPatchableAttr *Attr = ND.getAttr()) { +if (!ND.isExternallyVisible()) { + S.Diag(Attr->getLocation(), + diag::warn_attribute_hybrid_patchable_n

[clang] [clang] [NFC] Split checkAttributesAfterMerging() to multiple functions (PR #115464)

2024-11-12 Thread Jacek Caban via cfe-commits
https://github.com/cjacek approved this pull request. https://github.com/llvm/llvm-project/pull/115464 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [lld] [Clang][MinGW] Pass --functionpadmin to the linker when -fms-hotpatch is used (PR #116512)

2024-11-18 Thread Jacek Caban via cfe-commits
https://github.com/cjacek closed https://github.com/llvm/llvm-project/pull/116512 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [lld] [Clang][MinGW] Pass --functionpadmin to the linker when -fms-hotpatch is used (PR #116512)

2024-11-16 Thread Jacek Caban via cfe-commits
cjacek wrote: GCC offers the `ms_hook_prologue` function attribute as an alternative. It provides similar guarantees: it inserts a hardcoded prologue and adds padding. However, it applies on a per-function basis, so there isn’t an easy way to make the entire module hotpatchable. In GCC, the pa

[clang] [lld] [Clang][MinGW] Pass --functionpadmin to the linker when -fms-hotpatch is used (PR #116512)

2024-11-16 Thread Jacek Caban via cfe-commits
https://github.com/cjacek created https://github.com/llvm/llvm-project/pull/116512 None >From c13f631c8074c85242fd1f639fd09aae78fede6a Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sat, 16 Nov 2024 14:16:58 +0100 Subject: [PATCH 1/2] [LLD][MinGW] Add support for --functionpadmin option Thi

[clang] [lld] [Clang][MinGW] Pass --functionpadmin to the linker when -fms-hotpatch is used (PR #116512)

2024-11-16 Thread Jacek Caban via cfe-commits
cjacek wrote: This PR depends on #116511. It updates `-fms-hotpatch` to behave similarly during linking as it does in MSVC mode. However, one limitation remains: object files are marked as hotpatchable through CodeView data, so this is only effective when `-gcodeview` is enabled. This is simi

[libunwind] [libunwind] [SEH] Implement parsing of ARM pdata/xdata (PR #137950)

2025-05-04 Thread Jacek Caban via cfe-commits
https://github.com/cjacek approved this pull request. LGTM https://github.com/llvm/llvm-project/pull/137950 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libunwind] [libunwind] [SEH] Set NonVolatileRegisters before calling a personality function (PR #137951)

2025-05-04 Thread Jacek Caban via cfe-commits
https://github.com/cjacek approved this pull request. Looks reasonable to me overall. https://github.com/llvm/llvm-project/pull/137951 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libunwind] [libunwind] [SEH] Set NonVolatileRegisters before calling a personality function (PR #137951)

2025-05-04 Thread Jacek Caban via cfe-commits
@@ -212,6 +238,21 @@ __libunwind_seh_personality(int version, _Unwind_Action state, ms_exc.ExceptionInformation[2] = state; DISPATCHER_CONTEXT *disp_ctx = __unw_seh_get_disp_ctx((unw_cursor_t *)context); +#if defined(__aarch64__) + LOCAL_DISPATCHER_CONTEXT_NONVOLREG

[libunwind] [libunwind] [SEH] Set NonVolatileRegisters before calling a personality function (PR #137951)

2025-05-04 Thread Jacek Caban via cfe-commits
https://github.com/cjacek edited https://github.com/llvm/llvm-project/pull/137951 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libunwind] [libunwind] [SEH] Implement parsing of aarch64 pdata/xdata (PR #137949)

2025-05-01 Thread Jacek Caban via cfe-commits
@@ -2018,6 +2018,52 @@ bool UnwindCursor::getInfoFromSEH(pint_t pc) { _info.handler = 0; } } +#elif defined(_LIBUNWIND_TARGET_AARCH64) + if (unwindEntry->Flag != 0) { // Packed unwind info +_info.end_ip = _info.start_ip + unwindEntry->FunctionLength * 4; +/

[libunwind] [libunwind] Add initial ARM64EC support (PR #138583)

2025-05-05 Thread Jacek Caban via cfe-commits
https://github.com/cjacek created https://github.com/llvm/llvm-project/pull/138583 ARM64EC defines `__x86_64__`, which is sufficient to make most C/C++ code behave correctly. To preserve an external ABI compatible with x86_64, this patch uses the x86_64 context layout and implements `unw_getco

[libunwind] [libunwind] Add initial ARM64EC support (PR #138583)

2025-05-05 Thread Jacek Caban via cfe-commits
cjacek wrote: This is enough to pass most tests, except for forced unwind. I suspect that test requires a similar change to #137949. ARM64EC modules can contain SEH in both x86_64 format (for x86_64 code, accessible through PE headers, this should already work) and ARM format (for ARM64 code,

[libunwind] [libunwind] [SEH] Set NonVolatileRegisters before calling a personality function (PR #137951)

2025-05-01 Thread Jacek Caban via cfe-commits
@@ -212,6 +212,11 @@ __libunwind_seh_personality(int version, _Unwind_Action state, ms_exc.ExceptionInformation[2] = state; DISPATCHER_CONTEXT *disp_ctx = __unw_seh_get_disp_ctx((unw_cursor_t *)context); +#if defined(__aarch64__) + disp_ctx->NonVolatileRegisters = (

[libunwind] [libunwind] [SEH] Implement parsing of ARM pdata/xdata (PR #137950)

2025-05-02 Thread Jacek Caban via cfe-commits
Martin =?utf-8?q?Storsjö?= Message-ID: In-Reply-To: @@ -2064,6 +2077,51 @@ bool UnwindCursor::getInfoFromSEH(pint_t pc) { } } } +#elif defined(_LIBUNWIND_TARGET_ARM) cjacek wrote: Given how similar the code is to the aarch64 version, it's a bit

[libunwind] [libunwind] [SEH] Set NonVolatileRegisters before calling a personality function (PR #137951)

2025-05-02 Thread Jacek Caban via cfe-commits
@@ -212,6 +212,11 @@ __libunwind_seh_personality(int version, _Unwind_Action state, ms_exc.ExceptionInformation[2] = state; DISPATCHER_CONTEXT *disp_ctx = __unw_seh_get_disp_ctx((unw_cursor_t *)context); +#if defined(__aarch64__) + disp_ctx->NonVolatileRegisters = (

[libunwind] [libunwind] [SEH] Implement parsing of aarch64 pdata/xdata (PR #137949)

2025-05-02 Thread Jacek Caban via cfe-commits
https://github.com/cjacek approved this pull request. LGTM https://github.com/llvm/llvm-project/pull/137949 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[libunwind] [libunwind] Add initial ARM64EC support (PR #138583)

2025-05-07 Thread Jacek Caban via cfe-commits
https://github.com/cjacek updated https://github.com/llvm/llvm-project/pull/138583 >From c6c8a12bf33127ba325b526b70eff6fef7e7ee00 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sat, 3 May 2025 00:24:35 +0200 Subject: [PATCH 1/2] [libunwind] Add initial ARM64EC support ARM64EC defines __x86_6

[libunwind] [libunwind] Add initial ARM64EC support (PR #138583)

2025-05-07 Thread Jacek Caban via cfe-commits
@@ -1181,7 +1228,9 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext) #endif +#ifndef __arm64ec__ cjacek wrote: That's because the alias is more complex, it needs to account for mangled symbol names and requires an additional unmangled weak anti-dependency. Id

[libunwind] [libunwind] Add initial ARM64EC support (PR #138583)

2025-05-13 Thread Jacek Caban via cfe-commits
https://github.com/cjacek closed https://github.com/llvm/llvm-project/pull/138583 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits