[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-05-04 Thread Yingwei Zheng via cfe-commits
dtcxzyw wrote: See also the response from the Clang Area Team: https://discourse.llvm.org/t/rfc-implement-gcc-bound-pmf-in-clang/85951/7. https://github.com/llvm/llvm-project/pull/135649 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https:/

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-05-04 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw closed https://github.com/llvm/llvm-project/pull/135649 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-22 Thread Zhihao Yuan via cfe-commits
lichray wrote: > Perhaps we could provide a builtin function that takes an object pointer and > a pointer-to-member-function and returns a devirtualized > pointer-to-member-function (or returns the original PMF if it wasn't a > pointer to a virtual function)? Unlike the GCC extension, that kin

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-22 Thread Zhihao Yuan via cfe-commits
lichray wrote: > > We used this extension to improve virtual function calling performance, > > there are simple and small virtual functions which are frequently called > > and can not be eliminated and it is in a delegation thus compiler can not > > optimize. [...] > > Can `declcall` (https:/

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-22 Thread Richard Smith via cfe-commits
zygoloid wrote: > We don't know which function is called until the object `p` is provided. See > case 2 in > https://discourse.llvm.org/t/rfc-implement-gcc-bound-pmf-in-clang/85951. Perhaps we could provide a builtin function that takes an object pointer and a pointer-to-member-function and r

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-21 Thread Sirui Mu via cfe-commits
@@ -0,0 +1,105 @@ +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals all --version 5 +// RUN: %clang_cc1 -triple x86_64-linux-gnu -Wno-pmf-conversions %s -O3 -emit-llvm -o - | FileCheck %s + +struct A { + int data; +//. +//

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-21 Thread Yingwei Zheng via cfe-commits
dtcxzyw wrote: > > IIRC this feature is orthogonal to GCC bound member functions. `declcall` > > with a virtual method just returns a pmf, and we still need to perform > > vtable lookup at the callsite: https://compiler-explorer.com/z/YrT3nPTEz > > Try `declcall(p->B::virtual_method())`?: > h

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-21 Thread via cfe-commits
rockeet wrote: > > Yes, I'm very eager for this feature, let me investigate the RFC proposal > > routine. > > I would recommend you also include details about how the extension meets our > [usual criteria](https://clang.llvm.org/get_involved.html#criteria) when you > write the RFC. Thank you

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-21 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > IIRC this feature is orthogonal to GCC bound member functions. `declcall` > with a virtual method just returns a pmf, and we still need to perform vtable > lookup at the callsite: https://compiler-explorer.com/z/YrT3nPTEz Try `declcall(p->B::virtual_method())`?:

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-21 Thread Yingwei Zheng via cfe-commits
dtcxzyw wrote: > > We used this extension to improve virtual function calling performance, > > there are simple and small virtual functions which are frequently called > > and can not be eliminated and it is in a delegation thus compiler can not > > optimize. > > [toplingdb](https://github.com

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-21 Thread Richard Smith via cfe-commits
zygoloid wrote: > Not sure if anyone has mentioned this elsewhere, but there's a significant > problem with the type of the returned function pointer: a normal function > pointer doesn't necessarily have the correct calling convention. In practice, > this is likely to cause problems on Windows

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-21 Thread Hubert Tong via cfe-commits
hubert-reinterpretcast wrote: > We used this extension to improve virtual function calling performance, there > are simple and small virtual functions which are frequently called and can > not be eliminated and it is in a delegation thus compiler can not optimize. > > [toplingdb](https://githu

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-21 Thread Eli Friedman via cfe-commits
efriedma-quic wrote: Not sure if anyone has mentioned this elsewhere, but there's a significant problem with the type of the returned function pointer: a normal function pointer doesn't necessarily have the correct calling convention. In practice, this is likely to cause problems on Windows.

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-21 Thread Aaron Ballman via cfe-commits
AaronBallman wrote: > Yes, I'm very eager for this feature, let me investigate the RFC proposal > routine. I would recommend you also include details about how the extension meets our [usual criteria](https://clang.llvm.org/get_involved.html#criteria) when you write the RFC. https://github.c

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-18 Thread via cfe-commits
rockeet wrote: > > > This patch adds support for GCC bound member functions extension: > > > https://gcc.gnu.org/onlinedocs/gcc/Bound-member-functions.html > > > Related issue: #22495 Closes #82727 > > > > > > I think this requires an RFC justifying carrying the extension. It's a > > non-conf

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-18 Thread via cfe-commits
rockeet wrote: We used this extension to improve virtual function calling performance, there are simple and small virtual functions which are frequently called and can not be eliminated and it is in a delegation thus compiler can not optimize, so we use pmf to bound the virtual function, like

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-18 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: I am going to chime in, in support of both Aaron's and Erich's position here. This does not seem like an extension we want to support. So given the objections, we need at minimum an RFC and see how that goes. Maybe during that discussion a more compelling c

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-16 Thread Erich Keane via cfe-commits
erichkeane wrote: I too don't think this is an extension that we really want. It is a pretty awful extension that does some pretty awful things to the language (and isn't implemented in a way that 'works right' in GCC anyway). Unless there is a REALLY important workload that we absolutely ne

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-16 Thread Yingwei Zheng via cfe-commits
dtcxzyw wrote: > > This patch adds support for GCC bound member functions extension: > > https://gcc.gnu.org/onlinedocs/gcc/Bound-member-functions.html > > Related issue: #22495 Closes #82727 > > I think this requires an RFC justifying carrying the extension. It's a > non-conforming extension

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-16 Thread Aaron Ballman via cfe-commits
https://github.com/AaronBallman requested changes to this pull request. > This patch adds support for GCC bound member functions extension: > https://gcc.gnu.org/onlinedocs/gcc/Bound-member-functions.html > > Related issue: #22495 Closes #82727 I think this requires an RFC justifying carrying

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-16 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw edited https://github.com/llvm/llvm-project/pull/135649 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-16 Thread Yingwei Zheng via cfe-commits
@@ -0,0 +1,54 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -fsyntax-only %s -verify dtcxzyw wrote: For reference: https://godbolt.org/z/Mf719b3en https://github.com/llvm/llvm-project/pull/135649 ___ cfe-commits

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-16 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clangir Author: Yingwei Zheng (dtcxzyw) Changes This patch adds support for GCC bound member functions extension: https://gcc.gnu.org/onlinedocs/gcc/Bound-member-functions.html Closes https://github.com/llvm/llvm-project/issues/82727 --- Patch is 29.

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-16 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang-static-analyzer-1 Author: Yingwei Zheng (dtcxzyw) Changes This patch adds support for GCC bound member functions extension: https://gcc.gnu.org/onlinedocs/gcc/Bound-member-functions.html Closes https://github.com/llvm/llvm-project/issues/82727 -

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-16 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang-codegen Author: Yingwei Zheng (dtcxzyw) Changes This patch adds support for GCC bound member functions extension: https://gcc.gnu.org/onlinedocs/gcc/Bound-member-functions.html Closes https://github.com/llvm/llvm-project/issues/82727 --- Patch

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-16 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw ready_for_review https://github.com/llvm/llvm-project/pull/135649 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-16 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 24ed3a2a46bf6aef3678a474eb4babd65baf551a Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Wed, 16 Apr 2025 00:13:34 +0800 Subject: [PATCH] [Clang] Add support for GCC bound member functions extension --

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-15 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 43c487cd6206a215542a7711b1e2b5c48e4d4ecb Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Wed, 16 Apr 2025 00:13:34 +0800 Subject: [PATCH] [Clang] Add support for GCC bound member functions extension --

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-15 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw edited https://github.com/llvm/llvm-project/pull/135649 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-15 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 445c08bcb007f157f6c66c5fabb01c2aa88b3a89 Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 15 Apr 2025 22:58:44 +0800 Subject: [PATCH 1/2] [Clang] Add support for GCC bound member functions extensio

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-15 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 6f0a3ba5852134d8bd04679438866e6f373f494a Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 15 Apr 2025 12:12:19 +0800 Subject: [PATCH 1/4] [Clang] Add support for GCC bound member functions extensio

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-15 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 445c08bcb007f157f6c66c5fabb01c2aa88b3a89 Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 15 Apr 2025 22:58:44 +0800 Subject: [PATCH] [Clang] Add support for GCC bound member functions extension --

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-15 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 6f0a3ba5852134d8bd04679438866e6f373f494a Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 15 Apr 2025 12:12:19 +0800 Subject: [PATCH 1/7] [Clang] Add support for GCC bound member functions extensio

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-15 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 6f0a3ba5852134d8bd04679438866e6f373f494a Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 15 Apr 2025 12:12:19 +0800 Subject: [PATCH 1/6] [Clang] Add support for GCC bound member functions extensio

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-15 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 6f0a3ba5852134d8bd04679438866e6f373f494a Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 15 Apr 2025 12:12:19 +0800 Subject: [PATCH 1/5] [Clang] Add support for GCC bound member functions extensio

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-14 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 6f0a3ba5852134d8bd04679438866e6f373f494a Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 15 Apr 2025 12:12:19 +0800 Subject: [PATCH 1/3] [Clang] Add support for GCC bound member functions extensio

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-14 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 6f0a3ba5852134d8bd04679438866e6f373f494a Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 15 Apr 2025 12:12:19 +0800 Subject: [PATCH 1/2] [Clang] Add support for GCC bound member functions extensio

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-14 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 6f0a3ba5852134d8bd04679438866e6f373f494a Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 15 Apr 2025 12:12:19 +0800 Subject: [PATCH] [Clang] Add support for GCC bound member functions extension --

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-14 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw updated https://github.com/llvm/llvm-project/pull/135649 >From 6795a5143129520d2db343d768507174a70da453 Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 15 Apr 2025 01:24:10 +0800 Subject: [PATCH 1/2] [Clang] Add support for GCC bound member functions extensio

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-14 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw edited https://github.com/llvm/llvm-project/pull/135649 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add support for GCC bound member functions extension (PR #135649)

2025-04-14 Thread Yingwei Zheng via cfe-commits
https://github.com/dtcxzyw created https://github.com/llvm/llvm-project/pull/135649 None >From 6795a5143129520d2db343d768507174a70da453 Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Tue, 15 Apr 2025 01:24:10 +0800 Subject: [PATCH] [Clang] Add support for GCC bound member functions extensi