Author: Jacek Caban
Date: 2025-06-13T23:29:03+02:00
New Revision: 8229628cf1812e126ff72ee9f4b5f267db4c91da
URL:
https://github.com/llvm/llvm-project/commit/8229628cf1812e126ff72ee9f4b5f267db4c91da
DIFF:
https://github.com/llvm/llvm-project/commit/8229628cf1812e126ff72ee9f4b5f267db4c91da.diff
L
cjacek wrote:
Merged, thanks!
https://github.com/llvm/llvm-project/pull/142970
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/cjacek closed
https://github.com/llvm/llvm-project/pull/142970
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/cjacek updated
https://github.com/llvm/llvm-project/pull/142970
>From 0e2aaa573e4de05c127c67f8c17ca3715d7b04c2 Mon Sep 17 00:00:00 2001
From: Jacek Caban
Date: Wed, 4 Jun 2025 15:58:59 +0200
Subject: [PATCH 1/3] [CodeGen][COFF] Always emit CodeView compiler info on
Windows t
https://github.com/cjacek updated
https://github.com/llvm/llvm-project/pull/142970
>From 0e2aaa573e4de05c127c67f8c17ca3715d7b04c2 Mon Sep 17 00:00:00 2001
From: Jacek Caban
Date: Wed, 4 Jun 2025 15:58:59 +0200
Subject: [PATCH 1/2] [CodeGen][COFF] Always emit CodeView compiler info on
Windows t
cjacek wrote:
The new version avoids creating unnecessary labels (and most of
`DebugHandlerBase`) by setting `Asm` to null. I also added handling for unknown
architecture types in `mapArchToCVCPUType`, which is triggered when running
some of the Generic tests on Windows. Additionally, I tweake
https://github.com/cjacek updated
https://github.com/llvm/llvm-project/pull/142970
>From 0e2aaa573e4de05c127c67f8c17ca3715d7b04c2 Mon Sep 17 00:00:00 2001
From: Jacek Caban
Date: Wed, 4 Jun 2025 15:58:59 +0200
Subject: [PATCH] [CodeGen][COFF] Always emit CodeView compiler info on Windows
targe
cjacek wrote:
> Hmm, so a "regular" mingw object file would end up having both DWARF (if
> building with -g) and codeview (for the compiler info)?
Yes.
> Does this cause confusion when linking (probably not, as it would either
> retain the DWARF or the codeview parts, depending on linker argu
@@ -16,7 +16,7 @@
; argc is the first debug location.
; ASM: .Ldebug_loc1:
; ASM-NEXT: .quad .Lfunc_begin0-.Lfunc_begin0
-; ASM-NEXT: .quad [[argc_range_end]]-.Lfunc_begin0
+; ASM-NEXT: .quad .Ltmp3-.Lfunc_begin0
cjacek wrote:
The test emits DWARF debug
https://github.com/cjacek updated
https://github.com/llvm/llvm-project/pull/142970
>From 4b7ecac7f4efcd34bb280c49e8b85b5a36b594c1 Mon Sep 17 00:00:00 2001
From: Jacek Caban
Date: Wed, 4 Jun 2025 15:58:59 +0200
Subject: [PATCH 1/4] [CodeGen][COFF] Always emit CodeView compiler info on
Windows t
@@ -560,11 +560,12 @@ bool AsmPrinter::doInitialization(Module &M) {
}
if (MAI->doesSupportDebugInformation()) {
-bool EmitCodeView = M.getCodeViewFlag();
-if (EmitCodeView &&
-(TM.getTargetTriple().isOSWindows() || TM.getTargetTriple().isUEFI()))
+// O
https://github.com/cjacek updated
https://github.com/llvm/llvm-project/pull/142970
>From 4b7ecac7f4efcd34bb280c49e8b85b5a36b594c1 Mon Sep 17 00:00:00 2001
From: Jacek Caban
Date: Wed, 4 Jun 2025 15:58:59 +0200
Subject: [PATCH 1/2] [CodeGen][COFF] Always emit CodeView compiler info on
Windows t
@@ -560,11 +560,12 @@ bool AsmPrinter::doInitialization(Module &M) {
}
if (MAI->doesSupportDebugInformation()) {
-bool EmitCodeView = M.getCodeViewFlag();
-if (EmitCodeView &&
-(TM.getTargetTriple().isOSWindows() || TM.getTargetTriple().isUEFI()))
+// O
@@ -613,19 +613,30 @@ static SourceLanguage MapDWLangToCVLang(unsigned DWLang) {
void CodeViewDebug::beginModule(Module *M) {
// If module doesn't have named metadata anchors or COFF debug section
// is not available, skip any debug info related stuff.
- if (!Asm->hasDebug
@@ -560,11 +560,12 @@ bool AsmPrinter::doInitialization(Module &M) {
}
if (MAI->doesSupportDebugInformation()) {
-bool EmitCodeView = M.getCodeViewFlag();
-if (EmitCodeView &&
-(TM.getTargetTriple().isOSWindows() || TM.getTargetTriple().isUEFI()))
+// O
https://github.com/cjacek updated
https://github.com/llvm/llvm-project/pull/142970
>From 4b7ecac7f4efcd34bb280c49e8b85b5a36b594c1 Mon Sep 17 00:00:00 2001
From: Jacek Caban
Date: Wed, 4 Jun 2025 15:58:59 +0200
Subject: [PATCH 1/3] [CodeGen][COFF] Always emit CodeView compiler info on
Windows t
cjacek wrote:
The new version always emits `S_OBJNAME` and `S_COMPILE3` on Windows targets,
regardless of debug info settings. It no longer depends on #142969. On the
Clang side, it emits only minimal compiler info in IR when full debug info is
not enabled.
I wasn't sure whether to enable thi
https://github.com/cjacek edited
https://github.com/llvm/llvm-project/pull/142970
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/cjacek edited
https://github.com/llvm/llvm-project/pull/142970
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/cjacek updated
https://github.com/llvm/llvm-project/pull/142970
>From 4b7ecac7f4efcd34bb280c49e8b85b5a36b594c1 Mon Sep 17 00:00:00 2001
From: Jacek Caban
Date: Wed, 4 Jun 2025 15:58:59 +0200
Subject: [PATCH] [CodeGen][COFF] Always emit CodeView compiler info on Windows
targe
cjacek wrote:
I think we could emit this unconditionally, but I wasn’t entirely sure, so I
went with a less invasive change for now. I'll prepare a new version.
In this version, Clang emits a full debug IR, but if we're going to do this by
default, it probably makes more sense to emit just a m
cjacek wrote:
Depends on #142969.
https://github.com/llvm/llvm-project/pull/142970
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/cjacek created
https://github.com/llvm/llvm-project/pull/142970
MSVC always emits minimal CodeView metadata containing compiler information,
even when debug info is otherwise disabled. While this data is typically not
meaningful on its own, the linker may use it to detect w
cjacek wrote:
The main motivation is to enable writing llc-based tests for the emitted
CodeView data
https://github.com/llvm/llvm-project/pull/142969
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listin
https://github.com/cjacek created
https://github.com/llvm/llvm-project/pull/142969
None
>From 108b56e9d0fbd522d3ee458405dab43a01b5ebd5 Mon Sep 17 00:00:00 2001
From: Jacek Caban
Date: Wed, 4 Jun 2025 13:13:06 +0200
Subject: [PATCH] [CodeGen][clang] Use module metadata to mark hotpatchable
mod
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
@@ -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
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
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,
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
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
@@ -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
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
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
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
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
@@ -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 = (
@@ -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 = (
@@ -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;
+/
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
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
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
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
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
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
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
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
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
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
@@ -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
@@ -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/
@@ -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
@@ -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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
78 matches
Mail list logo