[clang] [clang] Merge gtest binaries into AllClangUnitTests (PR #134196)

2025-05-20 Thread Tom Honermann via cfe-commits
tahonermann wrote: I ended up spending a lot of time barking down the wrong rabbit hole due to these changes. @rnk, please see https://github.com/llvm/llvm-project/issues/140799. https://github.com/llvm/llvm-project/pull/134196 ___ cfe-commits mailin

[clang] [cmake] Refactor clang unittest cmake (PR #133545)

2025-05-20 Thread Tom Honermann via cfe-commits
tahonermann wrote: I ended up spending a lot of time barking down the wrong rabbit hole due to these changes. @rnk, please see https://github.com/llvm/llvm-project/issues/140799. https://github.com/llvm/llvm-project/pull/133545 ___ cfe-commits mailin

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
@@ -12926,6 +12929,10 @@ bool ASTContext::DeclMustBeEmitted(const Decl *D) { // FIXME: Functions declared with SYCL_EXTERNAL are required during // device compilation. tahonermann wrote: ```suggestion ``` https://github.com/llvm/llvm-project/pull/140

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
@@ -1545,6 +1550,18 @@ def SYCLKernel : InheritableAttr { let Documentation = [SYCLKernelDocs]; } +def GlobalStorageNonLocalVar : SubsetSubjecthasGlobalStorage() && + !S->isLocalVarDeclOrParm()}], +

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
@@ -1545,6 +1550,18 @@ def SYCLKernel : InheritableAttr { let Documentation = [SYCLKernelDocs]; } +def GlobalStorageNonLocalVar : SubsetSubjecthasGlobalStorage() && + !S->isLocalVarDeclOrParm()}], +

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
@@ -408,10 +408,14 @@ class SubjectList subjects, SubjectDiag diag = WarnDiag, string CustomDiag = customDiag; } -class LangOpt { +class LangOpt { // The language option to test; ignored when custom code is supplied. string Name = name; + // If set to 1, the attrib

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,52 @@ +// RUN: %clang_cc1 -fsycl-is-device -fsyntax-only -verify -DSYCL %s +// RUN: %clang_cc1 -fsycl-is-host -fsyntax-only -verify -DHOST %s tahonermann wrote: Since SYCL applies to both host and device, let's differentiate by "host" and "device" (wi

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
@@ -12909,6 +12909,9 @@ bool ASTContext::DeclMustBeEmitted(const Decl *D) { if (D->hasAttr()) return false; + if (LangOpts.SYCLIsDevice && !D->hasAttr()) +return false; tahonermann wrote: This will also need to check for the new `SYCLExternalAttr`

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,52 @@ +// RUN: %clang_cc1 -fsycl-is-device -fsyntax-only -verify -DSYCL %s +// RUN: %clang_cc1 -fsycl-is-host -fsyntax-only -verify -DHOST %s +// RUN: %clang_cc1 -verify %s + +// Semantic tests for sycl_external attribute + +#ifdef SYCL + +__attribute__((sycl_external(3

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann requested changes to this pull request. Thanks for working on this @schittir! I completed an initial pass of all of the code, but still need to look more closely at the documentation updates. https://github.com/llvm/llvm-project/pull/140282 ___

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
@@ -100,11 +100,10 @@ int main() { // Verify that SYCL kernel caller functions are emitted for each device target. // -// FIXME: The following set of matches are used to skip over the declaration of -// main(). main() shouldn't be emitted in device code, but that pruning isn't

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
@@ -12926,6 +12929,10 @@ bool ASTContext::DeclMustBeEmitted(const Decl *D) { // FIXME: Functions declared with SYCL_EXTERNAL are required during // device compilation. +// Functions definitions with sycl_external attribute are required during +// device compila

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
@@ -12746,6 +12746,11 @@ def err_sycl_special_type_num_init_method : Error< "types with 'sycl_special_class' attribute must have one and only one '__init' " "method defined">; +//SYCL external attribute diagnostics +def err_sycl_attribute_internal_decl +: Error<"%0 at

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
@@ -62,6 +62,7 @@ class SemaSYCL : public SemaBase { ParsedType ParsedTy); void handleKernelAttr(Decl *D, const ParsedAttr &AL); + void handleSYCLExternalAttr(Decl *D, const ParsedAttr &AL); tahonermann wrote: Since t

[clang] Add sycl_external attribute (PR #140282)

2025-05-16 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann edited https://github.com/llvm/llvm-project/pull/140282 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-14 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,155 @@ +// RUN: %clang_cc1 -verify -fsyntax-only -std=c++20 -Wconversion %s + +void c8(char8_t); +void c16(char16_t); +void c32(char32_t); + +void test(char8_t u8, char16_t u16, char32_t u32) { +c8(u8); +c8(u16); // expected-warning {{implicit conversion from 'c

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-13 Thread Tom Honermann via cfe-commits
@@ -11810,6 +11811,46 @@ static void DiagnoseIntInBoolContext(Sema &S, Expr *E) { } } +static void DiagnoseMixedUnicodeImplicitConversion(Sema &S, const Type *Source, + const Type *Target, Expr *E, +

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-13 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,155 @@ +// RUN: %clang_cc1 -verify -fsyntax-only -std=c++20 -Wconversion %s + +void c8(char8_t); +void c16(char16_t); +void c32(char32_t); + +void test(char8_t u8, char16_t u16, char32_t u32) { +c8(u8); +c8(u16); // expected-warning {{implicit conversion from 'c

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-13 Thread Tom Honermann via cfe-commits
@@ -1567,15 +1568,81 @@ void Sema::checkEnumArithmeticConversions(Expr *LHS, Expr *RHS, } } +static void CheckUnicodeArithmeticConversions(Sema &SemaRef, Expr *LHS, + Expr *RHS, SourceLocation Loc, +

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-13 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann approved this pull request. Thanks @cor3ntin, this looks good to me! https://github.com/llvm/llvm-project/pull/138708 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-13 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann edited https://github.com/llvm/llvm-project/pull/138708 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-08 Thread Tom Honermann via cfe-commits
@@ -1567,15 +1568,81 @@ void Sema::checkEnumArithmeticConversions(Expr *LHS, Expr *RHS, } } +static void CheckUnicodeArithmeticConversions(Sema &SemaRef, Expr *LHS, + Expr *RHS, SourceLocation Loc, +

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-08 Thread Tom Honermann via cfe-commits
@@ -11810,6 +11811,46 @@ static void DiagnoseIntInBoolContext(Sema &S, Expr *E) { } } +static void DiagnoseMixedUnicodeImplicitConversion(Sema &S, const Type *Source, + const Type *Target, Expr *E, +

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-08 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,155 @@ +// RUN: %clang_cc1 -verify -fsyntax-only -std=c++20 -Wconversion %s + +void c8(char8_t); +void c16(char16_t); +void c32(char32_t); + +void test(char8_t u8, char16_t u16, char32_t u32) { +c8(u8); +c8(u16); // expected-warning {{implicit conversion from 'c

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-08 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann requested changes to this pull request. I like this, thanks for working on it! I added a number of mostly minor comments. I would like to see the warnings extended to `char` and `wchar_t` and doing that in a later change is fine. Some of my comments are intended t

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-08 Thread Tom Honermann via cfe-commits
@@ -11810,6 +11811,46 @@ static void DiagnoseIntInBoolContext(Sema &S, Expr *E) { } } +static void DiagnoseMixedUnicodeImplicitConversion(Sema &S, const Type *Source, + const Type *Target, Expr *E, +

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-08 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,155 @@ +// RUN: %clang_cc1 -verify -fsyntax-only -std=c++20 -Wconversion %s + +void c8(char8_t); +void c16(char16_t); +void c32(char32_t); + +void test(char8_t u8, char16_t u16, char32_t u32) { +c8(u8); +c8(u16); // expected-warning {{implicit conversion from 'c

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-08 Thread Tom Honermann via cfe-commits
@@ -4357,6 +4357,29 @@ def warn_address_of_reference_bool_conversion : Warning< "code; pointer may be assumed to always convert to true">, InGroup; +def warn_impcast_unicode_char_type +: Warning<"implicit conversion from %0 to %1 may change the meaning of the " +

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-08 Thread Tom Honermann via cfe-commits
@@ -2190,3 +2192,30 @@ static bool FormatTemplateTypeDiff(ASTContext &Context, QualType FromType, TD.DiffTemplate(); return TD.Emit(); } + +std::string clang::FormatUTFCodeUnitAsCodepoint(unsigned Value, QualType T) { + auto IsSingleCodeUnitCP = [](unsigned Value, QualTyp

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-08 Thread Tom Honermann via cfe-commits
@@ -111,6 +111,7 @@ def EnumConversion : DiagGroup<"enum-conversion", ImplicitEnumEnumCast, EnumFloatConversion, EnumCompareConditional]>; +def ImplicitUnicodeConversion : DiagGroup<

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-08 Thread Tom Honermann via cfe-commits
@@ -7719,6 +7742,11 @@ def warn_comparison_of_mixed_enum_types_switch : Warning< "%diff{ ($ and $)|}0,1">, InGroup; +def warn_arith_conv_mixed__unicode_types tahonermann wrote: ```suggestion def warn_arith_conv_mixed_unicode_types ``` https://github.com/

[clang] [libcxx] [llvm] [Clang] Add warnings when mixing different charN_t types (PR #138708)

2025-05-08 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann edited https://github.com/llvm/llvm-project/pull/138708 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-18 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann closed https://github.com/llvm/llvm-project/pull/133030 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-16 Thread Tom Honermann via cfe-commits
tahonermann wrote: > I can't find our conversation again and firefox crashed before I could > submit, but PLEASE make sure the mangling tests cover the examples we put > together. I absolutely will. > ALSO, we don't always mangle the types of lambdas, we sometimes do $_0 and > $_1 (source of

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-16 Thread Tom Honermann via cfe-commits
@@ -14794,9 +14803,36 @@ void ASTContext::getFunctionFeatureMap(llvm::StringMap &FeatureMap, } } -static SYCLKernelInfo BuildSYCLKernelInfo(CanQualType KernelNameType, +static SYCLKernelInfo BuildSYCLKernelInfo(ASTContext &Context, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-16 Thread Tom Honermann via cfe-commits
@@ -732,6 +732,16 @@ CodeGenTypes::arrangeBuiltinFunctionDeclaration(CanQualType resultType, RequiredArgs::All); } +const CGFunctionInfo & +CodeGenTypes::arrangeSYCLKernelCallerDeclaration(QualType resultType, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-16 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann updated https://github.com/llvm/llvm-project/pull/133030 >From 606c9f3bdd1bed9631002d2bd51ef2fc3475ecfe Mon Sep 17 00:00:00 2001 From: Elizabeth Andrews Date: Tue, 25 Mar 2025 09:31:11 -0700 Subject: [PATCH 1/6] [SYCL] Basic code generation for SYCL kernel caller

[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-16 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann closed https://github.com/llvm/llvm-project/pull/135861 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-15 Thread Tom Honermann via cfe-commits
@@ -199,15 +199,17 @@ static void appendParameterTypes(const CodeGenTypes &CGT, prefix.size()); } +using SmallExtParameterInfoList = tahonermann wrote: Done; I dropped the `Small` prefix. With regard to the in-place size of 16,

[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-15 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann updated https://github.com/llvm/llvm-project/pull/135861 >From f413b7eeb673812fb66b1465c885a34fe21d1fc6 Mon Sep 17 00:00:00 2001 From: Tom Honermann Date: Tue, 15 Apr 2025 14:25:06 -0700 Subject: [PATCH 1/2] [NFC][Clang] Introduce type aliases to replace use of a

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-15 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann updated https://github.com/llvm/llvm-project/pull/133030 >From 2c99027df798c04d252ff8f66853888db89356f1 Mon Sep 17 00:00:00 2001 From: Elizabeth Andrews Date: Tue, 25 Mar 2025 09:31:11 -0700 Subject: [PATCH 1/5] [SYCL] Basic code generation for SYCL kernel caller

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-15 Thread Tom Honermann via cfe-commits
@@ -732,6 +732,16 @@ CodeGenTypes::arrangeBuiltinFunctionDeclaration(CanQualType resultType, RequiredArgs::All); } +const CGFunctionInfo & +CodeGenTypes::arrangeSYCLKernelCallerDeclaration(QualType resultType, +

[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-15 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann created https://github.com/llvm/llvm-project/pull/135861 `CGCall.cpp` declares several functions with a return type that is an explicitly spelled out specialization of `SmallVector`. Previously, `auto` was used in several places to avoid repeating the long type n

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-15 Thread Tom Honermann via cfe-commits
@@ -732,6 +732,16 @@ CodeGenTypes::arrangeBuiltinFunctionDeclaration(CanQualType resultType, RequiredArgs::All); } +const CGFunctionInfo & +CodeGenTypes::arrangeSYCLKernelCallerDeclaration(QualType resultType, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-14 Thread Tom Honermann via cfe-commits
@@ -732,6 +732,16 @@ CodeGenTypes::arrangeBuiltinFunctionDeclaration(CanQualType resultType, RequiredArgs::All); } +const CGFunctionInfo & +CodeGenTypes::arrangeSYCLKernelCallerDeclaration(QualType resultType, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-14 Thread Tom Honermann via cfe-commits
@@ -14794,9 +14803,36 @@ void ASTContext::getFunctionFeatureMap(llvm::StringMap &FeatureMap, } } -static SYCLKernelInfo BuildSYCLKernelInfo(CanQualType KernelNameType, +static SYCLKernelInfo BuildSYCLKernelInfo(ASTContext &Context, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-14 Thread Tom Honermann via cfe-commits
@@ -3303,6 +3303,27 @@ void CodeGenModule::EmitDeferred() { CurDeclsToEmit.swap(DeferredDeclsToEmit); for (GlobalDecl &D : CurDeclsToEmit) { +// Functions declared with the sycl_kernel_entry_point attribute are +// emitted normally during host compilation. During d

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-14 Thread Tom Honermann via cfe-commits
@@ -732,6 +732,16 @@ CodeGenTypes::arrangeBuiltinFunctionDeclaration(CanQualType resultType, RequiredArgs::All); } +const CGFunctionInfo & +CodeGenTypes::arrangeSYCLKernelCallerDeclaration(QualType resultType, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-14 Thread Tom Honermann via cfe-commits
@@ -14794,9 +14803,36 @@ void ASTContext::getFunctionFeatureMap(llvm::StringMap &FeatureMap, } } -static SYCLKernelInfo BuildSYCLKernelInfo(CanQualType KernelNameType, +static SYCLKernelInfo BuildSYCLKernelInfo(ASTContext &Context, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-10 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,73 @@ +//===- CodeGenSYCL.cpp - Code for SYCL kernel generation --===// +// +// 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: Apa

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-10 Thread Tom Honermann via cfe-commits
@@ -3303,6 +3303,27 @@ void CodeGenModule::EmitDeferred() { CurDeclsToEmit.swap(DeferredDeclsToEmit); for (GlobalDecl &D : CurDeclsToEmit) { +// Functions declared with the sycl_kernel_entry_point attribute are +// emitted normally during host compilation. During d

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-10 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann edited https://github.com/llvm/llvm-project/pull/133030 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-10 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,186 @@ +// RUN: %clang_cc1 -fsycl-is-host -emit-llvm -triple x86_64-unknown-linux-gnu %s -o - | FileCheck --check-prefixes=CHECK-HOST,CHECK-HOST-LINUX %s +// RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple amdgcn-amd-amdhsa %s

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-10 Thread Tom Honermann via cfe-commits
@@ -14794,9 +14803,36 @@ void ASTContext::getFunctionFeatureMap(llvm::StringMap &FeatureMap, } } -static SYCLKernelInfo BuildSYCLKernelInfo(CanQualType KernelNameType, +static SYCLKernelInfo BuildSYCLKernelInfo(ASTContext &Context, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-09 Thread Tom Honermann via cfe-commits
tahonermann wrote: @erichkeane, in case you missed the previous notice, this is ready for your continued review. https://github.com/llvm/llvm-project/pull/133030 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/ma

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-08 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann commented: Thank you for the review @erichkeane! I believe I have addressed or responded to each of your comments. https://github.com/llvm/llvm-project/pull/133030 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-08 Thread Tom Honermann via cfe-commits
@@ -14794,9 +14803,36 @@ void ASTContext::getFunctionFeatureMap(llvm::StringMap &FeatureMap, } } -static SYCLKernelInfo BuildSYCLKernelInfo(CanQualType KernelNameType, +static SYCLKernelInfo BuildSYCLKernelInfo(ASTContext &Context, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-08 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,186 @@ +// RUN: %clang_cc1 -fsycl-is-host -emit-llvm -triple x86_64-unknown-linux-gnu %s -o - | FileCheck --check-prefixes=CHECK-HOST,CHECK-HOST-LINUX %s +// RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple amdgcn-amd-amdhsa %s

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-07 Thread Tom Honermann via cfe-commits
@@ -12816,6 +12816,15 @@ bool ASTContext::DeclMustBeEmitted(const Decl *D) { if (!FD->doesThisDeclarationHaveABody()) return FD->doesDeclarationForceExternallyVisibleDefinition(); +// Function definitions with the sycl_kernel_entry_point attribute are +// req

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-07 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann updated https://github.com/llvm/llvm-project/pull/133030 >From 2c99027df798c04d252ff8f66853888db89356f1 Mon Sep 17 00:00:00 2001 From: Elizabeth Andrews Date: Tue, 25 Mar 2025 09:31:11 -0700 Subject: [PATCH 1/4] [SYCL] Basic code generation for SYCL kernel caller

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-07 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,186 @@ +// RUN: %clang_cc1 -fsycl-is-host -emit-llvm -triple x86_64-unknown-linux-gnu %s -o - | FileCheck --check-prefixes=CHECK-HOST,CHECK-HOST-LINUX %s +// RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple amdgcn-amd-amdhsa %s

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-07 Thread Tom Honermann via cfe-commits
@@ -732,6 +732,16 @@ CodeGenTypes::arrangeBuiltinFunctionDeclaration(CanQualType resultType, RequiredArgs::All); } +const CGFunctionInfo & +CodeGenTypes::arrangeSYCLKernelCallerDeclaration(QualType resultType, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-07 Thread Tom Honermann via cfe-commits
@@ -732,6 +732,16 @@ CodeGenTypes::arrangeBuiltinFunctionDeclaration(CanQualType resultType, RequiredArgs::All); } +const CGFunctionInfo & +CodeGenTypes::arrangeSYCLKernelCallerDeclaration(QualType resultType, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-07 Thread Tom Honermann via cfe-commits
@@ -14794,9 +14803,36 @@ void ASTContext::getFunctionFeatureMap(llvm::StringMap &FeatureMap, } } -static SYCLKernelInfo BuildSYCLKernelInfo(CanQualType KernelNameType, +static SYCLKernelInfo BuildSYCLKernelInfo(ASTContext &Context, +

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-07 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,186 @@ +// RUN: %clang_cc1 -fsycl-is-host -emit-llvm -triple x86_64-unknown-linux-gnu %s -o - | FileCheck --check-prefixes=CHECK-HOST,CHECK-HOST-LINUX %s +// RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple amdgcn-amd-amdhsa %s

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-07 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,73 @@ +//===- CodeGenSYCL.cpp - Code for SYCL kernel generation --===// +// +// 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: Apa

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-04-07 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann updated https://github.com/llvm/llvm-project/pull/133030 >From 2c99027df798c04d252ff8f66853888db89356f1 Mon Sep 17 00:00:00 2001 From: Elizabeth Andrews Date: Tue, 25 Mar 2025 09:31:11 -0700 Subject: [PATCH 1/3] [SYCL] Basic code generation for SYCL kernel caller

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-03-31 Thread Tom Honermann via cfe-commits
tahonermann wrote: @Fznamznon, @frasercrmck, any further review feedback? @erichkeane, would you like to weigh in on this change before it lands? https://github.com/llvm/llvm-project/pull/133030 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-03-29 Thread Tom Honermann via cfe-commits
@@ -229,6 +229,12 @@ class CodeGenTypes { const CGFunctionInfo &arrangeBuiltinFunctionCall(QualType resultType, const CallArgList &args); + /// A SYCL device kernel function is a free standing function with + /// spir_kern

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-03-27 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann updated https://github.com/llvm/llvm-project/pull/133030 >From 2c99027df798c04d252ff8f66853888db89356f1 Mon Sep 17 00:00:00 2001 From: Elizabeth Andrews Date: Tue, 25 Mar 2025 09:31:11 -0700 Subject: [PATCH 1/2] [SYCL] Basic code generation for SYCL kernel caller

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-03-27 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,177 @@ +// RUN: %clang_cc1 -fsycl-is-host -emit-llvm -triple x86_64-unknown-linux-gnu %s -o - | FileCheck --check-prefixes=CHECK-HOST,CHECK-HOST-LINUX %s +// RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple amdgcn %s -o - | File

[clang] [llvm] [CLANG] Add support of shared attribute for the pragma section. (PR #128197)

2025-03-27 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann edited https://github.com/llvm/llvm-project/pull/128197 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [CLANG] Add support of shared attribute for the pragma section. (PR #128197)

2025-03-27 Thread Tom Honermann via cfe-commits
@@ -23,7 +23,8 @@ class SectionKind { enum Kind { /// Metadata - Debug info sections or other metadata. Metadata, - +/// Shared tahonermann wrote: ```suggestion /// Shared - sections shared across processes. ``` https://github.com/llvm/llvm

[clang] [llvm] [CLANG] Add support of shared attribute for the pragma section. (PR #128197)

2025-03-27 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann requested changes to this pull request. This code looks pretty clean; simpler than I thought would be required. Yay! I think I spotted why the section is getting labeled as constant; see comments. https://github.com/llvm/llvm-project/pull/128197 __

[clang] [llvm] [CLANG] Add support of shared attribute for the pragma section. (PR #128197)

2025-03-27 Thread Tom Honermann via cfe-commits
@@ -5696,6 +5696,10 @@ void CodeGenModule::EmitGlobalVarDefinition(const VarDecl *D, const ASTContext::SectionInfo &SI = Context.SectionInfos[SA->getName()]; if ((SI.SectionFlags & ASTContext::PSF_Write) == 0) GV->setConstant(true); tahonermann w

[clang] [SYCL] Basic code generation for SYCL kernel caller offload entry point functions. (PR #133030)

2025-03-25 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann created https://github.com/llvm/llvm-project/pull/133030 A function declared with the `sycl_kernel_entry_point` attribute, sometimes called a SYCL kernel entry point function, specifies a pattern from which the parameters and body of an offload entry point functi

[clang] [Clang][Docs][NFC] Correct documentation for the CPATH environment variable (PR #129113)

2025-03-11 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann closed https://github.com/llvm/llvm-project/pull/129113 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][NFC] Change uses of getAs() to castAs() where the target type is assured. (PR #130188)

2025-03-11 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann created https://github.com/llvm/llvm-project/pull/130188 Static analysis identified two uses of `getAs()` for which the result pointer was unconditionally dereferenced. Source code inspection confirmed that the target type is assured by prior checks. This change

[clang] [Clang][Docs][NFC] Correct documentation for the CPATH environment variable (PR #129113)

2025-03-07 Thread Tom Honermann via cfe-commits
@@ -733,16 +733,17 @@ ENVIRONMENT .. envvar:: CPATH - If this environment variable is present, it is treated as a delimited list of - paths to be added to the default system include path list. The delimiter is - the platform dependent delimiter, as used in the PATH environ

[clang] [Clang][NFC] Change uses of getAs() to castAs() where the target type is assured. (PR #130188)

2025-03-06 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann closed https://github.com/llvm/llvm-project/pull/130188 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Docs][NFC] Correct documentation for the CPATH environment variable (PR #129113)

2025-03-06 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann updated https://github.com/llvm/llvm-project/pull/129113 >From b274bb5ef53ffc13093a5d454295cba21640dc4e Mon Sep 17 00:00:00 2001 From: Tom Honermann Date: Thu, 27 Feb 2025 11:54:41 -0800 Subject: [PATCH 1/2] [Clang][Docs][NFC] Correct documentation for the CPATH

[clang] [Clang][Docs][NFC] Correct documentation for the CPATH environment variable (PR #129113)

2025-03-06 Thread Tom Honermann via cfe-commits
@@ -733,16 +733,17 @@ ENVIRONMENT .. envvar:: CPATH - If this environment variable is present, it is treated as a delimited list of - paths to be added to the default system include path list. The delimiter is - the platform dependent delimiter, as used in the PATH environ

[clang] [Clang][Docs][NFC] Correct documentation for the CPATH environment variable (PR #129113)

2025-02-28 Thread Tom Honermann via cfe-commits
@@ -733,16 +733,17 @@ ENVIRONMENT .. envvar:: CPATH - If this environment variable is present, it is treated as a delimited list of - paths to be added to the default system include path list. The delimiter is - the platform dependent delimiter, as used in the PATH environ

[clang] [Clang][Docs][NFC] Correct documentation for the CPATH environment variable (PR #129113)

2025-02-28 Thread Tom Honermann via cfe-commits
@@ -733,16 +733,17 @@ ENVIRONMENT .. envvar:: CPATH - If this environment variable is present, it is treated as a delimited list of - paths to be added to the default system include path list. The delimiter is - the platform dependent delimiter, as used in the PATH environ

[clang] [Clang][Docs][NFC] Correct documentation for the CPATH environment variable (PR #129113)

2025-02-27 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann updated https://github.com/llvm/llvm-project/pull/129113 >From b274bb5ef53ffc13093a5d454295cba21640dc4e Mon Sep 17 00:00:00 2001 From: Tom Honermann Date: Thu, 27 Feb 2025 11:54:41 -0800 Subject: [PATCH] [Clang][Docs][NFC] Correct documentation for the CPATH envi

[clang] [Clang][Docs][NFC] Correct documentation for the CPATH environment variable (PR #129113)

2025-02-27 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann created https://github.com/llvm/llvm-project/pull/129113 Clang's [current documentation for the `CPATH` environment variable](https://clang.llvm.org/docs/CommandGuide/clang.html#envvar-CPATH) states that paths it specifies are added as system header search paths.

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-22 Thread Tom Honermann via cfe-commits
tahonermann wrote: > No idea why I can't respond to the individual threads but... @erichkeane, in order to reduce notifications, I replied to your comments as a review. You should generally be able to reply to them individually or as part of a batched review from the "Files changed" tab, but G

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-22 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann updated https://github.com/llvm/llvm-project/pull/122379 >From a6342615862c8ec48459ec95334d812bcb6a6e55 Mon Sep 17 00:00:00 2001 From: Tom Honermann Date: Wed, 8 May 2024 14:31:36 -0700 Subject: [PATCH 1/6] [SYCL] AST support for SYCL kernel entry point functions.

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-21 Thread Tom Honermann via cfe-commits
@@ -18,6 +18,7 @@ #include "clang/AST/StmtObjC.h" #include "clang/AST/StmtOpenACC.h" #include "clang/AST/StmtOpenMP.h" +#include "clang/AST/StmtSYCL.h" tahonermann wrote: Hmm, looks like no reason at all. I'm guessing it was once needed for some X-Macro usage

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-21 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann edited https://github.com/llvm/llvm-project/pull/122379 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-21 Thread Tom Honermann via cfe-commits
@@ -480,6 +480,7 @@ following requirements. * Is not a C variadic function. * Is not a coroutine. * Is not defined as deleted or as defaulted. +* Is not defined with a function try block. tahonermann wrote: The SYCL specification isn't relevant here as `sycl_k

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-21 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,94 @@ +//===- StmtSYCL.h - Classes for SYCL kernel calls ---*- 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: Apa

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-21 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann commented: > I only saw 1 unresolved, not 2? But I resolved it. Can you point out the > other? The other one was [this one](https://github.com/llvm/llvm-project/pull/122379#discussion_r1910706213); You gave it a thumbs up, so I went ahead and resolved it now.

[clang] [llvm] [Clang] Match MSVC handling of duplicate header search paths in Microsoft compatibility modes. (PR #105738)

2025-01-19 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann updated https://github.com/llvm/llvm-project/pull/105738 >From c5d4a8b94d0f5b294dda30b455c492e0a860906a Mon Sep 17 00:00:00 2001 From: Tom Honermann Date: Thu, 22 Aug 2024 09:44:56 -0700 Subject: [PATCH] [Clang] Support for MSVC compatible header search path orde

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-18 Thread Tom Honermann via cfe-commits
tahonermann wrote: @erichkeane, thank you for the prior code review. I believe I've addressed all the concerns you raised. There are two conversations I left unresolved pending any further response from you. https://github.com/llvm/llvm-project/pull/122379 _

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-18 Thread Tom Honermann via cfe-commits
https://github.com/tahonermann edited https://github.com/llvm/llvm-project/pull/122379 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-18 Thread Tom Honermann via cfe-commits
@@ -0,0 +1,92 @@ +//===- StmtSYCL.h - Classes for SYCL kernel calls ---*- 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: Apa

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-18 Thread Tom Honermann via cfe-commits
@@ -1376,6 +1377,16 @@ void ASTDeclWriter::VisitBlockDecl(BlockDecl *D) { Code = serialization::DECL_BLOCK; } +void ASTDeclWriter::VisitOutlinedFunctionDecl(OutlinedFunctionDecl *D) { + Record.push_back(D->getNumParams()); + VisitDecl(D); + Record.push_back(D->isNothrow()

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-18 Thread Tom Honermann via cfe-commits
@@ -4678,6 +4678,95 @@ class BlockDecl : public Decl, public DeclContext { } }; +/// Represents a partial function definition. +/// +/// An outlined function declaration contains the parameters and body of +/// a function independent of other function definition concerns suc

[clang] [SYCL] AST support for SYCL kernel entry point functions. (PR #122379)

2025-01-18 Thread Tom Honermann via cfe-commits
@@ -4678,6 +4678,95 @@ class BlockDecl : public Decl, public DeclContext { } }; +/// Represents a partial function definition. +/// +/// An outlined function declaration contains the parameters and body of +/// a function independent of other function definition concerns suc

  1   2   3   4   5   >