[clang] [Clang] Implement C++26 Attributes for Structured Bindings (P0609R3) (PR #89906)

2024-04-29 Thread Kirill Stoimenov via cfe-commits

kstoimenov wrote:

This is breaking a sanitizer build bot because it is causing a memory leak: 
https://lab.llvm.org/buildbot/#/builders/168/builds/20146. 

@cor3ntin could you please take a look? 

Thanks! 



https://github.com/llvm/llvm-project/pull/89906
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang] Add optional pass to remove UBSAN traps using PGO (PR #84214)

2024-03-07 Thread Kirill Stoimenov via cfe-commits

https://github.com/kstoimenov approved this pull request.


https://github.com/llvm/llvm-project/pull/84214
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libcxx] [llvm] [clang] [compiler-rt] [mlir] [asan] Enable StackSafetyAnalysis by default (PR #77210)

2024-01-10 Thread Kirill Stoimenov via cfe-commits

https://github.com/kstoimenov approved this pull request.


https://github.com/llvm/llvm-project/pull/77210
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [llvm] [mlir] [compiler-rt] [lld] [sanitizer] Select non-internal frames in ReportErrorSummary (PR #77406)

2024-01-09 Thread Kirill Stoimenov via cfe-commits

https://github.com/kstoimenov approved this pull request.


https://github.com/llvm/llvm-project/pull/77406
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[mlir] [llvm] [compiler-rt] [clang-tools-extra] [libcxx] [clang] [NFC][sanitizer] Move SymbolizedStackHolder into sanitizer_common (PR #77152)

2024-01-05 Thread Kirill Stoimenov via cfe-commits

https://github.com/kstoimenov approved this pull request.


https://github.com/llvm/llvm-project/pull/77152
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libcxx] [flang] [libc] [clang-tools-extra] [lld] [compiler-rt] [clang] [llvm] [hwasan] Workaround unsupported AssignmentTrackingPass (PR #76547)

2024-01-02 Thread Kirill Stoimenov via cfe-commits

https://github.com/kstoimenov approved this pull request.


https://github.com/llvm/llvm-project/pull/76547
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [libcxx] [llvm] [mlir] [compiler-rt] [sanitizers] Optimize locking StackDepotBase for fork (PR #76280)

2023-12-26 Thread Kirill Stoimenov via cfe-commits

https://github.com/kstoimenov approved this pull request.


https://github.com/llvm/llvm-project/pull/76280
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] b6d0ee0 - Revert HWASAN failure (#74163)

2023-12-04 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2023-12-02T04:39:14Z
New Revision: b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b

URL: 
https://github.com/llvm/llvm-project/commit/b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b
DIFF: 
https://github.com/llvm/llvm-project/commit/b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b.diff

LOG: Revert HWASAN failure (#74163)

This is the failure:
https://lab.llvm.org/buildbot/#/builders/236/builds/7728/steps/10/logs/stdio

This started with eef8e1d206dc01c081a0ca29b7f9e0c39d33446e, but because
there were a couple of patches that came after that I had to revert all
3 of them because of merge conflicts.

Added: 


Modified: 
clang/test/Driver/aarch64-v95a.c
llvm/include/llvm/TargetParser/AArch64TargetParser.h
llvm/lib/Target/AArch64/AArch64.td
llvm/lib/Target/AArch64/AArch64InstrFormats.td
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/AArch64SchedA64FX.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/MC/AArch64/basic-a64-diagnostics.s
llvm/test/MC/AArch64/basic-a64-instructions.s
llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
llvm/unittests/TargetParser/TargetParserTest.cpp

Removed: 
llvm/test/MC/AArch64/SVE/armv9.5a-cpa.s
llvm/test/MC/AArch64/armv9.5a-cpa.s
llvm/test/MC/Disassembler/AArch64/armv9.5a-cpa.txt



diff  --git a/clang/test/Driver/aarch64-v95a.c 
b/clang/test/Driver/aarch64-v95a.c
index 366cade86a9fb..6044a4f155db0 100644
--- a/clang/test/Driver/aarch64-v95a.c
+++ b/clang/test/Driver/aarch64-v95a.c
@@ -13,8 +13,3 @@
 // RUN: %clang -target aarch64_be -mbig-endian -march=armv9.5-a -### -c %s 
2>&1 | FileCheck -check-prefix=GENERICV95A-BE %s
 // GENERICV95A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" 
"generic" "-target-feature" "+neon" "-target-feature" "+v9.5a"
 
-// = Features supported on aarch64 =
-
-// RUN: %clang -target aarch64 -march=armv9.5a+cpa -### -c %s 2>&1 | FileCheck 
-check-prefix=V95A-CPA %s
-// RUN: %clang -target aarch64 -march=armv9.5-a+cpa -### -c %s 2>&1 | 
FileCheck -check-prefix=V95A-CPA %s
-// V95A-CPA: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "generic" 
"-target-feature" "+neon" "-target-feature" "+v9.5a" "-target-feature" "+cpa"

diff  --git a/llvm/include/llvm/TargetParser/AArch64TargetParser.h 
b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
index 0711f013a3779..17cafd146b0e7 100644
--- a/llvm/include/llvm/TargetParser/AArch64TargetParser.h
+++ b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
@@ -173,7 +173,6 @@ enum ArchExtKind : unsigned {
   AEK_SMEF8F16 =  69, // FEAT_SME_F8F16
   AEK_SMEF8F32 =  70, // FEAT_SME_F8F32
   AEK_SMEFA64 =   71, // FEAT_SME_FA64
-  AEK_CPA =   72, // FEAT_CPA
   AEK_NUM_EXTENSIONS
 };
 using ExtensionBitset = Bitset;
@@ -296,7 +295,6 @@ inline constexpr ExtensionInfo Extensions[] = {
 {"sme-f8f16", AArch64::AEK_SMEF8F16, "+sme-f8f16", "-sme-f8f16", 
FEAT_INIT, "+sme2,+fp8", 0},
 {"sme-f8f32", AArch64::AEK_SMEF8F32, "+sme-f8f32", "-sme-f8f32", 
FEAT_INIT, "+sme2,+fp8", 0},
 {"sme-fa64",  AArch64::AEK_SMEFA64,  "+sme-fa64", "-sme-fa64",  FEAT_INIT, 
"", 0},
-{"cpa", AArch64::AEK_CPA, "+cpa", "-cpa", FEAT_INIT, "", 0},
 // Special cases
 {"none", AArch64::AEK_NONE, {}, {}, FEAT_INIT, "", 
ExtensionInfo::MaxFMVPriority},
 };
@@ -380,8 +378,7 @@ inline constexpr ArchInfo ARMV9_3A  = { VersionTuple{9, 3}, 
AProfile, "armv9.3-a
 
AArch64::ExtensionBitset({AArch64::AEK_MOPS, AArch64::AEK_HBC}))};
 inline constexpr ArchInfo ARMV9_4A  = { VersionTuple{9, 4}, AProfile, 
"armv9.4-a", "+v9.4a", (ARMV9_3A.DefaultExts |
 
AArch64::ExtensionBitset({AArch64::AEK_SPECRES2, AArch64::AEK_CSSC, 
AArch64::AEK_RASv2}))};
-inline constexpr ArchInfo ARMV9_5A  = { VersionTuple{9, 5}, AProfile, 
"armv9.5-a", "+v9.5a", (ARMV9_4A.DefaultExts |
-
AArch64::ExtensionBitset({AArch64::AEK_CPA}))};
+inline constexpr ArchInfo ARMV9_5A  = { VersionTuple{9, 5}, AProfile, 
"armv9.5-a", "+v9.5a", (ARMV9_4A.DefaultExts)};
 // For v8-R, we do not enable crypto and align with GCC that enables a more 
minimal set of optional architecture extensions.
 inline constexpr ArchInfo ARMV8R= { VersionTuple{8, 0}, RProfile, 
"armv8-r", "+v8r", (ARMV8_5A.DefaultExts |
 
AArch64::ExtensionBitset({AArch64::AEK_SSBS,

diff  --git a/llvm/lib/Target/AArch64/AArch64.td 
b/llvm/lib/Target/AArch64/AArch64.td
index d1dbced2466ea..ff256c9a8ccdf 100644
--- a/llvm/lib/Target/AArch64/AArch64.td

[clang] b6d0ee0 - Revert HWASAN failure (#74163)

2023-12-04 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2023-12-02T04:39:14Z
New Revision: b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b

URL: 
https://github.com/llvm/llvm-project/commit/b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b
DIFF: 
https://github.com/llvm/llvm-project/commit/b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b.diff

LOG: Revert HWASAN failure (#74163)

This is the failure:
https://lab.llvm.org/buildbot/#/builders/236/builds/7728/steps/10/logs/stdio

This started with eef8e1d206dc01c081a0ca29b7f9e0c39d33446e, but because
there were a couple of patches that came after that I had to revert all
3 of them because of merge conflicts.

Added: 


Modified: 
clang/test/Driver/aarch64-v95a.c
llvm/include/llvm/TargetParser/AArch64TargetParser.h
llvm/lib/Target/AArch64/AArch64.td
llvm/lib/Target/AArch64/AArch64InstrFormats.td
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/AArch64SchedA64FX.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/MC/AArch64/basic-a64-diagnostics.s
llvm/test/MC/AArch64/basic-a64-instructions.s
llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
llvm/unittests/TargetParser/TargetParserTest.cpp

Removed: 
llvm/test/MC/AArch64/SVE/armv9.5a-cpa.s
llvm/test/MC/AArch64/armv9.5a-cpa.s
llvm/test/MC/Disassembler/AArch64/armv9.5a-cpa.txt



diff  --git a/clang/test/Driver/aarch64-v95a.c 
b/clang/test/Driver/aarch64-v95a.c
index 366cade86a9fb..6044a4f155db0 100644
--- a/clang/test/Driver/aarch64-v95a.c
+++ b/clang/test/Driver/aarch64-v95a.c
@@ -13,8 +13,3 @@
 // RUN: %clang -target aarch64_be -mbig-endian -march=armv9.5-a -### -c %s 
2>&1 | FileCheck -check-prefix=GENERICV95A-BE %s
 // GENERICV95A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" 
"generic" "-target-feature" "+neon" "-target-feature" "+v9.5a"
 
-// = Features supported on aarch64 =
-
-// RUN: %clang -target aarch64 -march=armv9.5a+cpa -### -c %s 2>&1 | FileCheck 
-check-prefix=V95A-CPA %s
-// RUN: %clang -target aarch64 -march=armv9.5-a+cpa -### -c %s 2>&1 | 
FileCheck -check-prefix=V95A-CPA %s
-// V95A-CPA: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "generic" 
"-target-feature" "+neon" "-target-feature" "+v9.5a" "-target-feature" "+cpa"

diff  --git a/llvm/include/llvm/TargetParser/AArch64TargetParser.h 
b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
index 0711f013a3779..17cafd146b0e7 100644
--- a/llvm/include/llvm/TargetParser/AArch64TargetParser.h
+++ b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
@@ -173,7 +173,6 @@ enum ArchExtKind : unsigned {
   AEK_SMEF8F16 =  69, // FEAT_SME_F8F16
   AEK_SMEF8F32 =  70, // FEAT_SME_F8F32
   AEK_SMEFA64 =   71, // FEAT_SME_FA64
-  AEK_CPA =   72, // FEAT_CPA
   AEK_NUM_EXTENSIONS
 };
 using ExtensionBitset = Bitset;
@@ -296,7 +295,6 @@ inline constexpr ExtensionInfo Extensions[] = {
 {"sme-f8f16", AArch64::AEK_SMEF8F16, "+sme-f8f16", "-sme-f8f16", 
FEAT_INIT, "+sme2,+fp8", 0},
 {"sme-f8f32", AArch64::AEK_SMEF8F32, "+sme-f8f32", "-sme-f8f32", 
FEAT_INIT, "+sme2,+fp8", 0},
 {"sme-fa64",  AArch64::AEK_SMEFA64,  "+sme-fa64", "-sme-fa64",  FEAT_INIT, 
"", 0},
-{"cpa", AArch64::AEK_CPA, "+cpa", "-cpa", FEAT_INIT, "", 0},
 // Special cases
 {"none", AArch64::AEK_NONE, {}, {}, FEAT_INIT, "", 
ExtensionInfo::MaxFMVPriority},
 };
@@ -380,8 +378,7 @@ inline constexpr ArchInfo ARMV9_3A  = { VersionTuple{9, 3}, 
AProfile, "armv9.3-a
 
AArch64::ExtensionBitset({AArch64::AEK_MOPS, AArch64::AEK_HBC}))};
 inline constexpr ArchInfo ARMV9_4A  = { VersionTuple{9, 4}, AProfile, 
"armv9.4-a", "+v9.4a", (ARMV9_3A.DefaultExts |
 
AArch64::ExtensionBitset({AArch64::AEK_SPECRES2, AArch64::AEK_CSSC, 
AArch64::AEK_RASv2}))};
-inline constexpr ArchInfo ARMV9_5A  = { VersionTuple{9, 5}, AProfile, 
"armv9.5-a", "+v9.5a", (ARMV9_4A.DefaultExts |
-
AArch64::ExtensionBitset({AArch64::AEK_CPA}))};
+inline constexpr ArchInfo ARMV9_5A  = { VersionTuple{9, 5}, AProfile, 
"armv9.5-a", "+v9.5a", (ARMV9_4A.DefaultExts)};
 // For v8-R, we do not enable crypto and align with GCC that enables a more 
minimal set of optional architecture extensions.
 inline constexpr ArchInfo ARMV8R= { VersionTuple{8, 0}, RProfile, 
"armv8-r", "+v8r", (ARMV8_5A.DefaultExts |
 
AArch64::ExtensionBitset({AArch64::AEK_SSBS,

diff  --git a/llvm/lib/Target/AArch64/AArch64.td 
b/llvm/lib/Target/AArch64/AArch64.td
index d1dbced2466ea..ff256c9a8ccdf 100644
--- a/llvm/lib/Target/AArch64/AArch64.td

[clang] b6d0ee0 - Revert HWASAN failure (#74163)

2023-12-04 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2023-12-02T04:39:14Z
New Revision: b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b

URL: 
https://github.com/llvm/llvm-project/commit/b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b
DIFF: 
https://github.com/llvm/llvm-project/commit/b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b.diff

LOG: Revert HWASAN failure (#74163)

This is the failure:
https://lab.llvm.org/buildbot/#/builders/236/builds/7728/steps/10/logs/stdio

This started with eef8e1d206dc01c081a0ca29b7f9e0c39d33446e, but because
there were a couple of patches that came after that I had to revert all
3 of them because of merge conflicts.

Added: 


Modified: 
clang/test/Driver/aarch64-v95a.c
llvm/include/llvm/TargetParser/AArch64TargetParser.h
llvm/lib/Target/AArch64/AArch64.td
llvm/lib/Target/AArch64/AArch64InstrFormats.td
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/AArch64SchedA64FX.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/MC/AArch64/basic-a64-diagnostics.s
llvm/test/MC/AArch64/basic-a64-instructions.s
llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
llvm/unittests/TargetParser/TargetParserTest.cpp

Removed: 
llvm/test/MC/AArch64/SVE/armv9.5a-cpa.s
llvm/test/MC/AArch64/armv9.5a-cpa.s
llvm/test/MC/Disassembler/AArch64/armv9.5a-cpa.txt



diff  --git a/clang/test/Driver/aarch64-v95a.c 
b/clang/test/Driver/aarch64-v95a.c
index 366cade86a9fb..6044a4f155db0 100644
--- a/clang/test/Driver/aarch64-v95a.c
+++ b/clang/test/Driver/aarch64-v95a.c
@@ -13,8 +13,3 @@
 // RUN: %clang -target aarch64_be -mbig-endian -march=armv9.5-a -### -c %s 
2>&1 | FileCheck -check-prefix=GENERICV95A-BE %s
 // GENERICV95A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" 
"generic" "-target-feature" "+neon" "-target-feature" "+v9.5a"
 
-// = Features supported on aarch64 =
-
-// RUN: %clang -target aarch64 -march=armv9.5a+cpa -### -c %s 2>&1 | FileCheck 
-check-prefix=V95A-CPA %s
-// RUN: %clang -target aarch64 -march=armv9.5-a+cpa -### -c %s 2>&1 | 
FileCheck -check-prefix=V95A-CPA %s
-// V95A-CPA: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "generic" 
"-target-feature" "+neon" "-target-feature" "+v9.5a" "-target-feature" "+cpa"

diff  --git a/llvm/include/llvm/TargetParser/AArch64TargetParser.h 
b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
index 0711f013a3779..17cafd146b0e7 100644
--- a/llvm/include/llvm/TargetParser/AArch64TargetParser.h
+++ b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
@@ -173,7 +173,6 @@ enum ArchExtKind : unsigned {
   AEK_SMEF8F16 =  69, // FEAT_SME_F8F16
   AEK_SMEF8F32 =  70, // FEAT_SME_F8F32
   AEK_SMEFA64 =   71, // FEAT_SME_FA64
-  AEK_CPA =   72, // FEAT_CPA
   AEK_NUM_EXTENSIONS
 };
 using ExtensionBitset = Bitset;
@@ -296,7 +295,6 @@ inline constexpr ExtensionInfo Extensions[] = {
 {"sme-f8f16", AArch64::AEK_SMEF8F16, "+sme-f8f16", "-sme-f8f16", 
FEAT_INIT, "+sme2,+fp8", 0},
 {"sme-f8f32", AArch64::AEK_SMEF8F32, "+sme-f8f32", "-sme-f8f32", 
FEAT_INIT, "+sme2,+fp8", 0},
 {"sme-fa64",  AArch64::AEK_SMEFA64,  "+sme-fa64", "-sme-fa64",  FEAT_INIT, 
"", 0},
-{"cpa", AArch64::AEK_CPA, "+cpa", "-cpa", FEAT_INIT, "", 0},
 // Special cases
 {"none", AArch64::AEK_NONE, {}, {}, FEAT_INIT, "", 
ExtensionInfo::MaxFMVPriority},
 };
@@ -380,8 +378,7 @@ inline constexpr ArchInfo ARMV9_3A  = { VersionTuple{9, 3}, 
AProfile, "armv9.3-a
 
AArch64::ExtensionBitset({AArch64::AEK_MOPS, AArch64::AEK_HBC}))};
 inline constexpr ArchInfo ARMV9_4A  = { VersionTuple{9, 4}, AProfile, 
"armv9.4-a", "+v9.4a", (ARMV9_3A.DefaultExts |
 
AArch64::ExtensionBitset({AArch64::AEK_SPECRES2, AArch64::AEK_CSSC, 
AArch64::AEK_RASv2}))};
-inline constexpr ArchInfo ARMV9_5A  = { VersionTuple{9, 5}, AProfile, 
"armv9.5-a", "+v9.5a", (ARMV9_4A.DefaultExts |
-
AArch64::ExtensionBitset({AArch64::AEK_CPA}))};
+inline constexpr ArchInfo ARMV9_5A  = { VersionTuple{9, 5}, AProfile, 
"armv9.5-a", "+v9.5a", (ARMV9_4A.DefaultExts)};
 // For v8-R, we do not enable crypto and align with GCC that enables a more 
minimal set of optional architecture extensions.
 inline constexpr ArchInfo ARMV8R= { VersionTuple{8, 0}, RProfile, 
"armv8-r", "+v8r", (ARMV8_5A.DefaultExts |
 
AArch64::ExtensionBitset({AArch64::AEK_SSBS,

diff  --git a/llvm/lib/Target/AArch64/AArch64.td 
b/llvm/lib/Target/AArch64/AArch64.td
index d1dbced2466ea..ff256c9a8ccdf 100644
--- a/llvm/lib/Target/AArch64/AArch64.td

[llvm] [clang] Revert HWASAN failure (#74163) (PR #74180)

2023-12-01 Thread Kirill Stoimenov via cfe-commits

kstoimenov wrote:

I pushed it manually: b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b. 

https://github.com/llvm/llvm-project/pull/74180
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[llvm] [clang] Revert HWASAN failure (#74163) (PR #74180)

2023-12-01 Thread Kirill Stoimenov via cfe-commits

https://github.com/kstoimenov closed 
https://github.com/llvm/llvm-project/pull/74180
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] b6d0ee0 - Revert HWASAN failure (#74163)

2023-12-01 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2023-12-02T04:39:14Z
New Revision: b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b

URL: 
https://github.com/llvm/llvm-project/commit/b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b
DIFF: 
https://github.com/llvm/llvm-project/commit/b6d0ee056d247e1ecfd4ecd3f97fb2d31740d79b.diff

LOG: Revert HWASAN failure (#74163)

This is the failure:
https://lab.llvm.org/buildbot/#/builders/236/builds/7728/steps/10/logs/stdio

This started with eef8e1d206dc01c081a0ca29b7f9e0c39d33446e, but because
there were a couple of patches that came after that I had to revert all
3 of them because of merge conflicts.

Added: 


Modified: 
clang/test/Driver/aarch64-v95a.c
llvm/include/llvm/TargetParser/AArch64TargetParser.h
llvm/lib/Target/AArch64/AArch64.td
llvm/lib/Target/AArch64/AArch64InstrFormats.td
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/AArch64SchedA64FX.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/MC/AArch64/basic-a64-diagnostics.s
llvm/test/MC/AArch64/basic-a64-instructions.s
llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
llvm/unittests/TargetParser/TargetParserTest.cpp

Removed: 
llvm/test/MC/AArch64/SVE/armv9.5a-cpa.s
llvm/test/MC/AArch64/armv9.5a-cpa.s
llvm/test/MC/Disassembler/AArch64/armv9.5a-cpa.txt



diff  --git a/clang/test/Driver/aarch64-v95a.c 
b/clang/test/Driver/aarch64-v95a.c
index 366cade86a9fb71..6044a4f155db02c 100644
--- a/clang/test/Driver/aarch64-v95a.c
+++ b/clang/test/Driver/aarch64-v95a.c
@@ -13,8 +13,3 @@
 // RUN: %clang -target aarch64_be -mbig-endian -march=armv9.5-a -### -c %s 
2>&1 | FileCheck -check-prefix=GENERICV95A-BE %s
 // GENERICV95A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" 
"generic" "-target-feature" "+neon" "-target-feature" "+v9.5a"
 
-// = Features supported on aarch64 =
-
-// RUN: %clang -target aarch64 -march=armv9.5a+cpa -### -c %s 2>&1 | FileCheck 
-check-prefix=V95A-CPA %s
-// RUN: %clang -target aarch64 -march=armv9.5-a+cpa -### -c %s 2>&1 | 
FileCheck -check-prefix=V95A-CPA %s
-// V95A-CPA: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "generic" 
"-target-feature" "+neon" "-target-feature" "+v9.5a" "-target-feature" "+cpa"

diff  --git a/llvm/include/llvm/TargetParser/AArch64TargetParser.h 
b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
index 0711f013a377909..17cafd146b0e75d 100644
--- a/llvm/include/llvm/TargetParser/AArch64TargetParser.h
+++ b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
@@ -173,7 +173,6 @@ enum ArchExtKind : unsigned {
   AEK_SMEF8F16 =  69, // FEAT_SME_F8F16
   AEK_SMEF8F32 =  70, // FEAT_SME_F8F32
   AEK_SMEFA64 =   71, // FEAT_SME_FA64
-  AEK_CPA =   72, // FEAT_CPA
   AEK_NUM_EXTENSIONS
 };
 using ExtensionBitset = Bitset;
@@ -296,7 +295,6 @@ inline constexpr ExtensionInfo Extensions[] = {
 {"sme-f8f16", AArch64::AEK_SMEF8F16, "+sme-f8f16", "-sme-f8f16", 
FEAT_INIT, "+sme2,+fp8", 0},
 {"sme-f8f32", AArch64::AEK_SMEF8F32, "+sme-f8f32", "-sme-f8f32", 
FEAT_INIT, "+sme2,+fp8", 0},
 {"sme-fa64",  AArch64::AEK_SMEFA64,  "+sme-fa64", "-sme-fa64",  FEAT_INIT, 
"", 0},
-{"cpa", AArch64::AEK_CPA, "+cpa", "-cpa", FEAT_INIT, "", 0},
 // Special cases
 {"none", AArch64::AEK_NONE, {}, {}, FEAT_INIT, "", 
ExtensionInfo::MaxFMVPriority},
 };
@@ -380,8 +378,7 @@ inline constexpr ArchInfo ARMV9_3A  = { VersionTuple{9, 3}, 
AProfile, "armv9.3-a
 
AArch64::ExtensionBitset({AArch64::AEK_MOPS, AArch64::AEK_HBC}))};
 inline constexpr ArchInfo ARMV9_4A  = { VersionTuple{9, 4}, AProfile, 
"armv9.4-a", "+v9.4a", (ARMV9_3A.DefaultExts |
 
AArch64::ExtensionBitset({AArch64::AEK_SPECRES2, AArch64::AEK_CSSC, 
AArch64::AEK_RASv2}))};
-inline constexpr ArchInfo ARMV9_5A  = { VersionTuple{9, 5}, AProfile, 
"armv9.5-a", "+v9.5a", (ARMV9_4A.DefaultExts |
-
AArch64::ExtensionBitset({AArch64::AEK_CPA}))};
+inline constexpr ArchInfo ARMV9_5A  = { VersionTuple{9, 5}, AProfile, 
"armv9.5-a", "+v9.5a", (ARMV9_4A.DefaultExts)};
 // For v8-R, we do not enable crypto and align with GCC that enables a more 
minimal set of optional architecture extensions.
 inline constexpr ArchInfo ARMV8R= { VersionTuple{8, 0}, RProfile, 
"armv8-r", "+v8r", (ARMV8_5A.DefaultExts |
 
AArch64::ExtensionBitset({AArch64::AEK_SSBS,

diff  --git a/llvm/lib/Target/AArch64/AArch64.td 
b/llvm/lib/Target/AArch64/AArch64.td
index d1dbced2466eae3..ff256c9a8ccdf46 100644
--- 

[llvm] [clang] Revert HWASAN failure (#74163) (PR #74180)

2023-12-01 Thread Kirill Stoimenov via cfe-commits

https://github.com/kstoimenov created 
https://github.com/llvm/llvm-project/pull/74180

This is the failure:
https://lab.llvm.org/buildbot/#/builders/236/builds/7728/steps/10/logs/stdio

This started with eef8e1d206dc01c081a0ca29b7f9e0c39d33446e, but because there 
were a couple of patches that came after that I had to revert all 3 of them 
because of merge conflicts.

>From ef876c72f3d828055ce58d0f22ec40c7468bc6c1 Mon Sep 17 00:00:00 2001
From: Kirill Stoimenov <87100199+kstoime...@users.noreply.github.com>
Date: Fri, 1 Dec 2023 19:26:46 -0800
Subject: [PATCH] Revert HWASAN failure (#74163)

This is the failure:
https://lab.llvm.org/buildbot/#/builders/236/builds/7728/steps/10/logs/stdio

This started with eef8e1d206dc01c081a0ca29b7f9e0c39d33446e, but because
there were a couple of patches that came after that I had to revert all
3 of them because of merge conflicts.
---
 clang/test/Driver/aarch64-v95a.c  |  5 --
 .../llvm/TargetParser/AArch64TargetParser.h   |  5 +-
 llvm/lib/Target/AArch64/AArch64.td|  5 +-
 .../lib/Target/AArch64/AArch64InstrFormats.td | 52 --
 llvm/lib/Target/AArch64/AArch64InstrInfo.td   | 19 -
 .../lib/Target/AArch64/AArch64SVEInstrInfo.td | 21 --
 llvm/lib/Target/AArch64/AArch64SchedA64FX.td  |  2 +-
 .../Target/AArch64/AArch64SchedNeoverseN2.td  |  2 +-
 .../Target/AArch64/AArch64SchedNeoverseV1.td  |  2 +-
 .../Target/AArch64/AArch64SchedNeoverseV2.td  |  2 +-
 .../AArch64/AsmParser/AArch64AsmParser.cpp| 18 -
 llvm/lib/Target/AArch64/SVEInstrFormats.td| 31 -
 llvm/test/MC/AArch64/SVE/armv9.5a-cpa.s   | 69 ---
 llvm/test/MC/AArch64/armv9.5a-cpa.s   | 50 --
 llvm/test/MC/AArch64/basic-a64-diagnostics.s  |  8 ---
 llvm/test/MC/AArch64/basic-a64-instructions.s |  4 --
 .../MC/Disassembler/AArch64/armv9.5a-cpa.txt  | 42 ---
 .../AArch64/basic-a64-instructions.txt|  2 -
 .../TargetParser/TargetParserTest.cpp |  4 +-
 19 files changed, 7 insertions(+), 336 deletions(-)
 delete mode 100644 llvm/test/MC/AArch64/SVE/armv9.5a-cpa.s
 delete mode 100644 llvm/test/MC/AArch64/armv9.5a-cpa.s
 delete mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.5a-cpa.txt

diff --git a/clang/test/Driver/aarch64-v95a.c b/clang/test/Driver/aarch64-v95a.c
index 366cade86a9fb71..6044a4f155db02c 100644
--- a/clang/test/Driver/aarch64-v95a.c
+++ b/clang/test/Driver/aarch64-v95a.c
@@ -13,8 +13,3 @@
 // RUN: %clang -target aarch64_be -mbig-endian -march=armv9.5-a -### -c %s 
2>&1 | FileCheck -check-prefix=GENERICV95A-BE %s
 // GENERICV95A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" 
"generic" "-target-feature" "+neon" "-target-feature" "+v9.5a"
 
-// = Features supported on aarch64 =
-
-// RUN: %clang -target aarch64 -march=armv9.5a+cpa -### -c %s 2>&1 | FileCheck 
-check-prefix=V95A-CPA %s
-// RUN: %clang -target aarch64 -march=armv9.5-a+cpa -### -c %s 2>&1 | 
FileCheck -check-prefix=V95A-CPA %s
-// V95A-CPA: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "generic" 
"-target-feature" "+neon" "-target-feature" "+v9.5a" "-target-feature" "+cpa"
diff --git a/llvm/include/llvm/TargetParser/AArch64TargetParser.h 
b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
index 0711f013a377909..17cafd146b0e75d 100644
--- a/llvm/include/llvm/TargetParser/AArch64TargetParser.h
+++ b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
@@ -173,7 +173,6 @@ enum ArchExtKind : unsigned {
   AEK_SMEF8F16 =  69, // FEAT_SME_F8F16
   AEK_SMEF8F32 =  70, // FEAT_SME_F8F32
   AEK_SMEFA64 =   71, // FEAT_SME_FA64
-  AEK_CPA =   72, // FEAT_CPA
   AEK_NUM_EXTENSIONS
 };
 using ExtensionBitset = Bitset;
@@ -296,7 +295,6 @@ inline constexpr ExtensionInfo Extensions[] = {
 {"sme-f8f16", AArch64::AEK_SMEF8F16, "+sme-f8f16", "-sme-f8f16", 
FEAT_INIT, "+sme2,+fp8", 0},
 {"sme-f8f32", AArch64::AEK_SMEF8F32, "+sme-f8f32", "-sme-f8f32", 
FEAT_INIT, "+sme2,+fp8", 0},
 {"sme-fa64",  AArch64::AEK_SMEFA64,  "+sme-fa64", "-sme-fa64",  FEAT_INIT, 
"", 0},
-{"cpa", AArch64::AEK_CPA, "+cpa", "-cpa", FEAT_INIT, "", 0},
 // Special cases
 {"none", AArch64::AEK_NONE, {}, {}, FEAT_INIT, "", 
ExtensionInfo::MaxFMVPriority},
 };
@@ -380,8 +378,7 @@ inline constexpr ArchInfo ARMV9_3A  = { VersionTuple{9, 3}, 
AProfile, "armv9.3-a
 
AArch64::ExtensionBitset({AArch64::AEK_MOPS, AArch64::AEK_HBC}))};
 inline constexpr ArchInfo ARMV9_4A  = { VersionTuple{9, 4}, AProfile, 
"armv9.4-a", "+v9.4a", (ARMV9_3A.DefaultExts |
 
AArch64::ExtensionBitset({AArch64::AEK_SPECRES2, AArch64::AEK_CSSC, 
AArch64::AEK_RASv2}))};
-inline constexpr ArchInfo ARMV9_5A  = { VersionTuple{9, 5}, AProfile, 
"armv9.5-a", "+v9.5a", (ARMV9_4A.DefaultExts |
-
AArch64::ExtensionBitset({AArch64::AEK_CPA}))};
+inline constexpr ArchInfo ARMV9_5A  = { VersionTuple{9, 5}, 

[clang] 7ae1b76 - Fix ARM Sanitizer build

2023-11-30 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2023-12-01T00:32:26Z
New Revision: 7ae1b76ed7271b2e86a3cda72d9e1fc63f4e5c48

URL: 
https://github.com/llvm/llvm-project/commit/7ae1b76ed7271b2e86a3cda72d9e1fc63f4e5c48
DIFF: 
https://github.com/llvm/llvm-project/commit/7ae1b76ed7271b2e86a3cda72d9e1fc63f4e5c48.diff

LOG: Fix ARM Sanitizer build

Example: https://lab.llvm.org/buildbot/#/builders/239/builds/4709

Added: 


Modified: 
clang/test/Index/initializer-memory.cpp

Removed: 




diff  --git a/clang/test/Index/initializer-memory.cpp 
b/clang/test/Index/initializer-memory.cpp
index da7344412576056..06e26d6fac73207 100644
--- a/clang/test/Index/initializer-memory.cpp
+++ b/clang/test/Index/initializer-memory.cpp
@@ -13,4 +13,4 @@ struct S {
 S data2[100] = {0};
 S data_empty_init2[100] = {};
 
-// CHECK: TOTAL = {{.*}} (0.{{.*}} MBytes)
+// CHECK: TOTAL = {{.*}} ({{0|1}}.{{.*}} MBytes)



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [llvm] [flang] [clang-tools-extra] [compiler-rt] GitHub learn (PR #66806)

2023-11-09 Thread Kirill Stoimenov via cfe-commits

https://github.com/kstoimenov closed 
https://github.com/llvm/llvm-project/pull/66806
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [NFC][Clang][CodeGen] Improve performance for vtable metadata generation (PR #67066)

2023-10-03 Thread Kirill Stoimenov via cfe-commits

kstoimenov wrote:

Maybe one way is to add @mention which should trigger a new email message?

On Tue, Oct 3, 2023 at 12:42 PM Vitaly Buka ***@***.***>
wrote:

> I didn't get an an email notification for that.
>
> Thanks, good to know.
> I like that in Phabricator it was possible just reopen review making
> revert very visible to the author.
>
> —
> Reply to this email directly, view it on GitHub
> ,
> or unsubscribe
> 
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>


-- 
Kirill Stoimenov | Software Engineer | ***@***.*** | +1-
650-253-6893


https://github.com/llvm/llvm-project/pull/67066
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [NFC][Clang][CodeGen] Improve performance for vtable metadata generation (PR #67066)

2023-10-03 Thread Kirill Stoimenov via cfe-commits

kstoimenov wrote:

Could you please send me a link which describes that process? I assume that
by MR you mean merge request?

Thanks,
Kirill

On Mon, Oct 2, 2023 at 5:24 PM Matheus Izvekov ***@***.***>
wrote:

> @kstoimenov  I believe you are supposed to
> notify the MR in case of reverts, otherwise I could have missed this if I
> wasn't awake.
>
> I believe in this case the bot is misconfigured, it's using
> -Werror,-Wmissing-field-initializers, the 'error' is just a missing
> initializer, which I didn't add because I think it makes the intent clearer.
>
> —
> Reply to this email directly, view it on GitHub
> ,
> or unsubscribe
> 
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>


-- 
Kirill Stoimenov | Software Engineer | ***@***.*** | +1-
650-253-6893


https://github.com/llvm/llvm-project/pull/67066
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 1493462 - Revert "[NFC][Clang][CodeGen] Improve performance for vtable metadata generation (#67066)"

2023-10-02 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2023-10-03T00:09:46Z
New Revision: 149346286801a5f32d254676760a7f4211801667

URL: 
https://github.com/llvm/llvm-project/commit/149346286801a5f32d254676760a7f4211801667
DIFF: 
https://github.com/llvm/llvm-project/commit/149346286801a5f32d254676760a7f4211801667.diff

LOG: Revert "[NFC][Clang][CodeGen] Improve performance for vtable metadata 
generation (#67066)"

This reverts commit 22d8f1dd533e3e56512237811b8d8db83d85edce.

Broke sanitizer bots: https://lab.llvm.org/buildbot/#/builders/269/builds/59

Added: 


Modified: 
clang/lib/CodeGen/CGVTables.cpp

Removed: 




diff  --git a/clang/lib/CodeGen/CGVTables.cpp b/clang/lib/CodeGen/CGVTables.cpp
index 5ec38e0397bf4f7..d782da2103b4c79 100644
--- a/clang/lib/CodeGen/CGVTables.cpp
+++ b/clang/lib/CodeGen/CGVTables.cpp
@@ -24,7 +24,6 @@
 #include "llvm/Transforms/Utils/Cloning.h"
 #include 
 #include 
-#include 
 
 using namespace clang;
 using namespace CodeGen;
@@ -1309,33 +1308,44 @@ void CodeGenModule::EmitVTableTypeMetadata(const 
CXXRecordDecl *RD,
 
   CharUnits ComponentWidth = GetTargetTypeStoreSize(getVTableComponentType());
 
-  struct AddressPoint {
-const CXXRecordDecl *Base;
-size_t Offset;
-std::string TypeName;
-bool operator<(const AddressPoint ) const {
-  int D = TypeName.compare(RHS.TypeName);
-  return D < 0 || (D == 0 && Offset < RHS.Offset);
-}
-  };
+  typedef std::pair AddressPoint;
   std::vector AddressPoints;
-  for (auto & : VTLayout.getAddressPoints()) {
-AddressPoint N{AP.first.getBase(),
-   VTLayout.getVTableOffset(AP.second.VTableIndex) +
-   AP.second.AddressPointIndex};
-llvm::raw_string_ostream Stream(N.TypeName);
-getCXXABI().getMangleContext().mangleCanonicalTypeName(
-QualType(N.Base->getTypeForDecl(), 0), Stream);
-AddressPoints.push_back(std::move(N));
-  }
+  for (auto & : VTLayout.getAddressPoints())
+AddressPoints.push_back(std::make_pair(
+AP.first.getBase(), VTLayout.getVTableOffset(AP.second.VTableIndex) +
+AP.second.AddressPointIndex));
 
   // Sort the address points for determinism.
-  llvm::sort(AddressPoints);
+  // FIXME: It's more efficient to mangle the types before sorting.
+  llvm::sort(AddressPoints, [this](const AddressPoint ,
+   const AddressPoint ) {
+if ( == )
+  return false;
+
+std::string S1;
+llvm::raw_string_ostream O1(S1);
+getCXXABI().getMangleContext().mangleCanonicalTypeName(
+QualType(AP1.first->getTypeForDecl(), 0), O1);
+O1.flush();
+
+std::string S2;
+llvm::raw_string_ostream O2(S2);
+getCXXABI().getMangleContext().mangleCanonicalTypeName(
+QualType(AP2.first->getTypeForDecl(), 0), O2);
+O2.flush();
+
+if (S1 < S2)
+  return true;
+if (S1 != S2)
+  return false;
+
+return AP1.second < AP2.second;
+  });
 
   ArrayRef Comps = VTLayout.vtable_components();
   for (auto AP : AddressPoints) {
 // Create type metadata for the address point.
-AddVTableTypeMetadata(VTable, ComponentWidth * AP.Offset, AP.Base);
+AddVTableTypeMetadata(VTable, ComponentWidth * AP.second, AP.first);
 
 // The class associated with each address point could also potentially be
 // used for indirect calls via a member function pointer, so we need to
@@ -1347,7 +1357,7 @@ void CodeGenModule::EmitVTableTypeMetadata(const 
CXXRecordDecl *RD,
   llvm::Metadata *MD = CreateMetadataIdentifierForVirtualMemPtrType(
   Context.getMemberPointerType(
   Comps[I].getFunctionDecl()->getType(),
-  Context.getRecordType(AP.Base).getTypePtr()));
+  Context.getRecordType(AP.first).getTypePtr()));
   VTable->addTypeMetadata((ComponentWidth * I).getQuantity(), MD);
 }
   }



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 100a3c3 - [HWASAN][LSAN] Exclude crash-recovery-modules.m from HWASAN tests

2023-03-10 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2023-03-11T00:14:27Z
New Revision: 100a3c397c2009d008ed4d26e124af43805184a0

URL: 
https://github.com/llvm/llvm-project/commit/100a3c397c2009d008ed4d26e124af43805184a0
DIFF: 
https://github.com/llvm/llvm-project/commit/100a3c397c2009d008ed4d26e124af43805184a0.diff

LOG: [HWASAN][LSAN] Exclude crash-recovery-modules.m from HWASAN tests

This is a reland of a single file from D145727, which was reverted in 
25ba9dcf1807. This test is using exact line number in the checks so if anything 
is rearranged the test fails. Moving hwasan on the same line fixes that issue.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D145822

Added: 


Modified: 
clang/test/Index/crash-recovery-modules.m

Removed: 




diff  --git a/clang/test/Index/crash-recovery-modules.m 
b/clang/test/Index/crash-recovery-modules.m
index 72e25a0fbf5f2..00020e0e8162c 100644
--- a/clang/test/Index/crash-recovery-modules.m
+++ b/clang/test/Index/crash-recovery-modules.m
@@ -11,7 +11,7 @@
 // RUN: env CINDEXTEST_FAILONERROR=1 c-index-test -test-load-source all 
-fmodules -fmodules-cache-path=%t -Xclang -fdisable-module-hash -I 
%S/Inputs/Headers %s > /dev/null
 
 // REQUIRES: crash-recovery
-// UNSUPPORTED: libstdcxx-safe-mode
+// UNSUPPORTED: libstdcxx-safe-mode, hwasan
 
 @import Crash;
 



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 25ba9dc - [HWASAN][LSAN] Fix buildbot failure.

2023-03-09 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2023-03-10T01:07:43Z
New Revision: 25ba9dcf1807e9eadade24833da60133beadfe3f

URL: 
https://github.com/llvm/llvm-project/commit/25ba9dcf1807e9eadade24833da60133beadfe3f
DIFF: 
https://github.com/llvm/llvm-project/commit/25ba9dcf1807e9eadade24833da60133beadfe3f.diff

LOG: [HWASAN][LSAN] Fix buildbot failure.

Added: 


Modified: 
clang/test/Index/crash-recovery-modules.m

Removed: 




diff  --git a/clang/test/Index/crash-recovery-modules.m 
b/clang/test/Index/crash-recovery-modules.m
index edd2c62dd093c..72e25a0fbf5f2 100644
--- a/clang/test/Index/crash-recovery-modules.m
+++ b/clang/test/Index/crash-recovery-modules.m
@@ -12,7 +12,6 @@
 
 // REQUIRES: crash-recovery
 // UNSUPPORTED: libstdcxx-safe-mode
-// UNSUPPORTED: hwasan
 
 @import Crash;
 



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 011b4d4 - [HWASAN][LSAN] Disable tests which don't pass in HWASAN+LSAN mode

2023-03-09 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2023-03-10T00:51:55Z
New Revision: 011b4d4706eea722d63438892afefdb8152b7b62

URL: 
https://github.com/llvm/llvm-project/commit/011b4d4706eea722d63438892afefdb8152b7b62
DIFF: 
https://github.com/llvm/llvm-project/commit/011b4d4706eea722d63438892afefdb8152b7b62.diff

LOG: [HWASAN][LSAN] Disable tests which don't pass in HWASAN+LSAN mode

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D145727

Added: 


Modified: 
clang/test/Driver/crash-diagnostics-dir-3.c
clang/test/Driver/crash-diagnostics-dir.c
clang/test/Driver/crash-report-clang-cl.cpp
clang/test/Driver/crash-report-header.h
clang/test/Driver/crash-report-spaces.c
clang/test/Driver/crash-report-with-asserts.c
clang/test/Driver/crash-report.cpp
clang/test/Driver/emit-reproducer.c
clang/test/Driver/output-file-cleanup.c
clang/test/Driver/rewrite-map-in-diagnostics.c
clang/test/Index/crash-recovery-code-complete.c
clang/test/Index/crash-recovery-modules.m
clang/test/Index/crash-recovery-reparse.c
clang/test/Index/crash-recovery.c
clang/test/Index/create-libclang-completion-reproducer.c
clang/test/Index/create-libclang-parsing-reproducer.c
clang/test/Index/error-on-deserialized.c
clang/test/Index/record-completion-invocation.c
clang/test/Index/record-parsing-invocation.c
llvm/test/Bitcode/invalid.test
llvm/test/MC/AsmParser/unmatched-if-macro.s
llvm/test/tools/llvm-mc/disassembler-options.test
llvm/test/tools/llvm-profdata/merge-incompatible.test
llvm/test/tools/llvm-reduce/fail-execute-test.test

Removed: 




diff  --git a/clang/test/Driver/crash-diagnostics-dir-3.c 
b/clang/test/Driver/crash-diagnostics-dir-3.c
index 9529e30021045..a91bc48d7e462 100644
--- a/clang/test/Driver/crash-diagnostics-dir-3.c
+++ b/clang/test/Driver/crash-diagnostics-dir-3.c
@@ -1,3 +1,4 @@
+// RUN: export LSAN_OPTIONS=detect_leaks=0
 // RUN: rm -rf %t
 // RUN: not env CLANG_CRASH_DIAGNOSTICS_DIR=%t %clang -c %s -o - 2>&1 | 
FileCheck %s
 #pragma clang __debug parser_crash

diff  --git a/clang/test/Driver/crash-diagnostics-dir.c 
b/clang/test/Driver/crash-diagnostics-dir.c
index 44c4af67649a7..16382eff1cde7 100644
--- a/clang/test/Driver/crash-diagnostics-dir.c
+++ b/clang/test/Driver/crash-diagnostics-dir.c
@@ -1,3 +1,4 @@
+// RUN: export LSAN_OPTIONS=detect_leaks=0
 // RUN: rm -rf %t
 // RUN: not %clang -fcrash-diagnostics-dir=%t -c %s -o - 2>&1 | FileCheck %s
 #pragma clang __debug parser_crash

diff  --git a/clang/test/Driver/crash-report-clang-cl.cpp 
b/clang/test/Driver/crash-report-clang-cl.cpp
index 159792d3eb61a..963c3b6d0ab03 100644
--- a/clang/test/Driver/crash-report-clang-cl.cpp
+++ b/clang/test/Driver/crash-report-clang-cl.cpp
@@ -1,3 +1,4 @@
+// RUN: export LSAN_OPTIONS=detect_leaks=0
 // RUN: rm -rf %t
 // RUN: mkdir %t
 

diff  --git a/clang/test/Driver/crash-report-header.h 
b/clang/test/Driver/crash-report-header.h
index c1b0ab367683c..04865a0cc300f 100644
--- a/clang/test/Driver/crash-report-header.h
+++ b/clang/test/Driver/crash-report-header.h
@@ -1,3 +1,4 @@
+// RUN: export LSAN_OPTIONS=detect_leaks=0
 // RUN: rm -rf %t
 // RUN: mkdir %t
 // RUN: env TMPDIR="%t" TEMP="%t" TMP="%t" RC_DEBUG_OPTIONS=1 not %clang 
-fsyntax-only %s 2>&1 | FileCheck %s

diff  --git a/clang/test/Driver/crash-report-spaces.c 
b/clang/test/Driver/crash-report-spaces.c
index e6da0873673aa..b4d8ac1f57e83 100644
--- a/clang/test/Driver/crash-report-spaces.c
+++ b/clang/test/Driver/crash-report-spaces.c
@@ -1,3 +1,4 @@
+// RUN: export LSAN_OPTIONS=detect_leaks=0
 // RUN: rm -rf "%t"
 // RUN: mkdir "%t"
 // RUN: cp "%s" "%t/crash report spaces.c"

diff  --git a/clang/test/Driver/crash-report-with-asserts.c 
b/clang/test/Driver/crash-report-with-asserts.c
index 7a614aa8fe025..686c49f339fb7 100644
--- a/clang/test/Driver/crash-report-with-asserts.c
+++ b/clang/test/Driver/crash-report-with-asserts.c
@@ -1,3 +1,4 @@
+// RUN: export LSAN_OPTIONS=detect_leaks=0
 // RUN: rm -rf %t
 // RUN: mkdir %t
 

diff  --git a/clang/test/Driver/crash-report.cpp 
b/clang/test/Driver/crash-report.cpp
index 455597c9c0fc7..59eee65af57ee 100644
--- a/clang/test/Driver/crash-report.cpp
+++ b/clang/test/Driver/crash-report.cpp
@@ -1,3 +1,4 @@
+// RUN: export LSAN_OPTIONS=detect_leaks=0
 // RUN: rm -rf %t
 // RUN: mkdir %t
 

diff  --git a/clang/test/Driver/emit-reproducer.c 
b/clang/test/Driver/emit-reproducer.c
index b8d6841077c4d..18e1b4e41b91d 100644
--- a/clang/test/Driver/emit-reproducer.c
+++ b/clang/test/Driver/emit-reproducer.c
@@ -1,3 +1,4 @@
+// RUN: export LSAN_OPTIONS=detect_leaks=0
 // RUN: rm -rf %t && mkdir %t
 
 // RUN: echo "%s -fcrash-diagnostics-dir=%t -fsyntax-only" | sed -e 
's/\\//g' > %t.rsp

diff  --git a/clang/test/Driver/output-file-cleanup.c 
b/clang/test/Driver/output-file-cleanup.c
index a5ca3e546f532..3628df8192652 100644
--- 

[clang] 50cd2c2 - [LSAN] Disable leaks in test using environment variables instead of not running them with ASAN.

2023-03-08 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2023-03-08T23:20:40Z
New Revision: 50cd2c257cb4e5fc822e0fa5fc12d1838070fcf0

URL: 
https://github.com/llvm/llvm-project/commit/50cd2c257cb4e5fc822e0fa5fc12d1838070fcf0
DIFF: 
https://github.com/llvm/llvm-project/commit/50cd2c257cb4e5fc822e0fa5fc12d1838070fcf0.diff

LOG: [LSAN] Disable leaks in test using environment variables instead of not 
running them with ASAN.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D145615

Added: 


Modified: 
clang/test/CodeGenCXX/debug-info-enum-i128.cpp
mlir/test/Pass/crash-recovery-dynamic-failure.mlir
mlir/test/Pass/crash-recovery.mlir
mlir/test/mlir-cpu-runner/async-group.mlir

Removed: 




diff  --git a/clang/test/CodeGenCXX/debug-info-enum-i128.cpp 
b/clang/test/CodeGenCXX/debug-info-enum-i128.cpp
index 92bf8eba873c3..22aaf03bd9af5 100644
--- a/clang/test/CodeGenCXX/debug-info-enum-i128.cpp
+++ b/clang/test/CodeGenCXX/debug-info-enum-i128.cpp
@@ -1,9 +1,10 @@
+// FIXME: llvm.org/pr51221, the APSInt leaks
+// RUN: export LSAN_OPTIONS=detect_leaks=0
+
 // RUN: %clang_cc1 %s -triple x86_64-windows-msvc -gcodeview 
-debug-info-kind=limited -emit-llvm -o - | FileCheck %s
 // RUN: %clang_cc1 %s -triple x86_64-linux-gnu -debug-info-kind=limited 
-emit-llvm -o - | FileCheck %s
 // RUN: %clang_cc1 %s -triple powerpc64-ibm-aix-xcoff -debug-info-kind=limited 
-emit-llvm -o - | FileCheck %s
 
-// FIXME: llvm.org/pr51221, the APSInt leaks
-// UNSUPPORTED: asan
 
 enum class uns : __uint128_t { unsval = __uint128_t(1) << 64 };
 uns t1() { return uns::unsval; }

diff  --git a/mlir/test/Pass/crash-recovery-dynamic-failure.mlir 
b/mlir/test/Pass/crash-recovery-dynamic-failure.mlir
index 69e087d5aa83a..cea4f6a79963b 100644
--- a/mlir/test/Pass/crash-recovery-dynamic-failure.mlir
+++ b/mlir/test/Pass/crash-recovery-dynamic-failure.mlir
@@ -1,10 +1,10 @@
+// The crash recovery mechanism will leak memory allocated in the crashing 
thread.
+// RUN: export LSAN_OPTIONS=detect_leaks=0
+
 // Check that local reproducers will also traverse dynamic pass pipelines.
 // RUN: mlir-opt %s 
-pass-pipeline='builtin.module(test-module-pass,test-dynamic-pipeline{op-name=inner_mod1
 run-on-nested-operations=1 dynamic-pipeline=test-pass-failure})' 
-mlir-pass-pipeline-crash-reproducer=%t -verify-diagnostics 
-mlir-pass-pipeline-local-reproducer --mlir-disable-threading
 // RUN: cat %t | FileCheck -check-prefix=REPRO_LOCAL_DYNAMIC_FAILURE %s
 
-// The crash recovery mechanism will leak memory allocated in the crashing 
thread.
-// UNSUPPORTED: asan
-
 module @inner_mod1 {
   // expected-error@below {{Failures have been detected while processing an 
MLIR pass pipeline}}
   // expected-note@below {{Pipeline failed while executing}}

diff  --git a/mlir/test/Pass/crash-recovery.mlir 
b/mlir/test/Pass/crash-recovery.mlir
index e636064d26e34..e5843d6207c67 100644
--- a/mlir/test/Pass/crash-recovery.mlir
+++ b/mlir/test/Pass/crash-recovery.mlir
@@ -1,3 +1,5 @@
+// The crash recovery mechanism will leak memory allocated in the crashing 
thread.
+// RUN: export LSAN_OPTIONS=detect_leaks=0
 // RUN: mlir-opt %s 
-pass-pipeline='builtin.module(builtin.module(test-module-pass, 
test-pass-crash))' -mlir-pass-pipeline-crash-reproducer=%t -verify-diagnostics
 // RUN: cat %t | FileCheck -check-prefix=REPRO %s
 // RUN: mlir-opt %s 
-pass-pipeline='builtin.module(builtin.module(test-module-pass, 
test-pass-crash))' -mlir-pass-pipeline-crash-reproducer=%t -verify-diagnostics 
-mlir-pass-pipeline-local-reproducer -mlir-disable-threading

diff  --git a/mlir/test/mlir-cpu-runner/async-group.mlir 
b/mlir/test/mlir-cpu-runner/async-group.mlir
index 6407c324365ae..9735a5d330ee5 100644
--- a/mlir/test/mlir-cpu-runner/async-group.mlir
+++ b/mlir/test/mlir-cpu-runner/async-group.mlir
@@ -1,3 +1,10 @@
+// This is crashing in CI "most of the time" on a AMD Rome CPU VM on GCP with:
+//Tracer caught signal 11: addr=0x7a800028 pc=0x2e81ba sp=0x7efd2a7ffd50
+//LeakSanitizer has encountered a fatal error.
+// This is hard to reproduce locally unfortunately. Disable it with ASAN/LSAN
+// to keep the bot green for now.
+// RUN: export LSAN_OPTIONS=detect_leaks=0
+
 // RUN:   mlir-opt %s 
-pass-pipeline="builtin.module(async-to-async-runtime,func.func(async-runtime-ref-counting,async-runtime-ref-counting-opt),convert-async-to-llvm,func.func(convert-arith-to-llvm),convert-func-to-llvm,reconcile-unrealized-casts)"
 \
 // RUN: | mlir-cpu-runner  
\
 // RUN: -e main -entry-point-result=void -O0   
\
@@ -6,13 +13,6 @@
 // RUN: -shared-libs=%mlir_async_runtime   \
 // RUN: | FileCheck %s
 
-// This is crashing in CI "most of the time" on a AMD Rome CPU VM on GCP with:
-//Tracer caught signal 11: addr=0x7a800028 pc=0x2e81ba sp=0x7efd2a7ffd50
-//LeakSanitizer has encountered a fatal 

[clang] dd67e69 - [ASan] Reland of D116182 to always link asan_static library.

2022-03-24 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2022-03-24T19:32:23Z
New Revision: dd67e6972f85b4f0d00f7c68aea857b09e7a0b8a

URL: 
https://github.com/llvm/llvm-project/commit/dd67e6972f85b4f0d00f7c68aea857b09e7a0b8a
DIFF: 
https://github.com/llvm/llvm-project/commit/dd67e6972f85b4f0d00f7c68aea857b09e7a0b8a.diff

LOG: [ASan] Reland of D116182 to always link asan_static library.

After landing D121813 the binary size increase introduced by this change can be 
minimized by using --gc-sections link options. D121813 allows each individual 
callbacks to be optimized out if not used.

Reviewed By: vitalybuka, MaskRay

Differential Revision: https://reviews.llvm.org/D122407

Added: 


Modified: 
clang/lib/Driver/ToolChains/CommonArgs.cpp
clang/test/Driver/sanitizer-ld.c
compiler-rt/lib/asan/CMakeLists.txt
compiler-rt/lib/asan/asan_interface.inc
compiler-rt/lib/asan/asan_rtl_x86_64.S

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 156821a6e7854..b9efb6b77f074 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -849,6 +849,10 @@ collectSanitizerRuntimes(const ToolChain , const 
ArgList ,
   if (SanArgs.needsStatsRt() && SanArgs.linkRuntimes())
 StaticRuntimes.push_back("stats_client");
 
+  // Always link the static runtime regardless of DSO or executable.
+  if (SanArgs.needsAsanRt())
+HelperStaticRuntimes.push_back("asan_static");
+
   // Collect static runtimes.
   if (Args.hasArg(options::OPT_shared)) {
 // Don't link static runtimes into DSOs.

diff  --git a/clang/test/Driver/sanitizer-ld.c 
b/clang/test/Driver/sanitizer-ld.c
index 9a7a7db284c5d..966edbd7d038b 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -30,6 +30,7 @@
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
 // RUN:   | FileCheck --check-prefix=CHECK-ASAN-EXECUTABLE-LINUX %s
 //
+// CHECK-ASAN-EXECUTABLE-LINUX: libclang_rt.asan_static-x86_64
 // CHECK-ASAN-EXECUTABLE-LINUX: libclang_rt.asan-x86_64
 
 // RUN: %clang -fsanitize=address -shared %s -### -o %t.o 2>&1  \
@@ -38,6 +39,7 @@
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
 // RUN:   | FileCheck --check-prefix=CHECK-ASAN-SHARED-LINUX %s
 //
+// CHECK-ASAN-SHARED-LINUX: libclang_rt.asan_static-x86_64
 // CHECK-ASAN-SHARED-LINUX-NOT: libclang_rt.asan-x86_64
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \

diff  --git a/compiler-rt/lib/asan/CMakeLists.txt 
b/compiler-rt/lib/asan/CMakeLists.txt
index 0862a3d648fa2..0e7250a8fa10b 100644
--- a/compiler-rt/lib/asan/CMakeLists.txt
+++ b/compiler-rt/lib/asan/CMakeLists.txt
@@ -34,7 +34,6 @@ set(ASAN_SOURCES
 
 if (NOT WIN32 AND NOT APPLE)
   list(APPEND ASAN_SOURCES
-asan_rtl_x86_64.S
 asan_interceptors_vfork.S
 )
 endif()
@@ -49,6 +48,7 @@ set(ASAN_STATIC_SOURCES
 
 if (NOT WIN32 AND NOT APPLE)
   list(APPEND ASAN_STATIC_SOURCES
+asan_rtl_x86_64.S
   )
 endif()
 

diff  --git a/compiler-rt/lib/asan/asan_interface.inc 
b/compiler-rt/lib/asan/asan_interface.inc
index e9e7accf1675e..89ef552b71173 100644
--- a/compiler-rt/lib/asan/asan_interface.inc
+++ b/compiler-rt/lib/asan/asan_interface.inc
@@ -180,37 +180,3 @@ INTERFACE_FUNCTION(__asan_update_allocation_context)
 INTERFACE_WEAK_FUNCTION(__asan_default_options)
 INTERFACE_WEAK_FUNCTION(__asan_default_suppressions)
 INTERFACE_WEAK_FUNCTION(__asan_on_error)
-
-#if defined(__x86_64__) && !defined(__APPLE__) && !defined(_WIN32)
-
-#  define ASAN_MEMORY_ACCESS_CALLBACK_ADD(s, reg, op) \
-INTERFACE_FUNCTION(__asan_check_##op##_add_##s##_##reg)
-
-#  define ASAN_MEMORY_ACCESS_CALLBACKS_ADD(reg)\
-ASAN_MEMORY_ACCESS_CALLBACK_ADD(1, reg, load)  \
-ASAN_MEMORY_ACCESS_CALLBACK_ADD(1, reg, store) \
-ASAN_MEMORY_ACCESS_CALLBACK_ADD(2, reg, load)  \
-ASAN_MEMORY_ACCESS_CALLBACK_ADD(2, reg, store) \
-ASAN_MEMORY_ACCESS_CALLBACK_ADD(4, reg, load)  \
-ASAN_MEMORY_ACCESS_CALLBACK_ADD(4, reg, store) \
-ASAN_MEMORY_ACCESS_CALLBACK_ADD(8, reg, load)  \
-ASAN_MEMORY_ACCESS_CALLBACK_ADD(8, reg, store) \
-ASAN_MEMORY_ACCESS_CALLBACK_ADD(16, reg, load) \
-ASAN_MEMORY_ACCESS_CALLBACK_ADD(16, reg, store)
-
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(RAX)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(RBX)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(RCX)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(RDX)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(RSI)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(RDI)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(RBP)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(R8)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(R9)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(R12)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(R13)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(R14)
-ASAN_MEMORY_ACCESS_CALLBACKS_ADD(R15)
-
-#endif  // defined(__x86_64__) && !defined(__APPLE__) && !defined(_WIN32)
-

diff  --git a/compiler-rt/lib/asan/asan_rtl_x86_64.S 

[clang] 035441f - [ASan] Moved optimized callbacks out of asan_static to avoid DSO size increase.

2022-03-10 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2022-03-10T21:11:32Z
New Revision: 035441ff3008c2a1930363751c6db61b71a5f089

URL: 
https://github.com/llvm/llvm-project/commit/035441ff3008c2a1930363751c6db61b71a5f089
DIFF: 
https://github.com/llvm/llvm-project/commit/035441ff3008c2a1930363751c6db61b71a5f089.diff

LOG: [ASan] Moved optimized callbacks out of asan_static to avoid DSO size 
increase.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D121405

Added: 


Modified: 
clang/lib/Driver/ToolChains/CommonArgs.cpp
clang/test/Driver/sanitizer-ld.c
compiler-rt/lib/asan/CMakeLists.txt
compiler-rt/lib/asan/asan_rtl_x86_64.S

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index abbba00e97537..2f3dc86eaad1d 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -842,10 +842,6 @@ collectSanitizerRuntimes(const ToolChain , const 
ArgList ,
   if (SanArgs.needsStatsRt() && SanArgs.linkRuntimes())
 StaticRuntimes.push_back("stats_client");
 
-  // Always link the static runtime regardless of DSO or executable.
-  if (SanArgs.needsAsanRt())
-HelperStaticRuntimes.push_back("asan_static");
-
   // Collect static runtimes.
   if (Args.hasArg(options::OPT_shared)) {
 // Don't link static runtimes into DSOs.

diff  --git a/clang/test/Driver/sanitizer-ld.c 
b/clang/test/Driver/sanitizer-ld.c
index 966edbd7d038b..9a7a7db284c5d 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -30,7 +30,6 @@
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
 // RUN:   | FileCheck --check-prefix=CHECK-ASAN-EXECUTABLE-LINUX %s
 //
-// CHECK-ASAN-EXECUTABLE-LINUX: libclang_rt.asan_static-x86_64
 // CHECK-ASAN-EXECUTABLE-LINUX: libclang_rt.asan-x86_64
 
 // RUN: %clang -fsanitize=address -shared %s -### -o %t.o 2>&1  \
@@ -39,7 +38,6 @@
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
 // RUN:   | FileCheck --check-prefix=CHECK-ASAN-SHARED-LINUX %s
 //
-// CHECK-ASAN-SHARED-LINUX: libclang_rt.asan_static-x86_64
 // CHECK-ASAN-SHARED-LINUX-NOT: libclang_rt.asan-x86_64
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \

diff  --git a/compiler-rt/lib/asan/CMakeLists.txt 
b/compiler-rt/lib/asan/CMakeLists.txt
index 0e7250a8fa10b..0862a3d648fa2 100644
--- a/compiler-rt/lib/asan/CMakeLists.txt
+++ b/compiler-rt/lib/asan/CMakeLists.txt
@@ -34,6 +34,7 @@ set(ASAN_SOURCES
 
 if (NOT WIN32 AND NOT APPLE)
   list(APPEND ASAN_SOURCES
+asan_rtl_x86_64.S
 asan_interceptors_vfork.S
 )
 endif()
@@ -48,7 +49,6 @@ set(ASAN_STATIC_SOURCES
 
 if (NOT WIN32 AND NOT APPLE)
   list(APPEND ASAN_STATIC_SOURCES
-asan_rtl_x86_64.S
   )
 endif()
 

diff  --git a/compiler-rt/lib/asan/asan_rtl_x86_64.S 
b/compiler-rt/lib/asan/asan_rtl_x86_64.S
index 50e039e53d626..92376f5b9a78f 100644
--- a/compiler-rt/lib/asan/asan_rtl_x86_64.S
+++ b/compiler-rt/lib/asan/asan_rtl_x86_64.S
@@ -42,7 +42,7 @@ CLABEL(reg, op, 1, i): ;\
 pop%rcx ;\
 jl RLABEL(reg, op, 1, i);\
 mov%##reg,%rdi ;\
-jmp__asan_report_##op##1_asm ;\
+jmp__asan_report_##op##1 ;\
 
 #define ASAN_MEMORY_ACCESS_EXTRA_CHECK_2(reg, op, i) \
 CLABEL(reg, op, 2, i): ;\
@@ -54,7 +54,7 @@ CLABEL(reg, op, 2, i): ;\
 pop%rcx ;\
 jl RLABEL(reg, op, 2, i);\
 mov%##reg,%rdi ;\
-jmp__asan_report_##op##2_asm ;\
+jmp__asan_report_##op##2 ;\
 
 #define ASAN_MEMORY_ACCESS_EXTRA_CHECK_4(reg, op, i) \
 CLABEL(reg, op, 4, i): ;\
@@ -66,7 +66,7 @@ CLABEL(reg, op, 4, i): ;\
 pop%rcx ;\
 jl RLABEL(reg, op, 4, i);\
 mov%##reg,%rdi ;\
-jmp__asan_report_##op##4_asm ;\
+jmp__asan_report_##op##4 ;\
 
 #define ASAN_MEMORY_ACCESS_CALLBACK_ADD_1(reg, op) \
 BEGINF(reg, op, 1, add) ;\
@@ -97,7 +97,7 @@ ENDF
 #define ASAN_MEMORY_ACCESS_FAIL(reg, op, s, i) \
 FLABEL(reg, op, s, i): ;\
 mov%##reg,%rdi ;\
-jmp__asan_report_##op##s##_asm;\
+jmp__asan_report_##op##s##;\
 
 #define ASAN_MEMORY_ACCESS_CALLBACK_ADD_8(reg, op) \
 BEGINF(reg, op, 8, add) ;\



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] d7dd7ad - Revert "[ASan] Not linking asan_static library for DSO."

2022-02-01 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2022-02-01T23:58:04Z
New Revision: d7dd7ad827a0a78314f3c9b55f4778a6059840f3

URL: 
https://github.com/llvm/llvm-project/commit/d7dd7ad827a0a78314f3c9b55f4778a6059840f3
DIFF: 
https://github.com/llvm/llvm-project/commit/d7dd7ad827a0a78314f3c9b55f4778a6059840f3.diff

LOG: Revert "[ASan] Not linking asan_static library for DSO."

This reverts commit cf730d8ce1341ba593144df2e2bc8411238e04c3. It turned out 
that D118184 is causing segfaults in some situations.

Reviewed By: vitalybuka, kda

Differential Revision: https://reviews.llvm.org/D118739

Added: 


Modified: 
clang/lib/Driver/ToolChains/CommonArgs.cpp
clang/test/Driver/sanitizer-ld.c

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 87f1c8d0c9986..6364cd133e0bf 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -845,16 +845,16 @@ collectSanitizerRuntimes(const ToolChain , const 
ArgList ,
   if (SanArgs.needsStatsRt() && SanArgs.linkRuntimes())
 StaticRuntimes.push_back("stats_client");
 
+  // Always link the static runtime regardless of DSO or executable.
+  if (SanArgs.needsAsanRt())
+HelperStaticRuntimes.push_back("asan_static");
+
   // Collect static runtimes.
   if (Args.hasArg(options::OPT_shared)) {
 // Don't link static runtimes into DSOs.
 return;
   }
 
-  // Always link the static runtime for executable.
-  if (SanArgs.needsAsanRt())
-HelperStaticRuntimes.push_back("asan_static");
-
   // Each static runtime that has a DSO counterpart above is excluded below,
   // but runtimes that exist only as static are not affected by needsSharedRt.
 

diff  --git a/clang/test/Driver/sanitizer-ld.c 
b/clang/test/Driver/sanitizer-ld.c
index d96cddb31d687..966edbd7d038b 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -39,7 +39,7 @@
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
 // RUN:   | FileCheck --check-prefix=CHECK-ASAN-SHARED-LINUX %s
 //
-// CHECK-ASAN-SHARED-LINUX-NOT: libclang_rt.asan_static-x86_64
+// CHECK-ASAN-SHARED-LINUX: libclang_rt.asan_static-x86_64
 // CHECK-ASAN-SHARED-LINUX-NOT: libclang_rt.asan-x86_64
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D112098: [ASan] Added stack safety support in address sanitizer.

2022-01-31 Thread Kirill Stoimenov via cfe-commits
Sorry i just noticed this email. I will take a look next week.

On Sun, Jan 30, 2022, 2:50 AM Simon Pilgrim via Phabricator <
revi...@reviews.llvm.org> wrote:

> RKSimon added inline comments.
>
>
> 
> Comment at: llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp:1534
>} else if (StoreInst *SI = dyn_cast(I)) {
> -if (!ClInstrumentWrites || ignoreAccess(SI->getPointerOperand()))
> +if (!ClInstrumentWrites || ignoreAccess(LI, SI->getPointerOperand()))
>return;
> 
> RKSimon wrote:
> > @kstoimenov You're using the LI pointer for all IgnoreAccess calls which
> is causing nullptr dereference warnings in static analyzer.
> >
> > Should we just be using I or the dyn_cast<> pointers in each case?
> >
> >
> https://llvm.org/reports/scan-build/report-AddressSanitizer.cpp-ignoreAccess-21-f37ec0.html#EndPath
> @kstoimenov Have you been able to check this at all please?
>
>
> Repository:
>   rG LLVM Github Monorepo
>
> CHANGES SINCE LAST ACTION
>   https://reviews.llvm.org/D112098/new/
>
> https://reviews.llvm.org/D112098
>
>
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 69da422 - [ASan] Added a unit test for D118184.

2022-01-25 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2022-01-26T01:20:02Z
New Revision: 69da422bdaa684fbd14c95b06f40ac57910642d9

URL: 
https://github.com/llvm/llvm-project/commit/69da422bdaa684fbd14c95b06f40ac57910642d9
DIFF: 
https://github.com/llvm/llvm-project/commit/69da422bdaa684fbd14c95b06f40ac57910642d9.diff

LOG: [ASan] Added a unit test for D118184.

To make sure the the libraries are there for executable and not there for DSOs.

Reviewed By: kda

Differential Revision: https://reviews.llvm.org/D118205

Added: 


Modified: 
clang/test/Driver/sanitizer-ld.c

Removed: 




diff  --git a/clang/test/Driver/sanitizer-ld.c 
b/clang/test/Driver/sanitizer-ld.c
index ea8c49f2384ad..d96cddb31d687 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -24,6 +24,24 @@
 //
 // CHECK-ASAN-NO-LINK-RUNTIME-LINUX-NOT: libclang_rt.asan-x86_64
 
+// RUN: %clang -fsanitize=address %s -### -o %t.o 2>&1 \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld \
+// RUN: -resource-dir=%S/Inputs/resource_dir \
+// RUN: --sysroot=%S/Inputs/basic_linux_tree \
+// RUN:   | FileCheck --check-prefix=CHECK-ASAN-EXECUTABLE-LINUX %s
+//
+// CHECK-ASAN-EXECUTABLE-LINUX: libclang_rt.asan_static-x86_64
+// CHECK-ASAN-EXECUTABLE-LINUX: libclang_rt.asan-x86_64
+
+// RUN: %clang -fsanitize=address -shared %s -### -o %t.o 2>&1  \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld \
+// RUN: -resource-dir=%S/Inputs/resource_dir \
+// RUN: --sysroot=%S/Inputs/basic_linux_tree \
+// RUN:   | FileCheck --check-prefix=CHECK-ASAN-SHARED-LINUX %s
+//
+// CHECK-ASAN-SHARED-LINUX-NOT: libclang_rt.asan_static-x86_64
+// CHECK-ASAN-SHARED-LINUX-NOT: libclang_rt.asan-x86_64
+
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
 // RUN: -target i386-unknown-linux -fuse-ld=ld -fsanitize=address 
-shared-libsan \
 // RUN: -resource-dir=%S/Inputs/resource_dir \



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] cf730d8 - [ASan] Not linking asan_static library for DSO.

2022-01-25 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2022-01-26T00:13:26Z
New Revision: cf730d8ce1341ba593144df2e2bc8411238e04c3

URL: 
https://github.com/llvm/llvm-project/commit/cf730d8ce1341ba593144df2e2bc8411238e04c3
DIFF: 
https://github.com/llvm/llvm-project/commit/cf730d8ce1341ba593144df2e2bc8411238e04c3.diff

LOG: [ASan] Not linking asan_static library for DSO.

Without this change DSOs fail to link because of missing 
asan_report_(load|store)n functions.

Reviewed By: kda

Differential Revision: https://reviews.llvm.org/D118184

Added: 


Modified: 
clang/lib/Driver/ToolChains/CommonArgs.cpp

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 3897f67d1fe64..5711998f90434 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -826,16 +826,16 @@ collectSanitizerRuntimes(const ToolChain , const 
ArgList ,
   if (SanArgs.needsStatsRt() && SanArgs.linkRuntimes())
 StaticRuntimes.push_back("stats_client");
 
-  // Always link the static runtime regardless of DSO or executable.
-  if (SanArgs.needsAsanRt())
-HelperStaticRuntimes.push_back("asan_static");
-
   // Collect static runtimes.
   if (Args.hasArg(options::OPT_shared)) {
 // Don't link static runtimes into DSOs.
 return;
   }
 
+  // Always link the static runtime for executable.
+  if (SanArgs.needsAsanRt())
+HelperStaticRuntimes.push_back("asan_static");
+
   // Each static runtime that has a DSO counterpart above is excluded below,
   // but runtimes that exist only as static are not affected by needsSharedRt.
 



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] a3b9edf - [ASan] Driver changes to always link-in asan_static library.

2022-01-11 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2022-01-11T15:31:41Z
New Revision: a3b9edf8b8c3815c1a2c200f9bc00882e1244827

URL: 
https://github.com/llvm/llvm-project/commit/a3b9edf8b8c3815c1a2c200f9bc00882e1244827
DIFF: 
https://github.com/llvm/llvm-project/commit/a3b9edf8b8c3815c1a2c200f9bc00882e1244827.diff

LOG: [ASan] Driver changes to always link-in asan_static library.

This enables the changes from D116182.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D116670

Added: 


Modified: 
clang/lib/Driver/ToolChains/CommonArgs.cpp
clang/test/Driver/sanitizer-ld.c

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index f25fe9ba34c4..3897f67d1fe6 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -826,6 +826,10 @@ collectSanitizerRuntimes(const ToolChain , const 
ArgList ,
   if (SanArgs.needsStatsRt() && SanArgs.linkRuntimes())
 StaticRuntimes.push_back("stats_client");
 
+  // Always link the static runtime regardless of DSO or executable.
+  if (SanArgs.needsAsanRt())
+HelperStaticRuntimes.push_back("asan_static");
+
   // Collect static runtimes.
   if (Args.hasArg(options::OPT_shared)) {
 // Don't link static runtimes into DSOs.

diff  --git a/clang/test/Driver/sanitizer-ld.c 
b/clang/test/Driver/sanitizer-ld.c
index d62e19fd4021..ea8c49f2384a 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -22,7 +22,7 @@
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
 // RUN:   | FileCheck --check-prefix=CHECK-ASAN-NO-LINK-RUNTIME-LINUX %s
 //
-// CHECK-ASAN-NO-LINK-RUNTIME-LINUX-NOT: libclang_rt.asan
+// CHECK-ASAN-NO-LINK-RUNTIME-LINUX-NOT: libclang_rt.asan-x86_64
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
 // RUN: -target i386-unknown-linux -fuse-ld=ld -fsanitize=address 
-shared-libsan \



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 71b3bfd - [ASan] Moved optimized callbacks into a separate library.

2021-12-23 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2021-12-24T00:40:44Z
New Revision: 71b3bfde9cd296525bbf5b1619e199074156d12b

URL: 
https://github.com/llvm/llvm-project/commit/71b3bfde9cd296525bbf5b1619e199074156d12b
DIFF: 
https://github.com/llvm/llvm-project/commit/71b3bfde9cd296525bbf5b1619e199074156d12b.diff

LOG: [ASan] Moved optimized callbacks into a separate library.

This will allow linking in the callbacks directly instead of using PLT.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D116182

Added: 
compiler-rt/lib/asan/asan_rtl_static.cpp

Modified: 
clang/lib/Driver/ToolChains/CommonArgs.cpp
clang/test/Driver/sanitizer-ld.c
compiler-rt/lib/asan/CMakeLists.txt
compiler-rt/lib/asan/tests/CMakeLists.txt

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 407f81a2ae09a..267625c70b251 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -826,6 +826,11 @@ collectSanitizerRuntimes(const ToolChain , const 
ArgList ,
   if (SanArgs.needsStatsRt() && SanArgs.linkRuntimes())
 StaticRuntimes.push_back("stats_client");
 
+  // Always link the static runtime regardless of DSO or executable.
+  if (SanArgs.needsAsanRt()) {
+HelperStaticRuntimes.push_back("asan_static");
+  }
+
   // Collect static runtimes.
   if (Args.hasArg(options::OPT_shared)) {
 // Don't link static runtimes into DSOs.

diff  --git a/clang/test/Driver/sanitizer-ld.c 
b/clang/test/Driver/sanitizer-ld.c
index d62e19fd4021b..ea8c49f2384ad 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -22,7 +22,7 @@
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
 // RUN:   | FileCheck --check-prefix=CHECK-ASAN-NO-LINK-RUNTIME-LINUX %s
 //
-// CHECK-ASAN-NO-LINK-RUNTIME-LINUX-NOT: libclang_rt.asan
+// CHECK-ASAN-NO-LINK-RUNTIME-LINUX-NOT: libclang_rt.asan-x86_64
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
 // RUN: -target i386-unknown-linux -fuse-ld=ld -fsanitize=address 
-shared-libsan \

diff  --git a/compiler-rt/lib/asan/CMakeLists.txt 
b/compiler-rt/lib/asan/CMakeLists.txt
index 2e63c8d051688..b79b7278f6dbb 100644
--- a/compiler-rt/lib/asan/CMakeLists.txt
+++ b/compiler-rt/lib/asan/CMakeLists.txt
@@ -34,7 +34,6 @@ set(ASAN_SOURCES
 
 if (NOT WIN32 AND NOT APPLE)
   list(APPEND ASAN_SOURCES
-asan_rtl_x86_64.S
 asan_interceptors_vfork.S
 )
 endif()
@@ -43,6 +42,16 @@ set(ASAN_CXX_SOURCES
   asan_new_delete.cpp
   )
 
+set(ASAN_STATIC_SOURCES
+  asan_rtl_static.cpp
+  )
+
+if (NOT WIN32 AND NOT APPLE)
+  list(APPEND ASAN_STATIC_SOURCES
+asan_rtl_x86_64.S
+  )
+endif()
+
 set(ASAN_PREINIT_SOURCES
   asan_preinit.cpp
   )
@@ -135,6 +144,12 @@ if(NOT APPLE)
 ADDITIONAL_HEADERS ${ASAN_HEADERS}
 CFLAGS ${ASAN_CFLAGS}
 DEFS ${ASAN_COMMON_DEFINITIONS})
+  add_compiler_rt_object_libraries(RTAsan_static
+ARCHS ${ASAN_SUPPORTED_ARCH}
+SOURCES ${ASAN_STATIC_SOURCES}
+ADDITIONAL_HEADERS ${ASAN_HEADERS}
+CFLAGS ${ASAN_CFLAGS}
+DEFS ${ASAN_COMMON_DEFINITIONS})
   add_compiler_rt_object_libraries(RTAsan_preinit
 ARCHS ${ASAN_SUPPORTED_ARCH}
 SOURCES ${ASAN_PREINIT_SOURCES}
@@ -176,6 +191,14 @@ if(APPLE)
 LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
 DEFS ${ASAN_DYNAMIC_DEFINITIONS}
 PARENT_TARGET asan)
+
+  add_compiler_rt_runtime(clang_rt.asan_static
+STATIC
+ARCHS ${ASAN_SUPPORTED_ARCH}
+OBJECT_LIBS RTAsan_static
+CFLAGS ${ASAN_CFLAGS}
+DEFS ${ASAN_COMMON_DEFINITIONS}
+PARENT_TARGET asan)
 else()
   # Build separate libraries for each target.
 
@@ -207,6 +230,14 @@ else()
 DEFS ${ASAN_COMMON_DEFINITIONS}
 PARENT_TARGET asan)
 
+  add_compiler_rt_runtime(clang_rt.asan_static
+STATIC
+ARCHS ${ASAN_SUPPORTED_ARCH}
+OBJECT_LIBS RTAsan_static
+CFLAGS ${ASAN_CFLAGS}
+DEFS ${ASAN_COMMON_DEFINITIONS}
+PARENT_TARGET asan)
+
   add_compiler_rt_runtime(clang_rt.asan-preinit
 STATIC
 ARCHS ${ASAN_SUPPORTED_ARCH}

diff  --git a/compiler-rt/lib/asan/asan_rtl_static.cpp 
b/compiler-rt/lib/asan/asan_rtl_static.cpp
new file mode 100644
index 0..74e6eb0ddf1cf
--- /dev/null
+++ b/compiler-rt/lib/asan/asan_rtl_static.cpp
@@ -0,0 +1,15 @@
+//===-- asan_static_rtl.cpp 
---===//
+//
+// 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: Apache-2.0 WITH LLVM-exception
+//
+//===--===//
+//
+// This file is a part of AddressSanitizer, an address sanity checker.
+//
+// Main file of the ASan run-time library.
+//===--===//
+
+// This file is empty for 

Re: [PATCH] D116182: [ASan] Moved optimized callbacks into a separate library.

2021-12-23 Thread Kirill Stoimenov via cfe-commits
I got a couple of options myself:

adan_instrumentation
asan_fast_path
asan_mini

What do you think?


On Wed, Dec 22, 2021, 3:30 PM Evgenii Stepanov via Phabricator <
revi...@reviews.llvm.org> wrote:

> eugenis added a comment.
>
> I don't like the name "asan_dso". DSO means "dynamic shared object", and
> this is the very opposite of that. Maybe "asan_private" or "asan_helper"?
>
>
> Repository:
>   rG LLVM Github Monorepo
>
> CHANGES SINCE LAST ACTION
>   https://reviews.llvm.org/D116182/new/
>
> https://reviews.llvm.org/D116182
>
>
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] 4bf3165 - Revert "[ASan] Moved optimized callbacks into a separate library."

2021-12-23 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2021-12-23T17:13:18Z
New Revision: 4bf31659fac73ed6ebeb4b4d95dc41aac5dcd666

URL: 
https://github.com/llvm/llvm-project/commit/4bf31659fac73ed6ebeb4b4d95dc41aac5dcd666
DIFF: 
https://github.com/llvm/llvm-project/commit/4bf31659fac73ed6ebeb4b4d95dc41aac5dcd666.diff

LOG: Revert "[ASan] Moved optimized callbacks into a separate library."

This reverts commit ab3640aa0e8361921a5d0cdc393a5b75e78ec22b.

Reviewed By: kstoimenov

Differential Revision: https://reviews.llvm.org/D116223

Added: 


Modified: 
clang/lib/Driver/ToolChains/CommonArgs.cpp
clang/test/Driver/sanitizer-ld.c
compiler-rt/lib/asan/CMakeLists.txt
compiler-rt/lib/asan/tests/CMakeLists.txt

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 267625c70b251..407f81a2ae09a 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -826,11 +826,6 @@ collectSanitizerRuntimes(const ToolChain , const 
ArgList ,
   if (SanArgs.needsStatsRt() && SanArgs.linkRuntimes())
 StaticRuntimes.push_back("stats_client");
 
-  // Always link the static runtime regardless of DSO or executable.
-  if (SanArgs.needsAsanRt()) {
-HelperStaticRuntimes.push_back("asan_static");
-  }
-
   // Collect static runtimes.
   if (Args.hasArg(options::OPT_shared)) {
 // Don't link static runtimes into DSOs.

diff  --git a/clang/test/Driver/sanitizer-ld.c 
b/clang/test/Driver/sanitizer-ld.c
index ea8c49f2384ad..d62e19fd4021b 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -22,7 +22,7 @@
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
 // RUN:   | FileCheck --check-prefix=CHECK-ASAN-NO-LINK-RUNTIME-LINUX %s
 //
-// CHECK-ASAN-NO-LINK-RUNTIME-LINUX-NOT: libclang_rt.asan-x86_64
+// CHECK-ASAN-NO-LINK-RUNTIME-LINUX-NOT: libclang_rt.asan
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
 // RUN: -target i386-unknown-linux -fuse-ld=ld -fsanitize=address 
-shared-libsan \

diff  --git a/compiler-rt/lib/asan/CMakeLists.txt 
b/compiler-rt/lib/asan/CMakeLists.txt
index 2ca59c94cc757..2e63c8d051688 100644
--- a/compiler-rt/lib/asan/CMakeLists.txt
+++ b/compiler-rt/lib/asan/CMakeLists.txt
@@ -34,6 +34,7 @@ set(ASAN_SOURCES
 
 if (NOT WIN32 AND NOT APPLE)
   list(APPEND ASAN_SOURCES
+asan_rtl_x86_64.S
 asan_interceptors_vfork.S
 )
 endif()
@@ -42,12 +43,6 @@ set(ASAN_CXX_SOURCES
   asan_new_delete.cpp
   )
 
-if (NOT WIN32 AND NOT APPLE)
-  set(ASAN_STATIC_SOURCES
-asan_rtl_x86_64.S
-  )
-endif()
-
 set(ASAN_PREINIT_SOURCES
   asan_preinit.cpp
   )
@@ -140,12 +135,6 @@ if(NOT APPLE)
 ADDITIONAL_HEADERS ${ASAN_HEADERS}
 CFLAGS ${ASAN_CFLAGS}
 DEFS ${ASAN_COMMON_DEFINITIONS})
-  add_compiler_rt_object_libraries(RTAsan_static
-ARCHS ${ASAN_SUPPORTED_ARCH}
-SOURCES ${ASAN_STATIC_SOURCES}
-ADDITIONAL_HEADERS ${ASAN_HEADERS}
-CFLAGS ${ASAN_CFLAGS}
-DEFS ${ASAN_COMMON_DEFINITIONS})
   add_compiler_rt_object_libraries(RTAsan_preinit
 ARCHS ${ASAN_SUPPORTED_ARCH}
 SOURCES ${ASAN_PREINIT_SOURCES}
@@ -187,14 +176,6 @@ if(APPLE)
 LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
 DEFS ${ASAN_DYNAMIC_DEFINITIONS}
 PARENT_TARGET asan)
-
-  add_compiler_rt_runtime(clang_rt.asan_static
-STATIC
-ARCHS ${ASAN_SUPPORTED_ARCH}
-OBJECT_LIBS RTAsan_static
-CFLAGS ${ASAN_CFLAGS}
-DEFS ${ASAN_COMMON_DEFINITIONS}
-PARENT_TARGET asan)
 else()
   # Build separate libraries for each target.
 
@@ -226,14 +207,6 @@ else()
 DEFS ${ASAN_COMMON_DEFINITIONS}
 PARENT_TARGET asan)
 
-  add_compiler_rt_runtime(clang_rt.asan_static
-STATIC
-ARCHS ${ASAN_SUPPORTED_ARCH}
-OBJECT_LIBS RTAsan_static
-CFLAGS ${ASAN_CFLAGS}
-DEFS ${ASAN_COMMON_DEFINITIONS}
-PARENT_TARGET asan)
-
   add_compiler_rt_runtime(clang_rt.asan-preinit
 STATIC
 ARCHS ${ASAN_SUPPORTED_ARCH}

diff  --git a/compiler-rt/lib/asan/tests/CMakeLists.txt 
b/compiler-rt/lib/asan/tests/CMakeLists.txt
index 95a324766ae7c..cc375acf2dfbc 100644
--- a/compiler-rt/lib/asan/tests/CMakeLists.txt
+++ b/compiler-rt/lib/asan/tests/CMakeLists.txt
@@ -261,7 +261,6 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS AND NOT ANDROID)
   set(ASAN_TEST_RUNTIME_OBJECTS
 $
 $
-$
 $
 $
 $
@@ -287,7 +286,6 @@ if(ANDROID)
 # Test w/o ASan instrumentation. Link it with ASan statically.
 add_executable(AsanNoinstTest # FIXME: .arch?
   $
-  $
   $
   $
   $



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] ab3640a - [ASan] Moved optimized callbacks into a separate library.

2021-12-23 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2021-12-23T16:40:36Z
New Revision: ab3640aa0e8361921a5d0cdc393a5b75e78ec22b

URL: 
https://github.com/llvm/llvm-project/commit/ab3640aa0e8361921a5d0cdc393a5b75e78ec22b
DIFF: 
https://github.com/llvm/llvm-project/commit/ab3640aa0e8361921a5d0cdc393a5b75e78ec22b.diff

LOG: [ASan] Moved optimized callbacks into a separate library.

This will allow linking in the callbacks directly instead of using PLT.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D116182

Added: 


Modified: 
clang/lib/Driver/ToolChains/CommonArgs.cpp
clang/test/Driver/sanitizer-ld.c
compiler-rt/lib/asan/CMakeLists.txt
compiler-rt/lib/asan/tests/CMakeLists.txt

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 407f81a2ae09a..267625c70b251 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -826,6 +826,11 @@ collectSanitizerRuntimes(const ToolChain , const 
ArgList ,
   if (SanArgs.needsStatsRt() && SanArgs.linkRuntimes())
 StaticRuntimes.push_back("stats_client");
 
+  // Always link the static runtime regardless of DSO or executable.
+  if (SanArgs.needsAsanRt()) {
+HelperStaticRuntimes.push_back("asan_static");
+  }
+
   // Collect static runtimes.
   if (Args.hasArg(options::OPT_shared)) {
 // Don't link static runtimes into DSOs.

diff  --git a/clang/test/Driver/sanitizer-ld.c 
b/clang/test/Driver/sanitizer-ld.c
index d62e19fd4021b..ea8c49f2384ad 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -22,7 +22,7 @@
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
 // RUN:   | FileCheck --check-prefix=CHECK-ASAN-NO-LINK-RUNTIME-LINUX %s
 //
-// CHECK-ASAN-NO-LINK-RUNTIME-LINUX-NOT: libclang_rt.asan
+// CHECK-ASAN-NO-LINK-RUNTIME-LINUX-NOT: libclang_rt.asan-x86_64
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
 // RUN: -target i386-unknown-linux -fuse-ld=ld -fsanitize=address 
-shared-libsan \

diff  --git a/compiler-rt/lib/asan/CMakeLists.txt 
b/compiler-rt/lib/asan/CMakeLists.txt
index 2e63c8d051688..2ca59c94cc757 100644
--- a/compiler-rt/lib/asan/CMakeLists.txt
+++ b/compiler-rt/lib/asan/CMakeLists.txt
@@ -34,7 +34,6 @@ set(ASAN_SOURCES
 
 if (NOT WIN32 AND NOT APPLE)
   list(APPEND ASAN_SOURCES
-asan_rtl_x86_64.S
 asan_interceptors_vfork.S
 )
 endif()
@@ -43,6 +42,12 @@ set(ASAN_CXX_SOURCES
   asan_new_delete.cpp
   )
 
+if (NOT WIN32 AND NOT APPLE)
+  set(ASAN_STATIC_SOURCES
+asan_rtl_x86_64.S
+  )
+endif()
+
 set(ASAN_PREINIT_SOURCES
   asan_preinit.cpp
   )
@@ -135,6 +140,12 @@ if(NOT APPLE)
 ADDITIONAL_HEADERS ${ASAN_HEADERS}
 CFLAGS ${ASAN_CFLAGS}
 DEFS ${ASAN_COMMON_DEFINITIONS})
+  add_compiler_rt_object_libraries(RTAsan_static
+ARCHS ${ASAN_SUPPORTED_ARCH}
+SOURCES ${ASAN_STATIC_SOURCES}
+ADDITIONAL_HEADERS ${ASAN_HEADERS}
+CFLAGS ${ASAN_CFLAGS}
+DEFS ${ASAN_COMMON_DEFINITIONS})
   add_compiler_rt_object_libraries(RTAsan_preinit
 ARCHS ${ASAN_SUPPORTED_ARCH}
 SOURCES ${ASAN_PREINIT_SOURCES}
@@ -176,6 +187,14 @@ if(APPLE)
 LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
 DEFS ${ASAN_DYNAMIC_DEFINITIONS}
 PARENT_TARGET asan)
+
+  add_compiler_rt_runtime(clang_rt.asan_static
+STATIC
+ARCHS ${ASAN_SUPPORTED_ARCH}
+OBJECT_LIBS RTAsan_static
+CFLAGS ${ASAN_CFLAGS}
+DEFS ${ASAN_COMMON_DEFINITIONS}
+PARENT_TARGET asan)
 else()
   # Build separate libraries for each target.
 
@@ -207,6 +226,14 @@ else()
 DEFS ${ASAN_COMMON_DEFINITIONS}
 PARENT_TARGET asan)
 
+  add_compiler_rt_runtime(clang_rt.asan_static
+STATIC
+ARCHS ${ASAN_SUPPORTED_ARCH}
+OBJECT_LIBS RTAsan_static
+CFLAGS ${ASAN_CFLAGS}
+DEFS ${ASAN_COMMON_DEFINITIONS}
+PARENT_TARGET asan)
+
   add_compiler_rt_runtime(clang_rt.asan-preinit
 STATIC
 ARCHS ${ASAN_SUPPORTED_ARCH}

diff  --git a/compiler-rt/lib/asan/tests/CMakeLists.txt 
b/compiler-rt/lib/asan/tests/CMakeLists.txt
index cc375acf2dfbc..95a324766ae7c 100644
--- a/compiler-rt/lib/asan/tests/CMakeLists.txt
+++ b/compiler-rt/lib/asan/tests/CMakeLists.txt
@@ -261,6 +261,7 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS AND NOT ANDROID)
   set(ASAN_TEST_RUNTIME_OBJECTS
 $
 $
+$
 $
 $
 $
@@ -286,6 +287,7 @@ if(ANDROID)
 # Test w/o ASan instrumentation. Link it with ASan statically.
 add_executable(AsanNoinstTest # FIXME: .arch?
   $
+  $
   $
   $
   $



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] a55c4ec - [ASan] Process functions in Asan module pass

2021-11-03 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2021-11-03T20:27:53Z
New Revision: a55c4ec1cee7683d9095327d9d33e7137ec25292

URL: 
https://github.com/llvm/llvm-project/commit/a55c4ec1cee7683d9095327d9d33e7137ec25292
DIFF: 
https://github.com/llvm/llvm-project/commit/a55c4ec1cee7683d9095327d9d33e7137ec25292.diff

LOG: [ASan] Process functions in Asan module pass

This came up as recommendation while reviewing D112098.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D112732

Added: 


Modified: 
clang/lib/CodeGen/BackendUtil.cpp
llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
llvm/test/Instrumentation/SanitizerCoverage/tracing-comdat.ll
llvm/tools/opt/NewPMDriver.cpp

Removed: 




diff  --git a/clang/lib/CodeGen/BackendUtil.cpp 
b/clang/lib/CodeGen/BackendUtil.cpp
index 64f972fe11a52..cc4eb539f94a2 100644
--- a/clang/lib/CodeGen/BackendUtil.cpp
+++ b/clang/lib/CodeGen/BackendUtil.cpp
@@ -1188,8 +1188,6 @@ static void addSanitizers(const Triple ,
 MPM.addPass(RequireAnalysisPass());
 MPM.addPass(ModuleAddressSanitizerPass(
 Opts, UseGlobalGC, UseOdrIndicator, DestructorKind));
-MPM.addPass(
-createModuleToFunctionPassAdaptor(AddressSanitizerPass(Opts)));
   }
 };
 ASanPass(SanitizerKind::Address, false);

diff  --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp 
b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
index beb252b763c13..18b3552656b57 100644
--- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
@@ -1300,14 +1300,22 @@ ModuleAddressSanitizerPass::ModuleAddressSanitizerPass(
   UseOdrIndicator(UseOdrIndicator), DestructorKind(DestructorKind) {}
 
 PreservedAnalyses ModuleAddressSanitizerPass::run(Module ,
-  AnalysisManager ) 
{
-  GlobalsMetadata  = AM.getResult(M);
-  ModuleAddressSanitizer Sanitizer(M, , Options.CompileKernel,
-   Options.Recover, UseGlobalGC,
-   UseOdrIndicator, DestructorKind);
-  if (Sanitizer.instrumentModule(M))
-return PreservedAnalyses::none();
-  return PreservedAnalyses::all();
+  ModuleAnalysisManager ) {
+  GlobalsMetadata  = MAM.getResult(M);
+  ModuleAddressSanitizer ModuleSanitizer(M, , Options.CompileKernel,
+ Options.Recover, UseGlobalGC,
+ UseOdrIndicator, DestructorKind);
+  bool Modified = false;
+  auto  = 
MAM.getResult(M).getManager();
+  for (Function  : M) {
+AddressSanitizer FunctionSanitizer(M, , Options.CompileKernel,
+   Options.Recover, Options.UseAfterScope,
+   Options.UseAfterReturn);
+const TargetLibraryInfo  = FAM.getResult(F);
+Modified |= FunctionSanitizer.instrumentFunction(F, );
+  }
+  Modified |= ModuleSanitizer.instrumentModule(M);
+  return Modified ? PreservedAnalyses::none() : PreservedAnalyses::all();
 }
 
 INITIALIZE_PASS(ASanGlobalsMetadataWrapperPass, "asan-globals-md",
@@ -2841,6 +2849,8 @@ bool 
AddressSanitizer::suppressInstrumentationSiteForDebug(int ) {
 
 bool AddressSanitizer::instrumentFunction(Function ,
   const TargetLibraryInfo *TLI) {
+  if (F.empty())
+return false;
   if (F.getLinkage() == GlobalValue::AvailableExternallyLinkage) return false;
   if (!ClDebugFunc.empty() && ClDebugFunc == F.getName()) return false;
   if (F.getName().startswith("__asan_")) return false;

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/tracing-comdat.ll 
b/llvm/test/Instrumentation/SanitizerCoverage/tracing-comdat.ll
index 3f7003b136aef..4c3871842eb37 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/tracing-comdat.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/tracing-comdat.ll
@@ -2,7 +2,7 @@
 ; Make sure asan does not instrument __sancov_gen_
 
 ; RUN: opt < %s -passes='module(sancov-module)' -sanitizer-coverage-level=3 
-sanitizer-coverage-trace-pc-guard  -S  | FileCheck %s
-; RUN: opt < %s 
-passes='module(require,sancov-module,asan-module),function(asan)'
 -sanitizer-coverage-level=3 -sanitizer-coverage-trace-pc-guard  -S  | 
FileCheck %s
+; RUN: opt < %s 
-passes='module(require,sancov-module,asan-module)' 
-sanitizer-coverage-level=3 -sanitizer-coverage-trace-pc-guard  -S  | FileCheck 
%s
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
 $Foo = comdat any

diff  --git a/llvm/tools/opt/NewPMDriver.cpp b/llvm/tools/opt/NewPMDriver.cpp
index 8093023451176..631d8eed5d7a8 100644
--- a/llvm/tools/opt/NewPMDriver.cpp
+++ b/llvm/tools/opt/NewPMDriver.cpp
@@ -344,8 +344,6 @@ bool llvm::runPassPipeline(StringRef 

[clang] b314532 - Revert "[ASan] Process functions in Asan module pass"

2021-11-03 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2021-11-03T18:01:01Z
New Revision: b3145323b549eea95b3b088cb2064bf0bf81cfe6

URL: 
https://github.com/llvm/llvm-project/commit/b3145323b549eea95b3b088cb2064bf0bf81cfe6
DIFF: 
https://github.com/llvm/llvm-project/commit/b3145323b549eea95b3b088cb2064bf0bf81cfe6.diff

LOG: Revert "[ASan] Process functions in Asan module pass"

This reverts commit 76ea87b94e5cba335d691e4e18e3464ad45c8b52.

Reviewed By: kstoimenov

Differential Revision: https://reviews.llvm.org/D113129

Added: 


Modified: 
clang/lib/CodeGen/BackendUtil.cpp
llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
llvm/lib/Passes/PassRegistry.def
llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
llvm/test/Instrumentation/SanitizerCoverage/tracing-comdat.ll
llvm/test/Other/new-pm-print-pipeline.ll
llvm/tools/opt/NewPMDriver.cpp

Removed: 




diff  --git a/clang/lib/CodeGen/BackendUtil.cpp 
b/clang/lib/CodeGen/BackendUtil.cpp
index cca6eb44938ca..534d98be4344a 100644
--- a/clang/lib/CodeGen/BackendUtil.cpp
+++ b/clang/lib/CodeGen/BackendUtil.cpp
@@ -1185,9 +1185,11 @@ static void addSanitizers(const Triple ,
 llvm::AsanDetectStackUseAfterReturnMode UseAfterReturn =
 CodeGenOpts.getSanitizeAddressUseAfterReturn();
 MPM.addPass(RequireAnalysisPass());
-MPM.addPass(ModuleAddressSanitizerPass(
-CompileKernel, Recover, ModuleUseAfterScope, UseOdrIndicator,
-DestructorKind, UseAfterScope, UseAfterReturn));
+MPM.addPass(ModuleAddressSanitizerPass(CompileKernel, Recover,
+   UseGlobalGC, UseOdrIndicator,
+   DestructorKind));
+MPM.addPass(createModuleToFunctionPassAdaptor(AddressSanitizerPass(
+{CompileKernel, Recover, UseAfterScope, UseAfterReturn})));
   }
 };
 ASanPass(SanitizerKind::Address, false);

diff  --git a/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h 
b/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
index fb65c59408466..ea18974798570 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
@@ -128,10 +128,7 @@ class ModuleAddressSanitizerPass
   explicit ModuleAddressSanitizerPass(
   bool CompileKernel = false, bool Recover = false, bool UseGlobalGC = 
true,
   bool UseOdrIndicator = false,
-  AsanDtorKind DestructorKind = AsanDtorKind::Global,
-  bool UseAfterScope = false,
-  AsanDetectStackUseAfterReturnMode UseAfterReturn =
-  AsanDetectStackUseAfterReturnMode::Runtime);
+  AsanDtorKind DestructorKind = AsanDtorKind::Global);
   PreservedAnalyses run(Module , ModuleAnalysisManager );
   void printPipeline(raw_ostream ,
  function_ref MapClassName2PassName);
@@ -143,8 +140,6 @@ class ModuleAddressSanitizerPass
   bool UseGlobalGC;
   bool UseOdrIndicator;
   AsanDtorKind DestructorKind;
-  bool UseAfterScope;
-  AsanDetectStackUseAfterReturnMode UseAfterReturn;
 };
 
 // Insert AddressSanitizer (address sanity checking) instrumentation

diff  --git a/llvm/lib/Passes/PassRegistry.def 
b/llvm/lib/Passes/PassRegistry.def
index 58966d3e715d3..655c472878a00 100644
--- a/llvm/lib/Passes/PassRegistry.def
+++ b/llvm/lib/Passes/PassRegistry.def
@@ -136,7 +136,7 @@ MODULE_PASS_WITH_PARAMS("hwasan",
 },
 parseHWASanPassOptions,
 "kernel;recover")
-MODULE_PASS_WITH_PARAMS("asan",
+MODULE_PASS_WITH_PARAMS("asan-module",
 "ModuleAddressSanitizerPass",
 [](bool CompileKernel) {
   return ModuleAddressSanitizerPass(CompileKernel,
@@ -393,6 +393,13 @@ FUNCTION_PASS_WITH_PARAMS("loop-unroll",
   "no-profile-peeling;profile-peeling;"
   "no-runtime;runtime;"
   "no-upperbound;upperbound")
+FUNCTION_PASS_WITH_PARAMS("asan",
+  "AddressSanitizerPass",
+   [](AddressSanitizerOptions Opts) {
+ return AddressSanitizerPass(Opts);
+   },
+  parseASanPassOptions,
+  "kernel")
 FUNCTION_PASS_WITH_PARAMS("msan",
   "MemorySanitizerPass",
[](MemorySanitizerOptions Opts) {

diff  --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp 
b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
index 9cd63574d266d..5563fc14d151b 100644
--- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
@@ -1295,28 +1295,17 @@ void ModuleAddressSanitizerPass::printPipeline(
 
 

[clang] 76ea87b - [ASan] Process functions in Asan module pass

2021-11-03 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2021-11-03T17:51:01Z
New Revision: 76ea87b94e5cba335d691e4e18e3464ad45c8b52

URL: 
https://github.com/llvm/llvm-project/commit/76ea87b94e5cba335d691e4e18e3464ad45c8b52
DIFF: 
https://github.com/llvm/llvm-project/commit/76ea87b94e5cba335d691e4e18e3464ad45c8b52.diff

LOG: [ASan] Process functions in Asan module pass

This came up as recommendation while reviewing D112098.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D112732

Added: 


Modified: 
clang/lib/CodeGen/BackendUtil.cpp
llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
llvm/lib/Passes/PassRegistry.def
llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
llvm/test/Instrumentation/SanitizerCoverage/tracing-comdat.ll
llvm/test/Other/new-pm-print-pipeline.ll
llvm/tools/opt/NewPMDriver.cpp

Removed: 




diff  --git a/clang/lib/CodeGen/BackendUtil.cpp 
b/clang/lib/CodeGen/BackendUtil.cpp
index 534d98be4344a..cca6eb44938ca 100644
--- a/clang/lib/CodeGen/BackendUtil.cpp
+++ b/clang/lib/CodeGen/BackendUtil.cpp
@@ -1185,11 +1185,9 @@ static void addSanitizers(const Triple ,
 llvm::AsanDetectStackUseAfterReturnMode UseAfterReturn =
 CodeGenOpts.getSanitizeAddressUseAfterReturn();
 MPM.addPass(RequireAnalysisPass());
-MPM.addPass(ModuleAddressSanitizerPass(CompileKernel, Recover,
-   UseGlobalGC, UseOdrIndicator,
-   DestructorKind));
-MPM.addPass(createModuleToFunctionPassAdaptor(AddressSanitizerPass(
-{CompileKernel, Recover, UseAfterScope, UseAfterReturn})));
+MPM.addPass(ModuleAddressSanitizerPass(
+CompileKernel, Recover, ModuleUseAfterScope, UseOdrIndicator,
+DestructorKind, UseAfterScope, UseAfterReturn));
   }
 };
 ASanPass(SanitizerKind::Address, false);

diff  --git a/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h 
b/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
index ea18974798570..fb65c59408466 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
@@ -128,7 +128,10 @@ class ModuleAddressSanitizerPass
   explicit ModuleAddressSanitizerPass(
   bool CompileKernel = false, bool Recover = false, bool UseGlobalGC = 
true,
   bool UseOdrIndicator = false,
-  AsanDtorKind DestructorKind = AsanDtorKind::Global);
+  AsanDtorKind DestructorKind = AsanDtorKind::Global,
+  bool UseAfterScope = false,
+  AsanDetectStackUseAfterReturnMode UseAfterReturn =
+  AsanDetectStackUseAfterReturnMode::Runtime);
   PreservedAnalyses run(Module , ModuleAnalysisManager );
   void printPipeline(raw_ostream ,
  function_ref MapClassName2PassName);
@@ -140,6 +143,8 @@ class ModuleAddressSanitizerPass
   bool UseGlobalGC;
   bool UseOdrIndicator;
   AsanDtorKind DestructorKind;
+  bool UseAfterScope;
+  AsanDetectStackUseAfterReturnMode UseAfterReturn;
 };
 
 // Insert AddressSanitizer (address sanity checking) instrumentation

diff  --git a/llvm/lib/Passes/PassRegistry.def 
b/llvm/lib/Passes/PassRegistry.def
index 655c472878a00..58966d3e715d3 100644
--- a/llvm/lib/Passes/PassRegistry.def
+++ b/llvm/lib/Passes/PassRegistry.def
@@ -136,7 +136,7 @@ MODULE_PASS_WITH_PARAMS("hwasan",
 },
 parseHWASanPassOptions,
 "kernel;recover")
-MODULE_PASS_WITH_PARAMS("asan-module",
+MODULE_PASS_WITH_PARAMS("asan",
 "ModuleAddressSanitizerPass",
 [](bool CompileKernel) {
   return ModuleAddressSanitizerPass(CompileKernel,
@@ -393,13 +393,6 @@ FUNCTION_PASS_WITH_PARAMS("loop-unroll",
   "no-profile-peeling;profile-peeling;"
   "no-runtime;runtime;"
   "no-upperbound;upperbound")
-FUNCTION_PASS_WITH_PARAMS("asan",
-  "AddressSanitizerPass",
-   [](AddressSanitizerOptions Opts) {
- return AddressSanitizerPass(Opts);
-   },
-  parseASanPassOptions,
-  "kernel")
 FUNCTION_PASS_WITH_PARAMS("msan",
   "MemorySanitizerPass",
[](MemorySanitizerOptions Opts) {

diff  --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp 
b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
index 5563fc14d151b..9cd63574d266d 100644
--- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
@@ -1295,17 +1295,28 @@ void ModuleAddressSanitizerPass::printPipeline(
 
 

[clang] 7139497 - [asan] Slightly modified the documentation.

2021-07-15 Thread Kirill Stoimenov via cfe-commits

Author: Kirill Stoimenov
Date: 2021-07-15T16:36:00-07:00
New Revision: 7139497656147275156e7242a8bf08794af9130a

URL: 
https://github.com/llvm/llvm-project/commit/7139497656147275156e7242a8bf08794af9130a
DIFF: 
https://github.com/llvm/llvm-project/commit/7139497656147275156e7242a8bf08794af9130a.diff

LOG: [asan] Slightly modified the documentation.

The goal of this change is to test if I can commit changes.

Reviewed By: kcc

Differential Revision: https://reviews.llvm.org/D106101

Added: 


Modified: 
clang/docs/AddressSanitizer.rst

Removed: 




diff  --git a/clang/docs/AddressSanitizer.rst b/clang/docs/AddressSanitizer.rst
index 15ac6ff5ac850..7befbc3173da8 100644
--- a/clang/docs/AddressSanitizer.rst
+++ b/clang/docs/AddressSanitizer.rst
@@ -286,7 +286,7 @@ By default AddressSanitizer inlines the instumentation code 
to improve the
 run-time performance, which leads to increased binary size. Using the
 (clang flag ``-fsanitize-address-outline-instrumentation` default: ``false``)
 flag forces all code instumentation to be outlined, which reduces the size
-of the binary, but also reduces the run-time performace.
+of the generated code, but also reduces the run-time performace.
 
 Limitations
 ===



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits