[llvm] [clang] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2024-01-11 Thread Bushev Dmitry via cfe-commits
@@ -105,13 +105,34 @@ static bool isValidBaseType(QualType QTy) { if (RD->hasFlexibleArrayMember()) return false; // RD can be struct, union, class, interface or enum. -// For now, we only handle struct and class. -if (RD->isStruct() || RD->isClass()) +

[llvm] [clang] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2024-01-11 Thread Bushev Dmitry via cfe-commits
@@ -1,7 +1,7 @@ -// RUN: %clang_cc1 -triple x86_64-linux -std=c++98 %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck %s -// RUN: %clang_cc1 -triple x86_64-linux -std=c++11 %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck %s -//

[clang] [llvm] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2024-01-11 Thread Bushev Dmitry via cfe-commits
dybv-sc wrote: > Thanks for working on this! I think it would be good to split this up into > multiple distinct parts for the different improvements. > > I put up a patch to support distinct metadata for distinct pointers a while > ago, which I just moved to GH: #76261. > > The discussion on

[clang] [llvm] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2024-01-11 Thread Bushev Dmitry via cfe-commits
@@ -184,13 +205,59 @@ llvm::MDNode *CodeGenTBAA::getTypeInfoHelper(const Type *Ty) { return getChar(); // Handle pointers and references. - // TODO: Implement C++'s type "similarity" and consider dis-"similar" - // pointers distinct. - if (Ty->isPointerType() ||

[clang] [llvm] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2023-12-25 Thread Bushev Dmitry via cfe-commits
dybv-sc wrote: I made separate PR for llvm's part: https://github.com/llvm/llvm-project/pull/76356 It should me merged first, because clang's part depends on it. https://github.com/llvm/llvm-project/pull/75177 ___ cfe-commits mailing list

[llvm] [clang] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2023-12-25 Thread Bushev Dmitry via cfe-commits
dybv-sc wrote: > (As usual, please make any LLVM changes separately from Clang changes, > especially if they affect IR design.) I splitted commit into 2 parts for llvm and clang. Should I make separate PRs for them as well? https://github.com/llvm/llvm-project/pull/75177

[llvm] [clang] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2023-12-22 Thread Bushev Dmitry via cfe-commits
@@ -105,13 +105,28 @@ static bool isValidBaseType(QualType QTy) { if (RD->hasFlexibleArrayMember()) return false; // RD can be struct, union, class, interface or enum. -// For now, we only handle struct and class. -if (RD->isStruct() || RD->isClass()) +

[llvm] [clang] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2023-12-22 Thread Bushev Dmitry via cfe-commits
dybv-sc wrote: @rjmccall , I updated part of commit that handles pointers. Added comment with C/C++ standard references to explain my decisions. Could you please review it again? https://github.com/llvm/llvm-project/pull/75177 ___ cfe-commits

[clang] [llvm] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2023-12-22 Thread Bushev Dmitry via cfe-commits
@@ -216,6 +216,9 @@ ENUM_CODEGENOPT(StructReturnConvention, StructReturnConventionKind, 2, SRCK_Defa CODEGENOPT(RelaxAll , 1, 0) ///< Relax all machine code instructions. CODEGENOPT(RelaxedAliasing , 1, 0) ///< Set when -fno-strict-aliasing is enabled.

[clang] [llvm] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2023-12-22 Thread Bushev Dmitry via cfe-commits
@@ -184,13 +199,24 @@ llvm::MDNode *CodeGenTBAA::getTypeInfoHelper(const Type *Ty) { return getChar(); // Handle pointers and references. - // TODO: Implement C++'s type "similarity" and consider dis-"similar" - // pointers distinct. - if (Ty->isPointerType() ||

[llvm] [clang] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2023-12-21 Thread Bushev Dmitry via cfe-commits
@@ -4598,8 +4602,7 @@ LValue CodeGenFunction::EmitLValueForField(LValue base, if (base.getTBAAInfo().isMayAlias() || rec->hasAttr() || FieldType->isVectorType()) { FieldTBAAInfo = TBAAAccessInfo::getMayAliasInfo(); - } else if (rec->isUnion()) { -// TODO:

[clang] [llvm] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2023-12-21 Thread Bushev Dmitry via cfe-commits
@@ -184,13 +199,24 @@ llvm::MDNode *CodeGenTBAA::getTypeInfoHelper(const Type *Ty) { return getChar(); // Handle pointers and references. - // TODO: Implement C++'s type "similarity" and consider dis-"similar" - // pointers distinct. - if (Ty->isPointerType() ||

[clang] [llvm] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2023-12-20 Thread Bushev Dmitry via cfe-commits
@@ -1,7 +1,7 @@ -// RUN: %clang_cc1 -triple x86_64-linux -std=c++98 %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck %s dybv-sc wrote: I am sure that level 3 optimization should cut out all stack manipulation here leaving only one

[clang] [llvm] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2023-12-19 Thread Bushev Dmitry via cfe-commits
https://github.com/dybv-sc edited https://github.com/llvm/llvm-project/pull/75177 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Clang][IR] add TBAA metadata on pointer, union and array types. (PR #75177)

2023-12-19 Thread Bushev Dmitry via cfe-commits
@@ -1,7 +1,7 @@ -// RUN: %clang_cc1 -triple x86_64-linux -std=c++98 %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck %s dybv-sc wrote: Yes, The matter is that if no llvm passes are run, IR is unoptimized and contains extra load and

[clang] [clang] Add information about lld presence in RISCVToolchain. (PR #68904)

2023-11-13 Thread Bushev Dmitry via cfe-commits
https://github.com/dybv-sc updated https://github.com/llvm/llvm-project/pull/68904 >From 3c33c4b902a41a414769be7079e8847e41fb5912 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 9 Oct 2023 19:49:09 +0300 Subject: [PATCH] [clang] Add information about lld presence in RISCVToolchain.

[clang] [clang] Add information about lld presence in RISCVToolchain. (PR #68904)

2023-10-20 Thread Bushev Dmitry via cfe-commits
dybv-sc wrote: @MaskRay, could you please look into this? https://github.com/llvm/llvm-project/pull/68904 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Add information about lld presence in RISCVToolchain. (PR #68904)

2023-10-16 Thread Bushev Dmitry via cfe-commits
https://github.com/dybv-sc updated https://github.com/llvm/llvm-project/pull/68904 >From d1ceb3258b0ade810ebdcb3bf2c5727026bef17f Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 9 Oct 2023 19:49:09 +0300 Subject: [PATCH] [clang] Add information about lld presence in RISCVToolchain.

[clang] [clang] Add information about lld presence in RISCVToolchain. (PR #68904)

2023-10-16 Thread Bushev Dmitry via cfe-commits
https://github.com/dybv-sc updated https://github.com/llvm/llvm-project/pull/68904 >From d61eacc29e0b70dc50ee7eeb96446b7b66dc2e1d Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 9 Oct 2023 19:49:09 +0300 Subject: [PATCH] [clang] Add information about lld presence in RISCVToolchain.

[clang] [clang] Add information about lld presence in RISCVToolchain. (PR #68904)

2023-10-16 Thread Bushev Dmitry via cfe-commits
https://github.com/dybv-sc updated https://github.com/llvm/llvm-project/pull/68904 >From 51a150e7abd2ff88261f82fc4a4c799f2a1fb11d Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 9 Oct 2023 19:49:09 +0300 Subject: [PATCH] [clang] Add information about lld presence in RISCVToolchain.

[clang] [clang] Add information about lld presence in RISCVToolchain. (PR #68904)

2023-10-16 Thread Bushev Dmitry via cfe-commits
https://github.com/dybv-sc updated https://github.com/llvm/llvm-project/pull/68904 >From d66ffe242716560408bd314a9725bb49556992e0 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 9 Oct 2023 19:49:09 +0300 Subject: [PATCH] [clang] Add information about lld presence in RISCVToolchain.

[clang] [clang] Add information about lld presence in RISCVToolchain. (PR #68904)

2023-10-13 Thread Bushev Dmitry via cfe-commits
https://github.com/dybv-sc updated https://github.com/llvm/llvm-project/pull/68904 >From 0802a4170b6eddd1ae5bd532f90274794b0e00c4 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 9 Oct 2023 19:49:09 +0300 Subject: [PATCH] [clang] Add information about lld presence in RISCVToolchain.

[clang] [clang] Add information about lld presence in RISCVToolchain. (PR #68904)

2023-10-13 Thread Bushev Dmitry via cfe-commits
dybv-sc wrote: Encountered code formatting check failure seems to be not reproducible locally: ``` $ git-clang-format --diff 7025ff6fa3dfe2ce8d3d7fcb0ec9de9a357d2c6f 087d22970d1d2eea6dd0dd79eedd49ed69bc49c3 -- clang/lib/Driver/ToolChains/RISCVToolchain.cpp

[clang] [clang] Add information about lld presence in RISCVToolchain. (PR #68904)

2023-10-13 Thread Bushev Dmitry via cfe-commits
https://github.com/dybv-sc updated https://github.com/llvm/llvm-project/pull/68904 >From 087d22970d1d2eea6dd0dd79eedd49ed69bc49c3 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 9 Oct 2023 19:49:09 +0300 Subject: [PATCH] [clang] Add information about lld presence in RISCVToolchain.

[clang] [clang] Add information about lld presence in RISCVToolchain. (PR #68904)

2023-10-13 Thread Bushev Dmitry via cfe-commits
https://github.com/dybv-sc updated https://github.com/llvm/llvm-project/pull/68904 >From eca69cd54e9f2f68d89787376c603164c2508da1 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 9 Oct 2023 19:49:09 +0300 Subject: [PATCH] [clang] Add information about lld presence in RISCVToolchain.

[clang] [clang] Add information about lld presence in RISCVToolchain. (PR #68904)

2023-10-12 Thread Bushev Dmitry via cfe-commits
https://github.com/dybv-sc created https://github.com/llvm/llvm-project/pull/68904 When compiling for target riscv64/32-uknown-elf clang assumes that it do not use lld linker even if explicitly told ('-fuse-ld=lld'). >From 8512bbcee108751776591160797af32885377587 Mon Sep 17 00:00:00 2001