[clang] [APINotes] Avoid duplicated attributes for class template instantiations (PR #122516)

2025-01-15 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/122516 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [APINotes] Avoid duplicated attributes for class template instantiations (PR #122516)

2025-01-10 Thread Saleem Abdulrasool via cfe-commits
@@ -19493,7 +19493,11 @@ void Sema::ActOnFields(Scope *S, SourceLocation RecLoc, Decl *EnclosingDecl, CDecl->setIvarRBraceLoc(RBrac); } } - ProcessAPINotes(Record); + + // If this is a class template instantiation, its API Notes attributes were + // added to the

[clang] [APINotes] Avoid duplicated attributes for class template instantiations (PR #122516)

2025-01-10 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/122516 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Fix a cmake error when using the Xcode generator. (PR #119403)

2025-01-08 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: (waiting to see if Aaron can also take a look) https://github.com/llvm/llvm-project/pull/119403 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Fix a cmake error when using the Xcode generator. (PR #119403)

2025-01-08 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/119403 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [APINotes] Avoid assertion failure with expensive checks (PR #120487)

2024-12-18 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/120487 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [docs] Add a more detailed description in CXString.h. (PR #119090)

2024-12-12 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd closed https://github.com/llvm/llvm-project/pull/119090 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [docs] Add a more detailed description in CXString.h. (PR #119090)

2024-12-12 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: I'll go ahead and merge the change on your behalf as I suspect that you do not have commit rights as this is your first PR to the project. Thank you for the contribution! https://github.com/llvm/llvm-project/pull/119090 ___ cfe-commit

[clang] [docs] Add a more detailed description in CXString.h. (PR #119090)

2024-12-12 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/119090 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [docs] Add a more detailed description in CXString.h. (PR #119090)

2024-12-09 Thread Saleem Abdulrasool via cfe-commits
@@ -46,6 +46,9 @@ typedef struct { /** * Retrieve the character data associated with the given string. + * + * The caller shouldn't free the returned string data, and the returned string + * data shouldn't be accessed after the \c CXString disposed. compnerd

[clang] [docs] Add a more detailed description in CXString.h. (PR #119090)

2024-12-08 Thread Saleem Abdulrasool via cfe-commits
@@ -46,6 +46,9 @@ typedef struct { /** * Retrieve the character data associated with the given string. + * + * The caller shouldn't free the returned string data, and the returned string + * data shouldn't be accessed after the \c CXString disposed. compnerd

[clang] [docs] Add a more detailed description in CXString.h. (PR #119090)

2024-12-08 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd edited https://github.com/llvm/llvm-project/pull/119090 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [docs] Add a more detailed description in CXString.h. (PR #119090)

2024-12-07 Thread Saleem Abdulrasool via cfe-commits
@@ -46,6 +46,9 @@ typedef struct { /** * Retrieve the character data associated with the given string. + * + * The caller shouldn't free the returned string data, and the returned string + * data shouldn't be accessed after the \c CXString disposed. compnerd

[clang] [APINotes] Add SWIFT_RETURNS_(UN)RETAINED support (PR #118938)

2024-12-06 Thread Saleem Abdulrasool via cfe-commits
@@ -373,6 +373,13 @@ void ReadFunctionInfo(const uint8_t *&Data, FunctionInfo &Info) { endian::readNext(Data); Info.ResultType = std::string(Data, Data + ResultTypeLen); Data += ResultTypeLen; + + unsigned SwiftReturnOwnershipLength = + endian::readNext(Data);

[clang] [APINotes] Add SWIFT_RETURNS_(UN)RETAINED support (PR #118938)

2024-12-06 Thread Saleem Abdulrasool via cfe-commits
@@ -373,6 +373,13 @@ void ReadFunctionInfo(const uint8_t *&Data, FunctionInfo &Info) { endian::readNext(Data); Info.ResultType = std::string(Data, Data + ResultTypeLen); Data += ResultTypeLen; + + unsigned SwiftReturnOwnershipLength = + endian::readNext(Data);

[clang] Clang tooling generated visibility macros for Clang (PR #109702)

2024-12-04 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: > But this before we do that, we need to have some kind of mechanism in place > so we can actually enumerate the AP However, we already expose everything in > the API, and just adding the annotations doesn't change that (although I > think it may slightly reduce the number of s

[clang] Clang tooling generated visibility macros for Clang (PR #109702)

2024-11-27 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: > Well, we're currently approaching this from the angle of "expose everything > and then the user can do whatever they want", but perhaps the discussion we > should be having is "what use cases do we explicitly want to support?" and > then we write plugins to demonstrate that w

[clang] Clang tooling generated visibility macros for Clang (PR #109702)

2024-11-25 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: > > I can absolutely see the value in the opposite - minimise the ABI surface. > > For many projects, there is a split of internal and external headers. The > > idea is that this tool is only run on the external headers, so those are > > meant to be ABI. > > There were multipl

[clang] Clang tooling generated visibility macros for Clang (PR #109702)

2024-11-25 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: > > The default behaviour of `ids` is to assume that anything declared in the > > header is public and it will ensure that anything added in the headers is > > annotated properly to say it is exposed, making something private would be > > an explicit decision that the developer

[clang] [clang][APINotes] Do not add duplicate lifetimebound annotation (PR #117194)

2024-11-21 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/117194 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [clangd] Update clangDaemonTweaks to set symbol visibility macros (PR #112304)

2024-11-19 Thread Saleem Abdulrasool via cfe-commits
@@ -47,7 +47,7 @@ endmacro() macro(add_clang_library name) cmake_parse_arguments(ARG -"SHARED;STATIC;INSTALL_WITH_TOOLCHAIN" +"SHARED;STATIC;INSTALL_WITH_TOOLCHAIN;CLANG_IMPORT" compnerd wrote: We should document the option. Why is it specific to cl

[clang] [clang-tools-extra] [clangd] Update clangDaemonTweaks to set symbol visibility macros (PR #112304)

2024-11-19 Thread Saleem Abdulrasool via cfe-commits
@@ -114,7 +114,7 @@ macro(add_clang_library name) if(TARGET "obj.${name}") target_compile_definitions("obj.${name}" PUBLIC CLANG_BUILD_STATIC) endif() - elseif(NOT ARG_SHARED AND NOT ARG_STATIC) + elseif(NOT ARG_SHARED AND NOT ARG_STATIC AND NOT ARG_CLANG_IMPORT

[clang] [clang-tools-extra] [clangd] Update clangDaemonTweaks to set symbol visibility macros (PR #112304)

2024-11-15 Thread Saleem Abdulrasool via cfe-commits
@@ -114,7 +114,7 @@ macro(add_clang_library name) if(TARGET "obj.${name}") target_compile_definitions("obj.${name}" PUBLIC CLANG_BUILD_STATIC) endif() - elseif(NOT ARG_SHARED AND NOT ARG_STATIC) + elseif(NOT ARG_SHARED AND NOT ARG_STATIC AND NOT ARG_CLANG_IMPORT

[clang] [clang-tools-extra] [clangd] Update clangDaemonTweaks to set symbol visibility macros (PR #112304)

2024-11-15 Thread Saleem Abdulrasool via cfe-commits
@@ -47,7 +47,7 @@ endmacro() macro(add_clang_library name) cmake_parse_arguments(ARG -"SHARED;STATIC;INSTALL_WITH_TOOLCHAIN" +"SHARED;STATIC;INSTALL_WITH_TOOLCHAIN;CLANG_IMPORT" compnerd wrote: It is unclear what this new option (`CLANG_IMPORT`) doe

[clang] [clang][APINotes] Add support for the SwiftEscapable attribute (PR #115866)

2024-11-12 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd edited https://github.com/llvm/llvm-project/pull/115866 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][APINotes] Add support for the SwiftEscapable attribute (PR #115866)

2024-11-12 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. Some minor comments left. https://github.com/llvm/llvm-project/pull/115866 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][APINotes] Add support for the SwiftEscapable attribute (PR #115866)

2024-11-12 Thread Saleem Abdulrasool via cfe-commits
@@ -1266,11 +1266,11 @@ class CommonTypeTableInfo class TagTableInfo : public CommonTypeTableInfo { public: unsigned getUnversionedInfoSize(const TagInfo &TI) { -return 2 + (TI.SwiftImportAs ? TI.SwiftImportAs->size() : 0) + - 2 + (TI.SwiftRetainOp ? TI.SwiftRet

[clang] [clang][APINotes] Add support for the SwiftEscapable attribute (PR #115866)

2024-11-12 Thread Saleem Abdulrasool via cfe-commits
@@ -757,6 +763,15 @@ class TagInfo : public CommonTypeInfo { SwiftCopyable = Value.value_or(false); } + std::optional isSwiftEscapable() const { +return SwiftEscapableSpecified ? std::optional(SwiftEscapable) + : std::nullopt; + }

[clang] [clang][APINotes] Add support for the SwiftEscapable attribute (PR #115866)

2024-11-12 Thread Saleem Abdulrasool via cfe-commits
@@ -589,10 +589,16 @@ class TagTableInfo uint8_t Copyable = endian::readNext(Data); -if (Copyable == kSwiftNonCopyable) +if (Copyable == kSwiftDoesNotConform) Info.setSwiftCopyable(std::optional(false)); -else if (Copyable == kSwiftCopyable) +

[clang] [clang][APINotes] Add support for the SwiftEscapable attribute (PR #115866)

2024-11-12 Thread Saleem Abdulrasool via cfe-commits
@@ -647,6 +647,13 @@ static void ProcessAPINotes(Sema &S, TagDecl *D, const api_notes::TagInfo &Info, D->addAttr(SwiftAttrAttr::Create(S.Context, "~Copyable")); } + if (auto Escapable = Info.isSwiftEscapable()) { +if (*Escapable) + D->addAttr(SwiftAttrAttr::

[clang] [clang] Support 'this' position for lifetimebound attribute (PR #115021)

2024-11-07 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/115021 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Support 'this' position for lifetimebound attribute (PR #115021)

2024-11-06 Thread Saleem Abdulrasool via cfe-commits
@@ -730,7 +731,9 @@ class YAMLConverter { } } - void convertParams(const ParamsSeq &Params, FunctionInfo &OutInfo) { + std::optional convertParams(const ParamsSeq &Params, + FunctionInfo &OutInfo) { compnerd wrot

[clang] [clang] Support 'this' position for lifetimebound attribute (PR #115021)

2024-11-05 Thread Saleem Abdulrasool via cfe-commits
@@ -396,12 +397,19 @@ class ObjCMethodTableInfo const uint8_t *&Data) { ObjCMethodInfo Info; uint8_t Payload = *Data++; +bool HasSelf = Payload & 0x01; +Payload >>= 1; Info.RequiredInit = Payload & 0x01; Payload

[clang] [clang] Support 'this' position for lifetimebound attribute (PR #115021)

2024-11-05 Thread Saleem Abdulrasool via cfe-commits
@@ -730,7 +731,9 @@ class YAMLConverter { } } - void convertParams(const ParamsSeq &Params, FunctionInfo &OutInfo) { + std::optional convertParams(const ParamsSeq &Params, + FunctionInfo &OutInfo) { compnerd wrot

[clang] [clang] Support 'this' position for lifetimebound attribute (PR #115021)

2024-11-05 Thread Saleem Abdulrasool via cfe-commits
@@ -516,7 +524,17 @@ class CXXMethodTableInfo static CXXMethodInfo readUnversioned(internal_key_type Key, const uint8_t *&Data) { CXXMethodInfo Info; + +uint8_t Payload = *Data++; +bool HasThis = Payload & 0x01; +Payload

[clang] [clang] Support 'this' position for lifetimebound attribute (PR #115021)

2024-11-05 Thread Saleem Abdulrasool via cfe-commits
@@ -739,10 +742,16 @@ class YAMLConverter { PI.setLifetimebound(P.Lifetimebound); PI.setType(std::string(P.Type)); PI.setRetainCountConvention(P.RetainCountConvention); - if (OutInfo.Params.size() <= P.Position) + if (static_cast(OutInfo.Params.size(

[clang] [clang] Support 'this' position for lifetimebound attribute (PR #115021)

2024-11-05 Thread Saleem Abdulrasool via cfe-commits
@@ -926,11 +935,17 @@ class YAMLConverter { TheNamespace.Items, SwiftVersion); } - void convertFunction(const Function &Function, FunctionInfo &FI) { + template + void convertFunction(const Function &Function, FuncOrMethodInfo &FI) { convert

[clang] [clang] Support 'this' position for lifetimebound attribute (PR #115021)

2024-11-05 Thread Saleem Abdulrasool via cfe-commits
@@ -793,12 +802,22 @@ class CXXMethodTableInfo return static_cast(key.hashValue()); } - unsigned getUnversionedInfoSize(const CXXMethodInfo &OMI) { -return getFunctionInfoSize(OMI); + unsigned getUnversionedInfoSize(const CXXMethodInfo &CxxMI) { +auto size = ge

[clang] [clang] Support 'this' position for lifetimebound attribute (PR #115021)

2024-11-05 Thread Saleem Abdulrasool via cfe-commits
@@ -730,7 +731,9 @@ class YAMLConverter { } } - void convertParams(const ParamsSeq &Params, FunctionInfo &OutInfo) { + std::optional convertParams(const ParamsSeq &Params, + FunctionInfo &OutInfo) { +std::optional thisOrSelf;

[clang] Nominate Saleem and myself as maintainers for API Notes (PR #114981)

2024-11-05 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: Thanks @AaronBallman - @egorzhdan was nice enough to reach out to me earlier and I am fine with co-maintaining the APINotes. https://github.com/llvm/llvm-project/pull/114981 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https

[clang] [clang] Add preliminary lifetimebound support to APINotes (PR #114830)

2024-11-04 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/114830 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Add preliminary lifetimebound support to APINotes (PR #114830)

2024-11-04 Thread Saleem Abdulrasool via cfe-commits
@@ -444,6 +454,16 @@ class ParamInfo : public VariableInfo { NoEscape = Value.value_or(false); } + std::optional isLifetimebound() const { +if (!LifetimeboundSpecified) + return std::nullopt; +return Lifetimebound; compnerd wrote: ```sugge

[clang] [clang] Add preliminary lifetimebound support to APINotes (PR #114830)

2024-11-04 Thread Saleem Abdulrasool via cfe-commits
@@ -860,13 +868,12 @@ void Sema::ProcessAPINotes(Decl *D) { if (!D) return; + auto *DC = D->getDeclContext(); // Globals. - if (D->getDeclContext()->isFileContext() || - D->getDeclContext()->isNamespace() || - D->getDeclContext()->isExternCContext() || -

[clang] Clang tooling generated visibility macros for Clang (PR #109702)

2024-11-04 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: > pre-commit actions are expensive, but I think we could afford to do something > here. It is not hard to set up a DLL build of an ELF DSO build that uses > these annotations, and it's cheaper than a fully static build. Having a fast incremental build for DLL-enabled LLVM/clang

[clang] [lld] [llvm] [Windows] Add support for emitting PGO/LTO magic strings in the Windows PE debug directory (PR #114260)

2024-11-03 Thread Saleem Abdulrasool via cfe-commits
@@ -1165,6 +1188,23 @@ void Writer::createMiscChunks() { llvm::TimeTraceScope timeScope("Misc chunks"); Configuration *config = &ctx.config; + auto searchForPgoMagicSection = [this](char sectionName[]) { +for (auto *obj : ctx.objFileInstances) { + for (auto &chun

[libunwind] [libunwind][AIX] Call dlclose only when dlsym() fails (PR #112768)

2024-10-17 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd commented: Should the call be prior to the assert? https://github.com/llvm/llvm-project/pull/112768 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libc] [Clang] Implement resource directory headers for common GPU intrinsics (PR #110179)

2024-10-03 Thread Saleem Abdulrasool via cfe-commits
@@ -0,0 +1,153 @@ +//===-- amdgpuintrin.h - AMDPGU intrinsic functions ---===// +// +// 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: Ap

[clang] [libc] [Clang] Implement resource directory headers for common GPU intrinsics (PR #110179)

2024-10-03 Thread Saleem Abdulrasool via cfe-commits
@@ -0,0 +1,153 @@ +//===-- amdgpuintrin.h - AMDPGU intrinsic functions ---===// +// +// 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: Ap

[clang] Clang tooling generated visibility macros for Clang (PR #109702)

2024-10-02 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: > Looking at Format.h (the only file I'm interested in), there feels to me to > be things in the ABI that I wouldn't expect to be called externally, I don't > know enough about what's involved in creating a DLL ABI but I wouldn't want > some of the clang-format functions to be

[clang] [Clang] Add explicit visibility symbol macros (PR #108276)

2024-09-29 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/108276 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Replace vt_gen with LLVMCodeGenTypes (PR #109601)

2024-09-24 Thread Saleem Abdulrasool via cfe-commits
@@ -31,6 +31,7 @@ set(LLVM_LINK_COMPONENTS Target TargetParser TransformUtils + CodeGenTypes compnerd wrote: This is duplicated (L6). https://github.com/llvm/llvm-project/pull/109601 ___ cfe-commits mailing l

[clang] [Clang] Replace vt_gen with LLVMCodeGenTypes (PR #109601)

2024-09-24 Thread Saleem Abdulrasool via cfe-commits
@@ -31,6 +31,7 @@ set(LLVM_LINK_COMPONENTS Target TargetParser TransformUtils + LLVMCodeGenTypes compnerd wrote: These are lexicographically sorted, please maintain that invariant. https://github.com/llvm/llvm-project/pull/109601 __

[clang] [Clang] Include LLVM CodeGen CMake file (PR #109601)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd edited https://github.com/llvm/llvm-project/pull/109601 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Include LLVM CodeGen CMake file (PR #109601)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd edited https://github.com/llvm/llvm-project/pull/109601 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Include LLVM CodeGen CMake file (PR #109601)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
@@ -1,3 +1,7 @@ +if(EXISTS ${LLVM_MAIN_SRC_DIR}/include/llvm/CodeGen AND CLANG_BUILT_STANDALONE) + add_subdirectory(${LLVM_MAIN_SRC_DIR}/include/llvm/CodeGen llvm/lib/CodeGen) +endif() compnerd wrote: https://github.com/llvm/llvm-project/blob/main/llvm/cmake/mod

[clang] [Clang] Include LLVM CodeGen CMake file (PR #109601)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
@@ -1,3 +1,7 @@ +if(EXISTS ${LLVM_MAIN_SRC_DIR}/include/llvm/CodeGen AND CLANG_BUILT_STANDALONE) + add_subdirectory(${LLVM_MAIN_SRC_DIR}/include/llvm/CodeGen llvm/lib/CodeGen) +endif() compnerd wrote: The issue is that the `vt_gen` target is undefined. This is _

[clang] [Clang] Include LLVM CodeGen CMake file (PR #109601)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: > @compnerd @etcwilde WDYT about conditionalizing the new dependency with an > `if (TARGET vt_gen)` instead of doing the `add_subdirectory()` dance? Ugh, I misread the change as `include_directories`. The `add_subdirectory` is definitely odd and I'm not sure if that is a proper

[clang] [Clang] Include LLVM CodeGen CMake file (PR #109601)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
@@ -1,3 +1,7 @@ +if(EXISTS ${LLVM_MAIN_SRC_DIR}/include/llvm/CodeGen AND CLANG_BUILT_STANDALONE) + add_subdirectory(${LLVM_MAIN_SRC_DIR}/include/llvm/CodeGen llvm/lib/CodeGen) +endif() compnerd wrote: No, `LLVM_DIR` is passed to the CMake configure step to locat

[clang] [Clang] Include LLVM CodeGen CMake file (PR #109601)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
@@ -1,3 +1,7 @@ +if(EXISTS ${LLVM_MAIN_SRC_DIR}/include/llvm/CodeGen AND CLANG_BUILT_STANDALONE) compnerd wrote: I think that I would rather have the cases mirrored here - the path should always exist in general, it is only the standalone case that is special.

[clang] [Clang] Include LLVM CodeGen CMake file (PR #109601)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
@@ -1,3 +1,7 @@ +if(EXISTS ${LLVM_MAIN_SRC_DIR}/include/llvm/CodeGen AND CLANG_BUILT_STANDALONE) + add_subdirectory(${LLVM_MAIN_SRC_DIR}/include/llvm/CodeGen llvm/lib/CodeGen) +endif() compnerd wrote: IIRC, even in the standalone case, you need to identify the L

[clang] [Clang] Add explicit visibility symbol macros (PR #108276)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
@@ -0,0 +1,69 @@ +//===-- clang/Support/Compiler.h - Compiler abstraction support -*- 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] [Clang] Add explicit visibility symbol macros (PR #108276)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
@@ -0,0 +1,69 @@ +//===-- clang/Support/Compiler.h - Compiler abstraction support -*- 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] [Clang] Add explicit visibility symbol macros (PR #108276)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
@@ -26,7 +26,7 @@ if(NOT CLANG_BUILT_STANDALONE) set(tablegen_deps intrinsics_gen LinkerWrapperOpts) endif() -add_clang_tool(clang-linker-wrapper +add_clang_tool(clang-linker-wrapper DISABLE_CLANG_LINK_DYLIB compnerd wrote: Similar https://github.com/llvm/

[clang] [Clang] Add explicit visibility symbol macros (PR #108276)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
@@ -8,6 +8,7 @@ set(LLVM_LINK_COMPONENTS Support) -add_clang_tool(amdgpu-arch AMDGPUArch.cpp AMDGPUArchByHSA.cpp AMDGPUArchByHIP.cpp) +add_clang_tool(amdgpu-arch DISABLE_CLANG_LINK_DYLIB compnerd wrote: Why is this not allowed? Can we add a note about this?

[clang] [Clang] Add explicit visibility symbol macros (PR #108276)

2024-09-23 Thread Saleem Abdulrasool via cfe-commits
@@ -7,6 +7,7 @@ # //======// set(LLVM_LINK_COMPONENTS Support) -add_clang_tool(nvptx-arch NVPTXArch.cpp) +add_clang_tool(nvptx-arch DISABLE_CLANG_LINK_DYLIB compnerd wrote: Likewise https:/

[clang] [Clang] Include the clang-shlib CMake project when building for MSVC (PR #109457)

2024-09-20 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/109457 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add explicit visibility symbol macros (PR #108276)

2024-09-20 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: > One thing I don't understand about this PR is why we need Compiler.h in Clang > -- wouldn't the LLVM definitions in their Compiler.h work for Clang as well? > (This would probably be worth explaining in the patch summary.) The symbol lookup in PE/COFF is two level and symmetr

[clang] Add missing deps edge: CodeGenAction.cpp.o -> GenVT.inc (PR #109306)

2024-09-19 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/109306 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] Update llvm::Registry to work for LLVM shared library builds on windows (PR #109024)

2024-09-18 Thread Saleem Abdulrasool via cfe-commits
@@ -165,4 +166,8 @@ const std::list> &getAttributePluginInstances(); } // namespace clang +namespace llvm { +extern template class CLANG_TEMPLATE_ABI llvm::Registry; compnerd wrote: ```suggestion extern template class CLANG_TEMPLATE_ABI Registry; ``` This

[clang] [llvm] Update llvm::Registry to work for LLVM shared library builds on windows (PR #109024)

2024-09-18 Thread Saleem Abdulrasool via cfe-commits
@@ -189,19 +190,23 @@ #define LLVM_TEMPLATE_ABI __declspec(dllimport) #define LLVM_EXPORT_TEMPLATE #endif +#define LLVM_ABI_EXPORT __declspec(dllexport) compnerd wrote: Why is this being added? I'm weary of any macro that is always export only because the val

[clang] [Clang] Add explicit visibility symbol macros (PR #108276)

2024-09-11 Thread Saleem Abdulrasool via cfe-commits
@@ -108,6 +108,10 @@ macro(add_clang_library name) endif() llvm_add_library(${name} ${LIBTYPE} ${ARG_UNPARSED_ARGUMENTS} ${srcs}) + if(NOT ARG_SHARED AND NOT ARG_STATIC) +target_compile_definitions("obj.${name}" PRIVATE CLANG_EXPORTS) compnerd wrote:

[clang] [Clang] Add explicit visibility symbol macros (PR #108276)

2024-09-11 Thread Saleem Abdulrasool via cfe-commits
@@ -166,7 +166,7 @@ if(ENABLE_SHARED) set_target_properties(libclang PROPERTIES VERSION ${LIBCLANG_LIBRARY_VERSION} - DEFINE_SYMBOL _CINDEX_LIB_) + DEFINE_SYMBOL _CINDEX_LIB_ DEFINE_SYMBOL CLANG_EXPORTS) compnerd wrote: This will ove

[clang] Set dllimport on Objective C ivar offsets (PR #107604)

2024-09-06 Thread Saleem Abdulrasool via cfe-commits
@@ -1699,11 +1699,18 @@ class CGObjCGNUstep2 : public CGObjCGNUstep { llvm::Value *EmitIvarOffset(CodeGenFunction &CGF, const ObjCInterfaceDecl *Interface, const ObjCIvarDecl *Ivar) override { -const std::string

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-09-05 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: Please also get a sign off from @aganea https://github.com/llvm/llvm-project/pull/106369 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-09-05 Thread Saleem Abdulrasool via cfe-commits
@@ -484,8 +519,10 @@ static bool initTargetOptions(DiagnosticsEngine &Diags, Entry.Group == frontend::IncludeDirGroup::System)) Options.MCOptions.IASSearchPaths.push_back( Entry.IgnoreSysRoot ? Entry.Path : HSOpts.Sysroot + Entry.Path); - Options.MCOpt

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-09-05 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/106369 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [MC] Emit a jump table size section (PR #101962)

2024-09-02 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/101962 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-09-01 Thread Saleem Abdulrasool via cfe-commits
@@ -321,6 +322,41 @@ static bool actionRequiresCodeGen(BackendAction Action) { Action != Backend_EmitLL; } +static std::string flattenClangCommandLine(ArrayRef Args, + StringRef MainFilename) { + std::string FlatCmdLine; + raw_st

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-09-01 Thread Saleem Abdulrasool via cfe-commits
@@ -322,6 +323,46 @@ static bool actionRequiresCodeGen(BackendAction Action) { Action != Backend_EmitLL; } +static std::string flattenClangCommandLine(ArrayRef Args, + StringRef MainFilename) { + if (Args.empty()) + { ---

[clang] [llvm] [MC] Emit a jump table size section (PR #101962)

2024-08-30 Thread Saleem Abdulrasool via cfe-commits
@@ -2764,10 +2771,59 @@ void AsmPrinter::emitJumpTableInfo() { for (const MachineBasicBlock *MBB : JTBBs) emitJumpTableEntry(MJTI, MBB, JTI); } + + if (EmitJumpTableSizesSection) +emitJumpTableSizesSection(MJTI, F); + if (!JTInDiffSection) OutStreamer->

[clang] [llvm] [MC] Emit a jump table size section (PR #101962)

2024-08-30 Thread Saleem Abdulrasool via cfe-commits
@@ -2764,10 +2771,59 @@ void AsmPrinter::emitJumpTableInfo() { for (const MachineBasicBlock *MBB : JTBBs) emitJumpTableEntry(MJTI, MBB, JTI); } + + if (EmitJumpTableSizesSection) +emitJumpTableSizesSection(MJTI, F); + if (!JTInDiffSection) OutStreamer->

[clang] [llvm] [MC] Emit a jump table size section (PR #101962)

2024-08-20 Thread Saleem Abdulrasool via cfe-commits
@@ -0,0 +1,97 @@ +; RUN: llc %s -o - -emit-jump-table-sizes-section -verify-machineinstrs --relocation-model=pic | FileCheck --check-prefix=CHECK %s +; RUN: llc %s -o - -verify-machineinstrs --relocation-model=pic | FileCheck --check-prefix=NOFLAG %s compnerd wr

[clang] [llvm] [MC] Emit a jump table size section (PR #101962)

2024-08-20 Thread Saleem Abdulrasool via cfe-commits
@@ -2764,6 +2770,27 @@ void AsmPrinter::emitJumpTableInfo() { for (const MachineBasicBlock *MBB : JTBBs) emitJumpTableEntry(MJTI, MBB, JTI); } + + if (EmitJumpTableSizesSection && TM.getTargetTriple().isOSBinFormatELF() && compnerd wrote: Outside

[clang] [APINotes] Support fields of C/C++ structs (PR #104088)

2024-08-16 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/104088 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [APINotes] Support fields of C/C++ structs (PR #104088)

2024-08-14 Thread Saleem Abdulrasool via cfe-commits
@@ -793,6 +827,16 @@ class YAMLConverter { SwiftVersion); } + template + void convertVariable(const T &Entity, VariableInfo &VI) { compnerd wrote: I think that `computeVariableInfo` seems better - we are "hydrating" the variable

[clang] [APINotes] Support fields of C/C++ structs (PR #104088)

2024-08-14 Thread Saleem Abdulrasool via cfe-commits
@@ -1252,6 +1282,81 @@ bool APINotesReader::Implementation::readCXXMethodBlock( return false; } +bool APINotesReader::Implementation::readFieldBlock( +llvm::BitstreamCursor &Cursor, llvm::SmallVectorImpl &Scratch) { + if (Cursor.EnterSubBlock(FIELD_BLOCK_ID)) +retur

[clang] [APINotes] Support fields of C/C++ structs (PR #104088)

2024-08-14 Thread Saleem Abdulrasool via cfe-commits
@@ -858,6 +867,62 @@ void APINotesWriter::Implementation::writeCXXMethodBlock( } } +namespace { +/// Used to serialize the on-disk C field table. +class FieldTableInfo +: public VersionedTableInfo { +public: + unsigned getKeyLength(key_type_ref) { +return sizeof(ui

[clang] [APINotes] Support C++ tag conformances to Swift protocols (PR #102664)

2024-08-12 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/102664 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [APINotes] Support C++ tag conformances to Swift protocols (PR #102664)

2024-08-10 Thread Saleem Abdulrasool via cfe-commits
@@ -1230,6 +1231,12 @@ class TagTableInfo : public CommonTypeTableInfo { } else { writer.write(0); } +if (auto ConformsTo = TI.SwiftConformsTo) { + writer.write(ConformsTo->size() + 1); + OS.write(ConformsTo->c_str(), ConformsTo->size()); --

[clang] [APINotes] Support C++ tag conformances to Swift protocols (PR #102664)

2024-08-10 Thread Saleem Abdulrasool via cfe-commits
@@ -572,6 +572,13 @@ class TagTableInfo ReleaseOpLength - 1); Data += ReleaseOpLength - 1; } +unsigned ConformsToLength = +endian::readNext(Data); +if (ConformsToLength > 0) { compnerd wrote: ``

[clang] [APINotes] Support C++ tag conformances to Swift protocols (PR #102664)

2024-08-10 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/102664 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][CodeGen] Fix bad codegen when building Clang with latest MSVC (PR #102681)

2024-08-10 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd edited https://github.com/llvm/llvm-project/pull/102681 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][CodeGen] Fix bad codegen when building Clang with latest MSVC (PR #102681)

2024-08-09 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. Might be nice to clean this up in the future but hen Microsoft releases a fix. https://github.com/llvm/llvm-project/pull/102681 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://list

[clang] [llvm] [MC] Emit a jump table size section (PR #101962)

2024-08-05 Thread Saleem Abdulrasool via cfe-commits
compnerd wrote: The `.debug_` prefix is for DEARF content, is this being proposed to the DWARF standard? https://github.com/llvm/llvm-project/pull/101962 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/li

[clang] [Driver] Pass correct alignment for -falign-functions with no argument (PR #101257)

2024-07-31 Thread Saleem Abdulrasool via cfe-commits
https://github.com/compnerd approved this pull request. https://github.com/llvm/llvm-project/pull/101257 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Driver] Pass correct alignment for -falign-functions with no argument (PR #101257)

2024-07-31 Thread Saleem Abdulrasool via cfe-commits
@@ -1982,7 +1982,7 @@ unsigned tools::ParseFunctionAlignment(const ToolChain &TC, return 0; if (A->getOption().matches(options::OPT_falign_functions)) -return 0; +return 4; // log2(16) compnerd wrote: @pogo59 that is documented in the GCC docum

[clang] [Driver] Pass correct alignment for -falign-functions with no argument (PR #101257)

2024-07-30 Thread Saleem Abdulrasool via cfe-commits
@@ -1982,7 +1982,7 @@ unsigned tools::ParseFunctionAlignment(const ToolChain &TC, return 0; if (A->getOption().matches(options::OPT_falign_functions)) -return 0; +return 4; // log2(16) compnerd wrote: This is not true. Quoting the documentation

[libcxx] [libcxxabi] [libunwind] [NFC][libc++][libc++abi][libunwind][test] Fix/unify AIX triples used in LIT tests (PR #101196)

2024-07-30 Thread Saleem Abdulrasool via cfe-commits
@@ -6,7 +6,7 @@ // //===--===// -// REQUIRES: target={{powerpc.*-ibm-aix.*}} +// REQUIRES: target={{.+}}-aix{{.*}} compnerd wrote: But then we should be able to hoist these tests out of the

[libcxx] [libcxxabi] [libunwind] [NFC][libc++][libc++abi][libunwind][test] Fix/unify AIX triples used in LIT tests (PR #101196)

2024-07-30 Thread Saleem Abdulrasool via cfe-commits
@@ -6,7 +6,7 @@ // //===--===// -// REQUIRES: target={{powerpc.*-ibm-aix.*}} +// REQUIRES: target={{.+}}-aix{{.*}} compnerd wrote: Why remove the vendor in the vendor specific directory? ht

[libcxx] [libcxxabi] [libunwind] [NFC][libc++][libc++abi][libunwind][test] Fix/unify AIX triples used in LIT tests (PR #101196)

2024-07-30 Thread Saleem Abdulrasool via cfe-commits
@@ -9,7 +9,7 @@ // Check that the PowerPC vector registers are restored properly during // unwinding. Option -mabi=vec-extabi is required to compile the test case. -// REQUIRES: target=powerpc{{(64)?}}-ibm-aix +// REQUIRES: target={{.+}}-aix{{.*}} compnerd wro

  1   2   3   4   5   6   7   8   9   10   >