[clang] [clang][TypePrinter] Replace AppendScope with printNestedNameSpecifier (PR #168534)

2025-11-20 Thread Vlad Serebrennikov via cfe-commits
@@ -1241,7 +1241,7 @@ namespace cwg686 { // cwg686: 3.0 #endif struct N { operator struct O{}(){}; - // expected-error@-1 {{'N::O' cannot be defined in a type specifier}} + // expected-error@-1 {{'cwg686::f()::N::O' cannot be defined in a type specifier}} -

[clang] [llvm] [HLSL][DXIL][SPIRV] WavePrefixSum intrinsic support (PR #167946)

2025-11-20 Thread via cfe-commits
@@ -276,6 +276,29 @@ llvm::Triple::ArchType CGHLSLRuntime::getArch() { return CGM.getTarget().getTriple().getArch(); } +llvm::Intrinsic::ID +CGHLSLRuntime::getUnsignedIntrinsicVariant(llvm::Intrinsic::ID IID) { kcloudy0717 wrote: My reasoning for this appro

[clang] [Clang][X86] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow VPERMILPD/S variable mask intrinsics to be used in constexpr (PR #168861)

2025-11-20 Thread Simon Pilgrim via cfe-commits
@@ -1454,24 +1454,52 @@ __m128d test_mm_permutevar_pd(__m128d A, __m128i B) { // CHECK: call {{.*}}<2 x double> @llvm.x86.avx.vpermilvar.pd(<2 x double> %{{.*}}, <2 x i64> %{{.*}}) return _mm_permutevar_pd(A, B); } +TEST_CONSTEXPR(match_m128d( + _mm_permutevar_pd( +((

[clang] [Clang][X86] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow VPERMILPD/S variable mask intrinsics to be used in constexpr (PR #168861)

2025-11-20 Thread Simon Pilgrim via cfe-commits
@@ -1454,24 +1454,52 @@ __m128d test_mm_permutevar_pd(__m128d A, __m128i B) { // CHECK: call {{.*}}<2 x double> @llvm.x86.avx.vpermilvar.pd(<2 x double> %{{.*}}, <2 x i64> %{{.*}}) return _mm_permutevar_pd(A, B); } +TEST_CONSTEXPR(match_m128d( + _mm_permutevar_pd( +((

[clang] [Clang][X86] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow VPERMILPD/S variable mask intrinsics to be used in constexpr (PR #168861)

2025-11-20 Thread Simon Pilgrim via cfe-commits
@@ -461,11 +494,14 @@ let Features = "avx", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWid def shufps256 : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant int)">; } -let Features = "avx", Attributes = [NoThrow, Const, RequiredVecto

[clang] [Clang][X86] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow VPERMILPD/S variable mask intrinsics to be used in constexpr (PR #168861)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon edited https://github.com/llvm/llvm-project/pull/168861 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][X86] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow VPERMILPD/S variable mask intrinsics to be used in constexpr (PR #168861)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon requested changes to this pull request. Thanks! https://github.com/llvm/llvm-project/pull/168861 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [flang] [Flang] Add -ffast-real-mod back for further control of MOD optimizations (PR #167118)

2025-11-20 Thread Michael Klemm via cfe-commits
mjklemm wrote: > Thanks for the changes. > > The tests in `Lower/Intrinsics/fast-real-mod.f90` now test that the options > are correctly handled by `-fc1` both with and without `-ffast-math` and when > both `-ffast-real-mod` and `-ffast-no-real-mod` are provided. That should be > checked in t

[clang] [flang] [Flang] Add -ffast-real-mod back for further control of MOD optimizations (PR #167118)

2025-11-20 Thread Michael Klemm via cfe-commits
https://github.com/mjklemm updated https://github.com/llvm/llvm-project/pull/167118 >From 8ed0841fac6537afeacddb29d9c3a2c8eec9dca6 Mon Sep 17 00:00:00 2001 From: Michael Klemm Date: Sat, 8 Nov 2025 11:03:17 +0100 Subject: [PATCH 1/4] [Flang] Add -ffast-real-mod back for further control of MOD

[clang] [clang][DebugInfo] Attach `DISubprogram` to additional call variants (PR #166202)

2025-11-20 Thread Alexander Kornienko via cfe-commits
alexfh wrote: > Does google use call site information (does it care about entry_values, or do > any extra stuff with the info)? @dwblaikie or @labath should know the answer. > I wonder if it would be useful to add a flag to disable call site info for > your builds (if such a flag doesn't alre

[clang] [Clang] Fix handling of explicit parameters in `SemaLambda` (PR #168558)

2025-11-20 Thread Willem Kaufmann via cfe-commits
WillemKauf wrote: cc: @cor3ntin ^ https://github.com/llvm/llvm-project/pull/168558 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow AVX512 VPSHUFBITQMB intrinsics to be used in constexpr (PR #168100)

2025-11-20 Thread Timm Baeder via cfe-commits
@@ -3391,6 +3391,72 @@ static bool interp__builtin_ia32_shuffle_generic( return true; } +static bool interp__builtin_ia32_shufbitqmb_mask(InterpState &S, CodePtr OpPC, + const CallExpr *Call) { + + assert(Call->getNumArgs() ==

[clang] [Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow AVX512 VPSHUFBITQMB intrinsics to be used in constexpr (PR #168100)

2025-11-20 Thread Simon Pilgrim via cfe-commits
@@ -15,6 +15,16 @@ #define __AVX512VLBITALGINTRIN_H /* Define the default attributes for the functions in this file. */ +#if defined(__cplusplus) && (__cplusplus >= 201103L) +#define __DEFAULT_FN_ATTRS128 \ + constexpr __attri

[clang] [Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow AVX512 VPSHUFBITQMB intrinsics to be used in constexpr (PR #168100)

2025-11-20 Thread Simon Pilgrim via cfe-commits
@@ -3391,6 +3391,72 @@ static bool interp__builtin_ia32_shuffle_generic( return true; } +static bool interp__builtin_ia32_shufbitqmb_mask(InterpState &S, CodePtr OpPC, + const CallExpr *Call) { + + assert(Call->getNumArgs() ==

[clang] [Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow AVX512 VPSHUFBITQMB intrinsics to be used in constexpr (PR #168100)

2025-11-20 Thread Simon Pilgrim via cfe-commits
@@ -3391,6 +3391,72 @@ static bool interp__builtin_ia32_shuffle_generic( return true; } +static bool interp__builtin_ia32_shufbitqmb_mask(InterpState &S, CodePtr OpPC, + const CallExpr *Call) { + + assert(Call->getNumArgs() ==

[clang] [Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow AVX512 VPSHUFBITQMB intrinsics to be used in constexpr (PR #168100)

2025-11-20 Thread Simon Pilgrim via cfe-commits
@@ -3391,6 +3391,72 @@ static bool interp__builtin_ia32_shuffle_generic( return true; } +static bool interp__builtin_ia32_shufbitqmb_mask(InterpState &S, CodePtr OpPC, + const CallExpr *Call) { + + assert(Call->getNumArgs() ==

[clang] [Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow AVX512 VPSHUFBITQMB intrinsics to be used in constexpr (PR #168100)

2025-11-20 Thread Simon Pilgrim via cfe-commits
@@ -15,44 +15,43 @@ #define __AVX512BITALGINTRIN_H /* Define the default attributes for the functions in this file. */ +#if defined(__cplusplus) && (__cplusplus >= 201103L) +#define __DEFAULT_FN_ATTRS \ + constexpr

[clang] [Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow AVX512 VPSHUFBITQMB intrinsics to be used in constexpr (PR #168100)

2025-11-20 Thread Simon Pilgrim via cfe-commits
@@ -3391,6 +3391,72 @@ static bool interp__builtin_ia32_shuffle_generic( return true; } +static bool interp__builtin_ia32_shufbitqmb_mask(InterpState &S, CodePtr OpPC, + const CallExpr *Call) { + + assert(Call->getNumArgs() ==

[clang] [Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow AVX512 VPSHUFBITQMB intrinsics to be used in constexpr (PR #168100)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon requested changes to this pull request. Mainly a few style comments (applicable to both InterpBuiltin and ExprConstant implementations). https://github.com/llvm/llvm-project/pull/168100 ___ cfe-commits mailing list cfe-commi

[clang] [Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow AVX512 VPSHUFBITQMB intrinsics to be used in constexpr (PR #168100)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon edited https://github.com/llvm/llvm-project/pull/168100 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL] Implement ddx/ddy_fine intrinsics (PR #168874)

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-hlsl Author: Alexander Johnston (Alexander-Johnston) Changes Implements the HLSL ddx_fine and ddy_fine intrinsics. For the SPIRV backend the intrinsics are ensured to be unavailable in opencl (as they require fragment execution stage). Closes https://g

[clang] [llvm] [HLSL] Implement ddx/ddy_fine intrinsics (PR #168874)

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-backend-x86 Author: Alexander Johnston (Alexander-Johnston) Changes Implements the HLSL ddx_fine and ddy_fine intrinsics. For the SPIRV backend the intrinsics are ensured to be unavailable in opencl (as they require fragment execution stage). Closes ht

[clang] [llvm] [HLSL] Implement ddx/ddy_fine intrinsics (PR #168874)

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-llvm-ir Author: Alexander Johnston (Alexander-Johnston) Changes Implements the HLSL ddx_fine and ddy_fine intrinsics. For the SPIRV backend the intrinsics are ensured to be unavailable in opencl (as they require fragment execution stage). Closes https:

[clang] [llvm] [HLSL] Implement ddx/ddy_fine intrinsics (PR #168874)

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-backend-spir-v Author: Alexander Johnston (Alexander-Johnston) Changes Implements the HLSL ddx_fine and ddy_fine intrinsics. For the SPIRV backend the intrinsics are ensured to be unavailable in opencl (as they require fragment execution stage). Closes

[clang] [llvm] [HLSL] Implement ddx/ddy_fine intrinsics (PR #168874)

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-backend-directx @llvm/pr-subscribers-clang-codegen Author: Alexander Johnston (Alexander-Johnston) Changes Implements the HLSL ddx_fine and ddy_fine intrinsics. For the SPIRV backend the intrinsics are ensured to be unavailable in opencl (as they requir

[clang] [llvm] [HLSL] Implement ddx/ddy_fine intrinsics (PR #168874)

2025-11-20 Thread Alexander Johnston via cfe-commits
https://github.com/Alexander-Johnston created https://github.com/llvm/llvm-project/pull/168874 Implements the HLSL ddx_fine and ddy_fine intrinsics. For the SPIRV backend the intrinsics are ensured to be unavailable in opencl (as they require fragment execution stage). Closes https://github.co

[clang] [llvm] [HLSL][DXIL][SPIRV] WavePrefixSum intrinsic support (PR #167946)

2025-11-20 Thread via cfe-commits
@@ -49,6 +49,33 @@ } \ } +// A function generator macro for picking the right intrinsic for the target +// backend given IsUnsigned boolean condition. If IsUnsigned == true, it calls +// getUnsigne

[clang] [clang-format] Option to insert spaces before the closing `*/` (PR #162105)

2025-11-20 Thread via cfe-commits
@@ -332,6 +332,429 @@ TEST_F(FormatTestComments, UnderstandsSingleLineComments) { verifyNoCrash(StringRef("/*\\\0\n/", 6)); } +TEST_F(FormatTestComments, InsertsSpaceAfterOpeningBlockComment) { Men-cotton wrote: I've reduced the test cases to two tests: `S

[clang] [clang][Driver] Support for the SPIR-V backend in the new driver when compiling HIP (PR #167543)

2025-11-20 Thread Juan Manuel Martinez Caamaño via cfe-commits
jmmartinez wrote: Hello, Just to add one data point: I've cherry-picked this PR over amd-staging and added 2 quick and dirty workarounds* for the SPIRV backend to work in https://github.com/ROCm/llvm-project/commits/users/jmmartinez/spirv/hacks_but_it_works . I then tried the following combi

[clang] [llvm] [HLSL][DXIL][SPIRV] WavePrefixSum intrinsic support (PR #167946)

2025-11-20 Thread via cfe-commits
@@ -276,6 +276,29 @@ llvm::Triple::ArchType CGHLSLRuntime::getArch() { return CGM.getTarget().getTriple().getArch(); } +llvm::Intrinsic::ID +CGHLSLRuntime::getUnsignedIntrinsicVariant(llvm::Intrinsic::ID IID) { kcloudy0717 wrote: Alright, I'll revert the ch

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread Valentyn Yukhymenko via cfe-commits
https://github.com/BaLiKfromUA edited https://github.com/llvm/llvm-project/pull/168863 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Support header shadowing diagnostics in Clang header search (PR #162491)

2025-11-20 Thread via cfe-commits
github-actions[bot] wrote: # :penguin: Linux x64 Test Results * 111355 tests passed * 4426 tests skipped https://github.com/llvm/llvm-project/pull/162491 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/l

[clang] [CIR] Add NYI cases to builtin switch statement and move existing cases into functions (PR #168699)

2025-11-20 Thread Hendrik Hübner via cfe-commits
https://github.com/HendrikHuebner updated https://github.com/llvm/llvm-project/pull/168699 From 8f84cb299a78cf2e3f7af578e80f56354f035af4 Mon Sep 17 00:00:00 2001 From: hhuebner Date: Thu, 20 Nov 2025 13:41:07 +0100 Subject: [PATCH 1/2] libcalls --- clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp | 61

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread Valentyn Yukhymenko via cfe-commits
https://github.com/BaLiKfromUA edited https://github.com/llvm/llvm-project/pull/168863 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Support header shadowing diagnostics in Clang header search (PR #162491)

2025-11-20 Thread Jinjie Huang via cfe-commits
Jinjie-Huang wrote: Thanks for the review. > While I know this is disabled by default, have we considered the compilation > time impact when it is enabled? Regarding the execution time, I tested with some internal files (ranging from average to small inputs) and didn't see any significant di

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread via cfe-commits
github-actions[bot] wrote: # :penguin: Linux x64 Test Results * 111347 tests passed * 4430 tests skipped https://github.com/llvm/llvm-project/pull/168863 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/l

[clang] [clang] Support header shadowing diagnostics in Clang header search (PR #162491)

2025-11-20 Thread Jinjie Huang via cfe-commits
https://github.com/Jinjie-Huang updated https://github.com/llvm/llvm-project/pull/162491 >From 2928471bb58221e8eee08a1da92d8565fb0901ad Mon Sep 17 00:00:00 2001 From: huangjinjie Date: Thu, 6 Nov 2025 19:38:53 +0800 Subject: [PATCH 1/6] header shadowing diagnostics --- clang/docs/ReleaseNotes

[clang] [BoundsSafety] Support late parsing for `counted_by` in type positions (PR #166491)

2025-11-20 Thread Aaron Ballman via cfe-commits
@@ -1161,10 +1161,13 @@ class Parser : public CodeCompletionHandler { IdentifierInfo *MacroII = nullptr; SourceLocation AttrNameLoc; SmallVector Decls; +unsigned NestedTypeLevel; AaronBallman wrote: Most attributes don't need to care about the

[clang] [llvm] [HLSL] Implement the `fwidth` intrinsic for DXIL and SPIR-V target (PR #161378)

2025-11-20 Thread Alexander Johnston via cfe-commits
Alexander-Johnston wrote: I don't have permissions to merge this. If you're happy with the nit fixes and test changes can you merge it @farzonl ? Thanks! https://github.com/llvm/llvm-project/pull/161378 ___ cfe-commits mailing list [email protected]

[clang] [flang] [Flang][FIR] Introduce ConvertFIRToMLIR pass. (PR #168703)

2025-11-20 Thread Ivan Butygin via cfe-commits
@@ -1008,6 +1008,29 @@ struct ConvertOpConversion : public fir::FIROpConversion { rewriter.replaceOpWithNewOp(convert, toTy, op0); return mlir::success(); } + // Pointer to MemRef conversion. + if (mlir::isa(toFirTy)) { +auto dstMemRef =

[clang] [LifetimeSafety] Detect expiry of loans to trivially destructed types (PR #168855)

2025-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 edited https://github.com/llvm/llvm-project/pull/168855 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [LifetimeSafety] Detect expiry of loans to trivially destructed types (PR #168855)

2025-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 edited https://github.com/llvm/llvm-project/pull/168855 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Clang][AArch64] Implement widening FMMLA intrinsics (PR #165282)

2025-11-20 Thread Amina Chabane via cfe-commits
Amichaxx wrote: hmm I did try this and couldn't get it to work, as you can see: `Intrinsic name not mangled correctly for type arguments! Should be: llvm.aarch64.sve.fp8.fmmla.nxv4f32` https://github.com/llvm/llvm-project/pull/165282 __

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread Valentyn Yukhymenko via cfe-commits
BaLiKfromUA wrote: cc @ccotter https://github.com/llvm/llvm-project/pull/168863 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread Valentyn Yukhymenko via cfe-commits
@@ -1,44 +1,40 @@ #ifndef LLVM_CLANG_TOOLS_EXTRA_TEST_CLANG_TIDY_CHECKERS_INPUTS_BDE_TYPES_OPTIONAL_H_ #define LLVM_CLANG_TOOLS_EXTRA_TEST_CLANG_TIDY_CHECKERS_INPUTS_BDE_TYPES_OPTIONAL_H_ -/// Mock of `bsl::optional`. +#include "../../std/types/optional.h" + namespace bsl {

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread Valentyn Yukhymenko via cfe-commits
@@ -1,44 +1,40 @@ #ifndef LLVM_CLANG_TOOLS_EXTRA_TEST_CLANG_TIDY_CHECKERS_INPUTS_BDE_TYPES_OPTIONAL_H_ #define LLVM_CLANG_TOOLS_EXTRA_TEST_CLANG_TIDY_CHECKERS_INPUTS_BDE_TYPES_OPTIONAL_H_ -/// Mock of `bsl::optional`. +#include "../../std/types/optional.h" + namespace bsl {

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread Valentyn Yukhymenko via cfe-commits
@@ -1,44 +1,40 @@ #ifndef LLVM_CLANG_TOOLS_EXTRA_TEST_CLANG_TIDY_CHECKERS_INPUTS_BDE_TYPES_OPTIONAL_H_ #define LLVM_CLANG_TOOLS_EXTRA_TEST_CLANG_TIDY_CHECKERS_INPUTS_BDE_TYPES_OPTIONAL_H_ -/// Mock of `bsl::optional`. +#include "../../std/types/optional.h" + namespace bsl {

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread Valentyn Yukhymenko via cfe-commits
@@ -1,44 +1,40 @@ #ifndef LLVM_CLANG_TOOLS_EXTRA_TEST_CLANG_TIDY_CHECKERS_INPUTS_BDE_TYPES_OPTIONAL_H_ #define LLVM_CLANG_TOOLS_EXTRA_TEST_CLANG_TIDY_CHECKERS_INPUTS_BDE_TYPES_OPTIONAL_H_ -/// Mock of `bsl::optional`. +#include "../../std/types/optional.h" + namespace bsl {

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang-tidy Author: Valentyn Yukhymenko (BaLiKfromUA) Changes ### Problem `bugprone-unchecked-optional-access` produces a lot of false positives if type inside of `bsl::optional` or `bdlb::NullableValue` is **allocator-aware**. This is a very common

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang-tools-extra Author: Valentyn Yukhymenko (BaLiKfromUA) Changes ### Problem `bugprone-unchecked-optional-access` produces a lot of false positives if type inside of `bsl::optional` or `bdlb::NullableValue` is **allocator-aware**. This is a very

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread Valentyn Yukhymenko via cfe-commits
https://github.com/BaLiKfromUA updated https://github.com/llvm/llvm-project/pull/168863 >From 95bb5a4636caae4d82262deadac65f02a93cf763 Mon Sep 17 00:00:00 2001 From: Valentyn Yukhymenko Date: Wed, 19 Nov 2025 00:26:47 + Subject: [PATCH 1/5] make first version of mocks to illustrate AA branc

[clang] [clang-tools-extra] [clang-tidy] `bugprone-unchecked-optional-access`: handle inheritance from `BloombergLP::bslstl::Optional_Base` to prevent false-positives for allocator-aware BDE types (PR

2025-11-20 Thread Valentyn Yukhymenko via cfe-commits
https://github.com/BaLiKfromUA created https://github.com/llvm/llvm-project/pull/168863 ### Problem `bugprone-unchecked-optional-access` produces a lot of false positives if type inside of `bsl::optional` or `bdlb::NullableValue` is **allocator-aware**. This is a very common pattern, especi

[clang] Detect expiry of loans to trivially destructed types (issue id: 162862) (PR #168855)

2025-11-20 Thread Gábor Horváth via cfe-commits
@@ -2987,6 +2987,7 @@ void clang::sema::AnalysisBasedWarnings::IssueWarnings( AC.getCFGBuildOptions().AddInitializers = true; AC.getCFGBuildOptions().AddImplicitDtors = true; AC.getCFGBuildOptions().AddTemporaryDtors = true; + AC.getCFGBuildOptions().AddLifetime = true;

[clang] Detect expiry of loans to trivially destructed types (issue id: 162862) (PR #168855)

2025-11-20 Thread Gábor Horváth via cfe-commits
https://github.com/Xazax-hun approved this pull request. Overall looks great, one comment inline. https://github.com/llvm/llvm-project/pull/168855 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/

[clang] [compiler-rt] [llvm] [TySan] User-friendly (C style) pointer type names for error reports (PR #166381)

2025-11-20 Thread via cfe-commits
github-actions[bot] wrote: # :penguin: Linux x64 Test Results * 5824 tests passed * 1319 tests skipped https://github.com/llvm/llvm-project/pull/166381 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/lis

[clang] [Clang] Allow AVX/AVX512 subvector shuffles in constexpr (PR #168700)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon requested changes to this pull request. Still needing test coverage for the the mask/maskz intrinsics https://github.com/llvm/llvm-project/pull/168700 ___ cfe-commits mailing list [email protected] https://lists.llvm

[clang] [clang-format] Option to insert spaces before the closing `*/` (PR #162105)

2025-11-20 Thread via cfe-commits
https://github.com/Men-cotton ready_for_review https://github.com/llvm/llvm-project/pull/162105 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][X86] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow VPERMILPD/S variable mask intrinsics to be used in constexpr (PR #168861)

2025-11-20 Thread via cfe-commits
https://github.com/stomfaig updated https://github.com/llvm/llvm-project/pull/168861 >From b0b258c0b1a613b43d43d25b1498df858fd7e01d Mon Sep 17 00:00:00 2001 From: stomfaig Date: Fri, 14 Nov 2025 20:48:04 + Subject: [PATCH 1/7] adding cases for vpermilvarpd and vpermilvarps --- clang/lib/A

[clang] [clang-format] Option to insert spaces before the closing `*/` (PR #162105)

2025-11-20 Thread via cfe-commits
Men-cotton wrote: Commit reorganization completed. I sincerely apologize to anyone who unnecessarily subscribed. https://github.com/llvm/llvm-project/pull/162105 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mai

[clang] Detect expiry of loans to trivially destructed types (issue id: 162862) (PR #168855)

2025-11-20 Thread via cfe-commits
github-actions[bot] wrote: # :penguin: Linux x64 Test Results * 111355 tests passed * 4426 tests skipped https://github.com/llvm/llvm-project/pull/168855 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/l

[clang] [Clang][X86] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow VPERMILPD/S variable mask intrinsics to be used in constexpr (PR #168861)

2025-11-20 Thread via cfe-commits
https://github.com/stomfaig updated https://github.com/llvm/llvm-project/pull/168861 >From b0b258c0b1a613b43d43d25b1498df858fd7e01d Mon Sep 17 00:00:00 2001 From: stomfaig Date: Fri, 14 Nov 2025 20:48:04 + Subject: [PATCH 1/6] adding cases for vpermilvarpd and vpermilvarps --- clang/lib/A

[clang] [compiler-rt] [llvm] [TySan] User-friendly (C style) pointer type names for error reports (PR #166381)

2025-11-20 Thread Benjamin Stott via cfe-commits
https://github.com/BStott6 updated https://github.com/llvm/llvm-project/pull/166381 >From 4481075fce712a3f55493264c11fba6cd4015a4b Mon Sep 17 00:00:00 2001 From: BStott Date: Tue, 4 Nov 2025 15:04:29 + Subject: [PATCH 1/5] [TySan] User-friendly (C style) pointer type names for error report

[clang] [AMDGPU] Add builtins for wave reduction intrinsics (PR #161816)

2025-11-20 Thread via cfe-commits
github-actions[bot] wrote: # :penguin: Linux x64 Test Results * 91129 tests passed * 2411 tests skipped * 1 test failed ## Failed Tests (click on a test name to see its output) ### RealtimeSanitizer-Unit RealtimeSanitizer-Unit._/Rtsan-x86_64-Test/RtsanFileTest/OpenCreatesFileWithProperMode

[clang] [clang][Driver] Support for the SPIR-V backend in the new driver when compiling HIP (PR #167543)

2025-11-20 Thread Manuel Carrasco via cfe-commits
https://github.com/mgcarrasco updated https://github.com/llvm/llvm-project/pull/167543 >From 0c3a34136d87a2c62143dba0b1a8ceb7a81172ca Mon Sep 17 00:00:00 2001 From: Manuel Carrasco Date: Mon, 17 Nov 2025 05:17:45 -0600 Subject: [PATCH 1/5] [NFC][clang][driver] Improve readability of long and c

[clang] [compiler-rt] [llvm] [TySan] User-friendly (C style) pointer type names for error reports (PR #166381)

2025-11-20 Thread Benjamin Stott via cfe-commits
https://github.com/BStott6 updated https://github.com/llvm/llvm-project/pull/166381 >From 4481075fce712a3f55493264c11fba6cd4015a4b Mon Sep 17 00:00:00 2001 From: BStott Date: Tue, 4 Nov 2025 15:04:29 + Subject: [PATCH 1/4] [TySan] User-friendly (C style) pointer type names for error report

[clang] [clang][Driver] Support for the SPIR-V backend in the new driver when compiling HIP (PR #167543)

2025-11-20 Thread Manuel Carrasco via cfe-commits
https://github.com/mgcarrasco updated https://github.com/llvm/llvm-project/pull/167543 >From 676bcbc754ba959e47dfcec9a12edf27ebf284c3 Mon Sep 17 00:00:00 2001 From: Manuel Carrasco Date: Mon, 17 Nov 2025 05:17:45 -0600 Subject: [PATCH 1/5] [NFC][clang][driver] Improve readability of long and c

[clang] [llvm] [clang][DebugInfo] Add virtual call-site target information in DWARF. (PR #167666)

2025-11-20 Thread Jeremy Morse via cfe-commits
jmorse wrote: > Yeah, seems problematic if the DWARF for a devirtualized or non-virtual call > (derived->Base::func() for instance) is indistinguishable from a virtual > call. Is that what's being proposed? The interpretation I've been taking here is that we're providing more information wher

[clang] [X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow AVX512 mask predicate intrinsics to be used in constexpr (PR #165054)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon closed https://github.com/llvm/llvm-project/pull/165054 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] a2b4c0f - [X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow AVX512 mask predicate intrinsics to be used in constexpr (#165054)

2025-11-20 Thread via cfe-commits
Author: sskzakaria Date: 2025-11-20T11:25:23Z New Revision: a2b4c0fbe03896ee5a9218e1ec6e4184de6ed4be URL: https://github.com/llvm/llvm-project/commit/a2b4c0fbe03896ee5a9218e1ec6e4184de6ed4be DIFF: https://github.com/llvm/llvm-project/commit/a2b4c0fbe03896ee5a9218e1ec6e4184de6ed4be.diff LOG: [X

[clang] [flang] [Flang][FIR] Introduce ConvertFIRToMLIR pass. (PR #168703)

2025-11-20 Thread Ming Yan via cfe-commits
https://github.com/NexMing converted_to_draft https://github.com/llvm/llvm-project/pull/168703 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Detect expiry of loans to trivially destructed types (issue id: 162862) (PR #168855)

2025-11-20 Thread via cfe-commits
github-actions[bot] wrote: ⚠️ We detected that you are using a GitHub private e-mail address to contribute to the repo. Please turn off [Keep my email addresses private](https://github.com/settings/emails) setting in your account. See [LLVM Developer Policy](https://llvm.org/docs/DeveloperPol

[clang] Detect expiry of loans to trivially destructed types (issue id: 162862) (PR #168855)

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang-temporal-safety Author: Kashika Akhouri (kashika0112) Changes Handling Trivially Destructed Types This PR uses `AddLifetime` to handle expiry of loans to trivially destructed types. Example: ``` int * trivial_uar(){ int *ptr; int x = 1;

[clang] [Clang][OpenMP] Bug fix Default clause variable category (PR #168846)

2025-11-20 Thread via cfe-commits
github-actions[bot] wrote: # :penguin: Linux x64 Test Results * 111348 tests passed * 4430 tests skipped https://github.com/llvm/llvm-project/pull/168846 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/l

[clang] Detect expiry of loans to trivially destructed types (issue id: 162862) (PR #168855)

2025-11-20 Thread Kashika Akhouri via cfe-commits
https://github.com/kashika0112 created https://github.com/llvm/llvm-project/pull/168855 Handling Trivially Destructed Types This PR uses `AddLifetime` to handle expiry of loans to trivially destructed types. Example: ``` int * trivial_uar(){ int *ptr; int x = 1; ptr = &x; ret

[clang] [flang] [Flang][FIR] Introduce ConvertFIRToMLIR pass. (PR #168703)

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-flang-fir-hlfir Author: Ming Yan (NexMing) Changes This patch begins a long-term effort to establish an incremental FIR to MLIR lowering path while preserving the existing FIR to LLVM pipeline. It introduces the core conversion infrastructure and demon

[clang] [flang] [Flang][FIR] Introduce ConvertFIRToMLIR pass. (PR #168703)

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-flang-driver Author: Ming Yan (NexMing) Changes This patch begins a long-term effort to establish an incremental FIR to MLIR lowering path while preserving the existing FIR to LLVM pipeline. It introduces the core conversion infrastructure and demonstr

[clang] [flang] [Flang][FIR] Introduce ConvertFIRToMLIR pass. (PR #168703)

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-flang-codegen Author: Ming Yan (NexMing) Changes This patch begins a long-term effort to establish an incremental FIR to MLIR lowering path while preserving the existing FIR to LLVM pipeline. It introduces the core conversion infrastructure and demonst

[clang] [flang] [Flang][FIR] Introduce ConvertFIRToMLIR pass. (PR #168703)

2025-11-20 Thread Ming Yan via cfe-commits
https://github.com/NexMing ready_for_review https://github.com/llvm/llvm-project/pull/168703 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][DebugInfo] Attach `DISubprogram` to additional call variants (PR #166202)

2025-11-20 Thread Orlando Cazalet-Hyams via cfe-commits
OCHyams wrote: > However, I would mention that AFAIK, a call_site entry can be useful iff: > 1. is marked as a tail call (debuggers use it to show the artificial frames) > 2. has call-site-paramters (debuggers use it along with entry_values) > Otherwise, we can avoid the call_sites in the fin

[clang] [flang] [Flang][FIR] Introduce ConvertFIRToMLIR pass. (PR #168703)

2025-11-20 Thread Ming Yan via cfe-commits
https://github.com/NexMing updated https://github.com/llvm/llvm-project/pull/168703 >From 5417db4aeb59ed70dd5ee9c0383a5961d4c7ab43 Mon Sep 17 00:00:00 2001 From: yanming Date: Thu, 13 Nov 2025 13:37:15 +0800 Subject: [PATCH 1/6] [FIR][Lowering] Add FIRToMLIR pass. --- .../include/flang/Optimi

[clang] [X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow AVX512 mask predicate intrinsics to be used in constexpr (PR #165054)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon auto_merge_enabled https://github.com/llvm/llvm-project/pull/165054 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow AVX512 mask predicate intrinsics to be used in constexpr (PR #165054)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon approved this pull request. LGTM - cheers https://github.com/llvm/llvm-project/pull/165054 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [AArch64] Add intrinsics support for multi-vector FMUL (PR #163397)

2025-11-20 Thread via cfe-commits
https://github.com/Lukacma edited https://github.com/llvm/llvm-project/pull/163397 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [docs] Minor fix to outdated example in LibTooling tutorial (PR #67262)

2025-11-20 Thread Ivan Ho via cfe-commits
https://github.com/hhkit closed https://github.com/llvm/llvm-project/pull/67262 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow AVX512 mask predicate intrinsics to be used in constexpr (PR #165054)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon updated https://github.com/llvm/llvm-project/pull/165054 >From 00115fd82621a909b6ee8bf049159fd09da3cba1 Mon Sep 17 00:00:00 2001 From: sskzakaria Date: Fri, 24 Oct 2025 18:01:57 -0400 Subject: [PATCH 01/13] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allo

[clang] [X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow AVX512 mask predicate intrinsics to be used in constexpr (PR #165054)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon updated https://github.com/llvm/llvm-project/pull/165054 >From 00115fd82621a909b6ee8bf049159fd09da3cba1 Mon Sep 17 00:00:00 2001 From: sskzakaria Date: Fri, 24 Oct 2025 18:01:57 -0400 Subject: [PATCH 01/13] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allo

[clang] [X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow AVX512 mask predicate intrinsics to be used in constexpr (PR #165054)

2025-11-20 Thread Simon Pilgrim via cfe-commits
@@ -16593,6 +16593,37 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const CallExpr *E, return Success(Vec.getVectorElt(Idx).getInt(), E); } + case clang::X86::BI__builtin_ia32_cvtb2mask128: + case clang::X86::BI__builtin_ia32_cvtb2mask256: + case clang::X86::BI__bui

[clang] [llvm] [Clang][AArch64] Implement widening FMMLA intrinsics (PR #165282)

2025-11-20 Thread via cfe-commits
Lukacma wrote: ```suggestion [LLVMMatchType<0>, llvm_nxv16i8_ty, llvm_nxv16i8_ty], ``` https://github.com/llvm/llvm-project/pull/165282 ___ cfe-commits mailing list [email protected]

[clang] Use `llvm::SmallVector` instead of `OwningArrayRef` in `VTableLayout`. (PR #168768)

2025-11-20 Thread Mariya Podchishchaeva via cfe-commits
@@ -2306,18 +2306,17 @@ MakeAddressPointIndices(const VTableLayout::AddressPointsMapTy &addressPoints, return indexMap; } -VTableLayout::VTableLayout(ArrayRef VTableIndices, +VTableLayout::VTableLayout(VTableIndicesTy VTableIndices, ArrayRef VTab

[clang] [compiler-rt] [llvm] [X86] Sync multiversion features with libgcc and refactor internal feature tables (PR #168750)

2025-11-20 Thread Mikołaj Piróg via cfe-commits
https://github.com/mikolaj-pirog updated https://github.com/llvm/llvm-project/pull/168750 From b9903379896179b10992d2a74c64cf822086a9ae Mon Sep 17 00:00:00 2001 From: "Pirog, Mikolaj Maciej" Date: Wed, 19 Nov 2025 19:09:11 +0100 Subject: [PATCH 1/5] Sync multiversion features with libgcc and re

[clang] [X86] BuiltinsX86.td - attempt to pack the builtins for each SSE level close together. NFC. (PR #168844)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon closed https://github.com/llvm/llvm-project/pull/168844 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] 53dfdf7 - [X86] BuiltinsX86.td - attempt to pack the builtins for each SSE level close together. NFC. (#168844)

2025-11-20 Thread via cfe-commits
Author: Simon Pilgrim Date: 2025-11-20T10:34:51Z New Revision: 53dfdf7ffd31b47e0b67d541b8d3aabd3948ddae URL: https://github.com/llvm/llvm-project/commit/53dfdf7ffd31b47e0b67d541b8d3aabd3948ddae DIFF: https://github.com/llvm/llvm-project/commit/53dfdf7ffd31b47e0b67d541b8d3aabd3948ddae.diff LOG:

[clang] [compiler-rt] [ASan] Document define to disable container overflow checks at compile time. (PR #163468)

2025-11-20 Thread Dan Blackwell via cfe-commits
DanBlackwell wrote: This is also failing on macOS. I'm concerned that this change is now causing a build error to anyone that includes a C++ container and `common_interface_defs.h` in the same TU: ``` /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2

[clang] [Clang][OpenMP] Bug fix Default clause variable category (PR #168846)

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang Author: None (SunilKuravinakop) Changes Same changes as in fix for https://github.com/llvm/llvm-project/pull/165276 except for changes in test case : 1) remove unnecessary include in test to restore Ubuntu build. This is not needed as alloc

[clang] [Clang][OpenMP] Bug fix Default clause variable category (PR #168846)

2025-11-20 Thread via cfe-commits
https://github.com/SunilKuravinakop created https://github.com/llvm/llvm-project/pull/168846 Same changes as in fix for https://github.com/llvm/llvm-project/pull/165276 except for changes in test case : 1) remove unnecessary include in test to restore Ubuntu build. This is not needed as

[clang] [CIR][X86] Add support for kunpck builtins (PR #168757)

2025-11-20 Thread Simon Pilgrim via cfe-commits
https://github.com/RKSimon edited https://github.com/llvm/llvm-project/pull/168757 ___ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [CIR][X86] Add support for kunpck builtins (PR #168757)

2025-11-20 Thread Simon Pilgrim via cfe-commits
@@ -3152,3 +3152,25 @@ void test_mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i // CHECK: @llvm.x86.avx512.mask.pmovus.wb.mem.512 _mm512_mask_cvtusepi16_storeu_epi8 ( __P, __M, __A); } + +__mmask32 test_mm512_kunpackw(__mmask32 a, __mmask32 b) { + //

[clang] [compiler-rt] [llvm] [X86] Sync multiversion features with libgcc and refactor internal feature tables (PR #168750)

2025-11-20 Thread Mikołaj Piróg via cfe-commits
https://github.com/mikolaj-pirog updated https://github.com/llvm/llvm-project/pull/168750 From b9903379896179b10992d2a74c64cf822086a9ae Mon Sep 17 00:00:00 2001 From: "Pirog, Mikolaj Maciej" Date: Wed, 19 Nov 2025 19:09:11 +0100 Subject: [PATCH 1/4] Sync multiversion features with libgcc and re

[clang] [CIR][X86] Add support for kunpck builtins (PR #168757)

2025-11-20 Thread Ahmed Nour via cfe-commits
https://github.com/ahmednoursphinx updated https://github.com/llvm/llvm-project/pull/168757 >From 2f02de39803ff7ebde3e52ac60dabbb3d062515c Mon Sep 17 00:00:00 2001 From: ahmed Date: Wed, 19 Nov 2025 12:46:29 +0200 Subject: [PATCH 01/11] feat: Add support for kunpack builtins --- clang/lib/CIR

[clang] [X86] BuiltinsX86.td - attempt to pack the builtins for each SSE level close together. NFC. (PR #168844)

2025-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-backend-x86 Author: Simon Pilgrim (RKSimon) Changes Avoid some repeated feature blocks - we should have a single place in each file that we can find most builtins for a particular ISA level. Also, avoid some of the 80col wrapping that just makes it har

  1   2   >