Skip to content
  1. Jul 30, 2021
    • Mircea Trofin's avatar
      [NFC] clang-format OptimizationLevel.h · 8d0f96f5
      Mircea Trofin authored
      8d0f96f5
    • Amy Kwan's avatar
      [PowerPC] Emit error for Altivec vector initializations when -faltivec-src-compat=gcc is specified · 5ea6117a
      Amy Kwan authored
      Under the -faltivec-src-compat=gcc option, AltiVec vector initialization should
      be treated as if they were compiled with gcc - which is, to emit an error when
      the vectors are initialized in the parenthesized or non-parenthesized manner.
      This patch implements this behaviour.
      
      Differential Revision: https://reviews.llvm.org/D106410
      5ea6117a
    • Nicolas Vasilache's avatar
    • AndreyChurbanov's avatar
      [OpenMP][NFC] libomp: silence warnings on unused variables. · 8b81524c
      AndreyChurbanov authored
      Put declarations/definitions of unused variables under corresponding macros
      to silence clang build warnings.
      
      Differential Revision: https://reviews.llvm.org/D106608
      8b81524c
    • Melanie Blower's avatar
      [clang][patch][FPEnv] Fix syntax errors in pragma float_control test · 0a175ad4
      Melanie Blower authored
      In a post-commit message to https://reviews.llvm.org/D102343
      @MaskRay pointed out syntax errors in one of the test cases. This
      patch fixes those problems, I had forgotten the colon after the CHECK- strings.
      0a175ad4
    • Pushpinder Singh's avatar
      [AMDGPU][OpenMP] Support linking of math libraries · 9830f902
      Pushpinder Singh authored
      Math libraries are linked only when -lm is specified. This is because
      host system could be missing rocm-device-libs.
      
      Reviewed By: JonChesterfield, yaxunl
      
      Differential Revision: https://reviews.llvm.org/D105981
      9830f902
    • Louis Dionne's avatar
    • David Green's avatar
      [ARM] Attempt to distribute reductions · 532d05b7
      David Green authored
      This adds a combine for adds of reductions, distributing them so that
      they occur sequentially to enable better use of accumulating VADDVA
      instructions. It combines:
        add(X, add(vecreduce(Y), vecreduce(Z))) ->
          add(add(X, vecreduce(Y)), vecreduce(Z))
      and
        add(add(A, reduce(B)), add(C, reduce(D))) ->
          add(add(add(A, C), reduce(B)), reduce(D))
      
      These together distribute the add's so that more reductions can be
      selected to VADDVA.
      
      Differential Revision: https://reviews.llvm.org/D106532
      532d05b7
    • Joachim Protze's avatar
      [libomptarget][amdcgn] Add build dependency for opt · 4ffa1478
      Joachim Protze authored
      This patch should fix the build we observe when building LLVM from scratch.
      
      Differential Revision: https://reviews.llvm.org/D107156
      4ffa1478
    • Louis Dionne's avatar
      [libc++] Handle arrays in std::destroy_at · c99f5b2a
      Louis Dionne authored
      Also, improve tests for std::destroy and std::destroy_n so that they
      check for array support.
      
      These changes are part of http://wg21.link/p0896 (the One Ranges proposal).
      
      Differential Revision: https://reviews.llvm.org/D106916
      c99f5b2a
    • Kadir Cetinkaya's avatar
      [clangd] Record remote index usage · 8070bf8c
      Kadir Cetinkaya authored
      This is a gauage metric that sets particular remote-index instances as
      used. It should enable accumulation of multiple streams to see number of clangd
      processes making use of remote index, broken down by remote index address.
      
      Differential Revision: https://reviews.llvm.org/D106796
      8070bf8c
    • Kadir Cetinkaya's avatar
      [clangd] Unify compiler invocation creation · 41e24222
      Kadir Cetinkaya authored
      Background-indexing is fine, because it uses GlobalCompilationDatabase
      to fetch the compile commands (hence uses CommandMangler), and creates
      invocation through buildCompilerInvocation.
      
      Depends on D106639.
      
      Differential Revision: https://reviews.llvm.org/D106669
      41e24222
    • Simon Pilgrim's avatar
      [X86][AVX] Add test case for PR51281 · 6569b7f9
      Simon Pilgrim authored
      6569b7f9
    • Kadir Cetinkaya's avatar
      [clangd] Make use of diagnostic tags for some clang diags · 57346526
      Kadir Cetinkaya authored
      It is not great to list diag ids by hand, but I don't see any other
      solution unless diagnostics are annotated with these explicitly, which is a
      bigger change in clang and I am not sure if would be worth it.
      
      Diagnostics handled by this patch is by no means exhaustive, there might be
      other checks that don't mention "unused"/"deprecated" in their names. But it
      feels like this should be enough to catch common diagnostics and can be extended
      over time.
      
      Differential Revision: https://reviews.llvm.org/D107040
      57346526
    • Florian Mayer's avatar
      [hwasan] Detect use after scope within function. · 84705ed9
      Florian Mayer authored
      Reviewed By: vitalybuka
      
      Differential Revision: https://reviews.llvm.org/D105201
      84705ed9
    • Jan Kratochvil's avatar
      Revert "[lldb] [DWARF-5] Be lazier about loading .dwo files" · d0e6d946
      Jan Kratochvil authored
      This reverts commit e7b8ba10.
      
      It broke 32-bit ARM - lldb-arm-ubuntu, reported by omjavaid:
        https://lab.llvm.org/buildbot/#/builders/17/builds/9595
      d0e6d946
    • Alexey Bataev's avatar
      [SLP]Fix an assertion for the size of user nodes. · 4b25c113
      Alexey Bataev authored
      For the nodes with reused scalars the user may be not only of the size
      of the final shuffle but also of the size of the scalars themselves,
      need to check for this. It is safe to just modify the check here, since
      the order of the scalars themselves is preserved, only indeces of the
      reused scalars are changed. So, the users with the same size as the
      number of scalars in the node, will not be affected, they still will get
      the operands in the required order.
      
      Reported by @mstorsjo in D105020.
      
      Differential Revision: https://reviews.llvm.org/D107080
      4b25c113
    • Alexey Bataev's avatar
      [SLP]Do not consider deleted instruction as external users. · f4fb8548
      Alexey Bataev authored
      If the instruction was previously deleted, it should not be treated as
      an external user. This fixes cost estimation and removes dead
      extractelement instructions.
      
      Differential Revision: https://reviews.llvm.org/D107106
      f4fb8548
    • Kadir Cetinkaya's avatar
      [clangd] Enable relative configs in check mode · c3682a22
      Kadir Cetinkaya authored
      See https://github.com/clangd/clangd/issues/649#issuecomment-885903316.
      Also disables config support in lit tests to make sure tests are not affected by
      clangd config files lying around.
      
      Differential Revision: https://reviews.llvm.org/D107130
      c3682a22
    • Alexey Bataev's avatar
      [SLP]Fix a crash in gathered loads analysis. · c2deb2af
      Alexey Bataev authored
      Need to check that the minimum acceptable vector factor is at least 2,
      not 0, to avoid compiler crash during gathered loads analysis.
      
      Differential Revision: https://reviews.llvm.org/D107058
      c2deb2af
    • Alex Zinenko's avatar
      [OMPIRBuilder] add minimalist reduction support · aa426c37
      Alex Zinenko authored
      This introduces a builder function for emitting IR performing reductions in
      OpenMP. Reduction variable privatization and initialization to the
      reduction-neutral value is expected to be handled separately. The caller
      provides the reduction functions. Further commits can provide implementation of
      reduction functions for the reduction operators defined in the OpenMP
      specification.
      
      This implementation was tested on an MLIR fork targeting OpenMP from C and
      produced correct executable code.
      
      Reviewed By: Meinersbur
      
      Differential Revision: https://reviews.llvm.org/D104928
      aa426c37
    • Eric Leese's avatar
      [lldb] [DWARF-5] Be lazier about loading .dwo files · e7b8ba10
      Eric Leese authored
      This change makes sure that DwarfUnit does not load a .dwo file until
      necessary. I also take advantage of DWARF 5's guarantee that the first
      support file is also the primary file to make it possible to create
      a compile unit without loading the .dwo file.
      
      Review By: jankratochvil, dblaikie
      
      Differential Revision: https://reviews.llvm.org/D100299
      e7b8ba10
    • Dmitry Vyukov's avatar
      tsan: fix another latent race size bug in test · ce52e033
      Dmitry Vyukov authored
      The test contains a race in memset.
      The size of reported race depends on how the accessed
      memory range split into granules inside of tsan runtime.
      The test used to report access of size 8, because presumably
      the buffer ended up being aligned to 8 bytes. But after
      some unrelated changes this test started to report accesses
      of size 1 (presumably .data layout changed), which makes
      the test fail.
      Guarantee alignment of the buf object explicitly.
      
      Reviewed By: melver
      
      Differential Revision: https://reviews.llvm.org/D107149
      ce52e033
    • Marco Elver's avatar
      tsan: Support constructor arguments via New · 4ab76659
      Marco Elver authored
      Make New<>() a variadic function template and forward any arguments to
      the constructor. std::forward<>() is inlined to avoid including
      <utility>.
      
      Differential Revision: https://reviews.llvm.org/D107147
      4ab76659
    • David Spickett's avatar
      [lldb][AArch64] Mark mismatched tags in tag read output · 98b5659b
      David Spickett authored
      The "memory tag read" command will now tell you
      when the allocation tag read does not match the logical
      tag.
      
      (lldb) memory tag read mte_buf+(8*16) mte_buf+(8*16)+48
      Logical tag: 0x9
      Allocation tags:
      [0xfffff7ff7080, 0xfffff7ff7090): 0x8 (mismatch)
      [0xfffff7ff7090, 0xfffff7ff70a0): 0x9
      [0xfffff7ff70a0, 0xfffff7ff70b0): 0xa (mismatch)
      
      The logical tag will be taken from the start address
      so the end could have a different tag. You could for example
      read from ptr_to_array_1 to ptr_to_array_2. Where the latter
      is tagged differently to prevent buffer overflow.
      
      The existing command will read 1 granule if you leave
      off the end address. So you can also use it as a quick way
      to check a single location.
      
      (lldb) memory tag read mte_buf
      Logical tag: 0x9
      Allocation tags:
      [0xfffff7ff7000, 0xfffff7ff7010): 0x0 (mismatch)
      
      This avoids the need for a seperate "memory tag check" command.
      
      Reviewed By: omjavaid
      
      Differential Revision: https://reviews.llvm.org/D106880
      98b5659b
    • David Spickett's avatar
      [lldb] Correct format of qMemTags type field · 555cd031
      David Spickett authored
      The type field is a signed integer.
      (https://sourceware.org/gdb/current/onlinedocs/gdb/General-Query-Packets.html)
      
      However it's not packed in the packet in the way
      you might think. For example the type -1 should be:
      qMemTags:<addr>,<len>:ffffffff
      Instead of:
      qMemTags:<addr>,<len>:-1
      
      This change makes lldb-server's parsing more strict
      and adds more tests to check that we handle negative types
      correctly in lldb and lldb-server.
      
      We only support one tag type value at this point,
      for AArch64 MTE, which is positive. So this doesn't change
      any of those interactions. It just brings us in line with GDB.
      
      Also check that the test target has MTE. Previously
      we just checked that we were AArch64 with a toolchain
      that supports MTE.
      
      Finally, update the tag type check for QMemTags to use
      the same conversion steps that qMemTags now does.
      Using static_cast can invoke UB and though we do do a limit
      check to avoid this, I think it's clearer with the new method.
      
      Reviewed By: omjavaid
      
      Differential Revision: https://reviews.llvm.org/D104914
      555cd031
    • Tung D. Le's avatar
      [mlir][affine-loop-fusion] Fix a bug that AffineIfOp prevents fusion of the other loops · a2186277
      Tung D. Le authored
      The presence of AffineIfOp inside AffineFor prevents fusion of the other loops to happen. For example:
      
      ```
        affine.for %i0 = 0 to 10 {
          affine.store %cf7, %a[%i0] : memref<10xf32>
        }
        affine.for %i1 = 0 to 10 {
          %v0 = affine.load %a[%i1] : memref<10xf32>
          affine.store %v0, %b[%i1] : memref<10xf32>
        }
        affine.for %i2 = 0 to 10 {
          affine.if #set(%i2) {
            %v0 = affine.load %b[%i2] : memref<10xf32>
          }
        }
      ```
      
      The first two loops were not be fused because of `affine.if` inside the last `affine.for`.
      
      The issue seems to come from a conservative constraint that does not allow fusion if there are ops whose number of regions != 0 (affine.if is one of them).
      
      This patch just removes such a constraint when`affine.if` is inside `affine.for`.  The existing `canFuseLoops` method is able to handle `affine.if` correctly.
      
      Reviewed By: bondhugula, vinayaka-polymage
      
      Differential Revision: https://reviews.llvm.org/D105963
      a2186277
    • Dmitry Vyukov's avatar
      tsan: introduce New/Alloc/Free helpers · 817f942a
      Dmitry Vyukov authored
      We frequenty allocate sizeof(T) memory and call T ctor on that memory
      (C++ new keyword effectively). Currently it's quite verbose and
      usually takes 2 lines of code.
      Add New<T>() helper that does it much more concisely.
      
      Rename internal_free to Free that also sets the pointer to nullptr.
      Shorter and safer.
      
      Rename internal_alloc to Alloc, just shorter.
      
      Reviewed By: vitalybuka, melver
      
      Differential Revision: https://reviews.llvm.org/D107085
      817f942a
    • Butygin's avatar
      [mlir][spirv] Fix crash in convert-gpu-to-spirv pass with memrefs with affine maps · 1e9799e2
      Butygin authored
      spirv::getElementPtr can return null (for memrefs with affine map) but patterns didn't handle this.
      
      Differential Revision: https://reviews.llvm.org/D106988
      1e9799e2
    • Ivan Murashko's avatar
      [clang] SIGSEGV at DeduceTemplateArgumentsByTypeMatch · 8eaa05d0
      Ivan Murashko authored
      There is a SIGSEGV at `DeduceTemplateArgumentsByTypeMatch`. The bug [#51171](https://bugs.llvm.org/show_bug.cgi?id=51171) was filled. The reproducer can be found at the bug description.
      
      LIT test for the issue was added:
      ```
      ./bin/llvm-lit -v ../clang/test/SemaCXX/pr51171-crash.cpp
      ```
      
      The debug stack trace is below:
      ```
       #0 0x00000000055afcb9 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/ivanmurashko/local/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:22
       #1 0x00000000055afd70 PrintStackTraceSignalHandler(void*) /home/ivanmurashko/local/llvm-project/llvm/lib/Support/Unix/Signals.inc:632:1
       #2 0x00000000055add2d llvm::sys::RunSignalHandlers() /home/ivanmurashko/local/llvm-project/llvm/lib/Support/Signals.cpp:97:20
       #3 0x00000000055af701 SignalHandler(int) /home/ivanmurashko/local/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
       #4 0x00007ffff7bc2b20 __restore_rt sigaction.c:0:0
       #5 0x00007ffff66a337f raise (/lib64/libc.so.6+0x3737f)
       #6 0x00007ffff668ddb5 abort (/lib64/libc.so.6+0x21db5)
       #7 0x00007ffff668dc89 _nl_load_domain.cold.0 loadmsgcat.c:0:0
       #8 0x00007ffff669ba76 .annobin___GI___assert_fail.end assert.c:0:0
       #9 0x000000000594b210 clang::QualType::getCommonPtr() const /home/ivanmurashko/local/llvm-project/clang/include/clang/AST/Type.h:684:5
      #10 0x0000000005a12ca6 clang::QualType::getCanonicalType() const /home/ivanmurashko/local/llvm-project/clang/include/clang/AST/Type.h:6467:36
      #11 0x0000000005a137a6 clang::ASTContext::getCanonicalType(clang::QualType) const /home/ivanmurashko/local/llvm-project/clang/include/clang/AST/ASTContext.h:2433:58
      #12 0x0000000009204584 DeduceTemplateArgumentsByTypeMatch(clang::Sema&, clang::TemplateParameterList*, clang::QualType, clang::QualType, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, bool, bool) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:1355:54
      #13 0x000000000920df0d clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, clang::QualType, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:4354:47
      #14 0x0000000009012b09 (anonymous namespace)::AddressOfFunctionResolver::AddMatchingTemplateFunction(clang::FunctionTemplateDecl*, clang::DeclAccessPair const&) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:12026:38
      #15 0x0000000009013030 (anonymous namespace)::AddressOfFunctionResolver::FindAllFunctionsThatMatchTargetTypeExactly() /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:12119:9
      #16 0x0000000009012679 (anonymous namespace)::AddressOfFunctionResolver::AddressOfFunctionResolver(clang::Sema&, clang::Expr*, clang::QualType const&, bool) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:11931:5
      #17 0x0000000009013c91 clang::Sema::ResolveAddressOfOverloadedFunction(clang::Expr*, clang::QualType, bool, clang::DeclAccessPair&, bool*) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:12286:42
      #18 0x0000000008fed85d IsStandardConversion(clang::Sema&, clang::Expr*, clang::QualType, bool, clang::StandardConversionSequence&, bool, bool) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:1712:49
      #19 0x0000000008fec8ea TryImplicitConversion(clang::Sema&, clang::Expr*, clang::QualType, bool, clang::Sema::AllowedExplicit, bool, bool, bool, bool) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:1433:27
      #20 0x0000000008ff90ba TryCopyInitialization(clang::Sema&, clang::Expr*, clang::QualType, bool, bool, bool, bool) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:5273:71
      #21 0x00000000090024fb clang::Sema::AddBuiltinCandidate(clang::QualType*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, unsigned int) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:7755:32
      #22 0x000000000900513f (anonymous namespace)::BuiltinOperatorOverloadBuilder::addGenericBinaryArithmeticOverloads() /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:8633:30
      #23 0x0000000009007624 clang::Sema::AddBuiltinOperatorCandidates(clang::OverloadedOperatorKind, clang::SourceLocation, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:9205:51
      #24 0x0000000009018734 clang::Sema::LookupOverloadedBinOp(clang::OverloadCandidateSet&, clang::OverloadedOperatorKind, clang::UnresolvedSetImpl const&, llvm::ArrayRef<clang::Expr*>, bool) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:13469:1
      #25 0x0000000009018d56 clang::Sema::CreateOverloadedBinOp(clang::SourceLocation, clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*, clang::Expr*, bool, bool, clang::FunctionDecl*) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaOverload.cpp:13568:24
      #26 0x0000000008b24797 BuildOverloadedBinOp(clang::Sema&, clang::Scope*, clang::SourceLocation, clang::BinaryOperatorKind, clang::Expr*, clang::Expr*) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaExpr.cpp:14606:65
      #27 0x0000000008b24ed5 clang::Sema::BuildBinOp(clang::Scope*, clang::SourceLocation, clang::BinaryOperatorKind, clang::Expr*, clang::Expr*) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaExpr.cpp:14691:73
      #28 0x0000000008b245d4 clang::Sema::ActOnBinOp(clang::Scope*, clang::SourceLocation, clang::tok::TokenKind, clang::Expr*, clang::Expr*) /home/ivanmurashko/local/llvm-project/clang/lib/Sema/SemaExpr.cpp:14566:1
      #29 0x00000000085bfafb clang::Parser::ParseRHSOfBinaryExpression(clang::ActionResult<clang::Expr*, true>, clang::prec::Level) /home/ivanmurashko/local/llvm-project/clang/lib/Parse/ParseExpr.cpp:630:71
      #30 0x00000000085bd922 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) /home/ivanmurashko/local/llvm-project/clang/lib/Parse/ParseExpr.cpp:177:1
      #31 0x00000000085cbbcd clang::Parser::ParseExpressionList(llvm::SmallVectorImpl<clang::Expr*>&, llvm::SmallVectorImpl<clang::SourceLocation>&, llvm::function_ref<void ()>) /home/ivanmurashko/local/llvm-project/clang/lib/Parse/ParseExpr.cpp:3368:40
      #32 0x000000000857f49c clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) /home/ivanmurashko/local/llvm-project/clang/lib/Parse/ParseDecl.cpp:2416:5
      #33 0x000000000857df16 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) /home/ivanmurashko/local/llvm-project/clang/lib/Parse/ParseDecl.cpp:2092:65
      #34 0x000000000855f07b clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) /home/ivanmurashko/local/llvm-project/clang/lib/Parse/Parser.cpp:1138:1
      #35 0x000000000855f136 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) /home/ivanmurashko/local/llvm-project/clang/lib/Parse/Parser.cpp:1153:57
      #36 0x000000000855e644 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) /home/ivanmurashko/local/llvm-project/clang/lib/Parse/Parser.cpp:975:58
      #37 0x000000000855d717 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) /home/ivanmurashko/local/llvm-project/clang/lib/Parse/Parser.cpp:720:42
      #38 0x0000000008558e01 clang::ParseAST(clang::Sema&, bool, bool) /home/ivanmurashko/local/llvm-project/clang/lib/Parse/ParseAST.cpp:158:37
      #39 0x000000000627a221 clang::ASTFrontendAction::ExecuteAction() /home/ivanmurashko/local/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1058:11
      #40 0x0000000006bdcc31 clang::CodeGenAction::ExecuteAction() /home/ivanmurashko/local/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1045:5
      #41 0x0000000006279b4d clang::FrontendAction::Execute() /home/ivanmurashko/local/llvm-project/clang/lib/Frontend/FrontendAction.cpp:955:38
      #42 0x00000000061c3fe9 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/ivanmurashko/local/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:974:42
      #43 0x00000000063f9c5e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/ivanmurashko/local/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:278:38
      #44 0x0000000002603a03 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/ivanmurashko/local/llvm-project/clang/tools/driver/cc1_main.cpp:246:40
      #45 0x00000000025f8a39 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) /home/ivanmurashko/local/llvm-project/clang/tools/driver/driver.cpp:338:20
      #46 0x00000000025f9107 main /home/ivanmurashko/local/llvm-project/clang/tools/driver/driver.cpp:415:26
      #47 0x00007ffff668f493 __libc_start_main (/lib64/libc.so.6+0x23493)
      #48 0x00000000025f729e _start (/data/users/ivanmurashko/llvm-project/build/bin/clang-13+0x25f729e)
      ```
      
      Reviewed By: erichkeane
      
      Differential Revision: https://reviews.llvm.org/D106583
      8eaa05d0
    • Dmitry Vyukov's avatar
      tsan: optimize test-only barrier · 97795be2
      Dmitry Vyukov authored
      The updated lots_of_threads.c test with 300 threads
      started running for too long on machines with low
      hardware parallelism (e.g. taskset -c 0-1).
      On lots of CPUs it finishes in ~2 secs. But with
      taskset -c 0-1 it runs for hundreds of seconds
      effectively spinning in the barrier in the sleep loop.
      
      We now have the handy futex API in sanitizer_common.
      Use it instead of the passive spin loop.
      It makes the test run only faster with taskset -c 0-1,
      it runs for ~1.5 secs, while with full parallelism
      it still runs for ~2 secs (but consumes less CPU time).
      
      Depends on D107131.
      
      Reviewed By: vitalybuka
      
      Differential Revision: https://reviews.llvm.org/D107132
      97795be2
    • Dmitry Vyukov's avatar
      tsan: fix latent race size bug in test · dbe36e40
      Dmitry Vyukov authored
      The test contains a race in read/write syscalls.
      The size of reported race depends on how the accessed
      memory range split into granules inside of tsan runtime.
      The test used to report access of size 8, because presumably
      the buffer ended up being aligned to 8 bytes. But after
      some unrelated changes this test started to report accesses
      of size 1 (presumably .data layout changed), which makes
      the test fail.
      Guarantee alignment of the buf object explicitly.
      
      Reviewed By: vitalybuka, melver
      
      Differential Revision: https://reviews.llvm.org/D107131
      dbe36e40
    • David Green's avatar
      [ARM] Turn vecreduce_add(add(x, y)) into vecreduce(x) + vecreduce(y) · 4b563067
      David Green authored
      Under MVE we can use VADDV/VADDVA's to perform integer add reductions,
      so it can be beneficial to use more reductions than summing subvectors
      and reducing once. Especially for VMLAV/VMLAVA the mul can be
      incorporated into the reduction, producing less instructions.
      
      Some of the test cases currently get larger due to extra integer adds,
      but will be improved in a followup patch.
      
      Differential Revision: https://reviews.llvm.org/D106531
      4b563067
    • David Green's avatar
      [ARM] MVE SLP'd reduction tests. NFC · ee32cc38
      David Green authored
      These are generated from SLP vectorization, for example
      https://godbolt.org/z/ebxdPh1Kz. These backend tests
      show cases that we can produce better code for.
      ee32cc38
    • Muhammad Omair Javaid's avatar
      Revert "[LLDB][GUI] Expand selected thread tree item by default" · fd18f0e8
      Muhammad Omair Javaid authored
      This reverts commit fed25ddc.
      
      There has been sporadic failures in LLDB AArch64/Arm 32 buildbots since
      this commit. I am temporarily reverting it see if it fixes the issue.
      
      Differential Revision: https://reviews.llvm.org/D100243
      fd18f0e8
    • Anastasia Stulova's avatar
      [OpenCL] Add std flag aliases clc++1.0 and CLC++1.0 · 577220e8
      Anastasia Stulova authored
      Renamed language standard from openclcpp to openclcpp10.
      Added new std values i.e. '-cl-std=clc++1.0' and
      '-cl-std=CLC++1.0'.
      
      Patch by Topotuna (Justas Janickas)!
      
      Differential Revision: https://reviews.llvm.org/D106266
      577220e8
    • Andrzej Warzynski's avatar
      [flang] Fix `flang` (the bash wrapper script for the Flang driver) · 1a7ed956
      Andrzej Warzynski authored
      Remove erroneous `||` at the end of an `if` condition. This was
      introduced in https://reviews.llvm.org/D106871.
      1a7ed956
    • Cullen Rhodes's avatar
      [AArch64][SME] Introduce feature for streaming mode · 3a349d22
      Cullen Rhodes authored
      The Scalable Matrix Extension (SME) introduces a new execution mode
      called Streaming SVE mode. In streaming mode a substantial subset of the
      SVE and SVE2 instruction set is available, along with new outer product,
      load, store, extract and insert instructions that operate on the new
      architectural register state for the matrix.
      
      To support streaming mode this patch introduces a new subtarget feature
      +streaming-sve. If enabled, the subset of SVE(2) instructions are
      available. The existing behaviour for SVE(2) remains unchanged, the
      subset of instructions that are legal in streaming mode are enabled if
      either +sve[2] or +streaming-sve is specified. Instructions that are
      illegal in streaming mode remain predicated on +sve[2].
      
      The SME target feature has been updated to imply +streaming-sve rather
      than +sve.
      
      The following changes are made to the SVE(2) tests:
        * For instructions that are legal in streaming mode:
          - added RUN line to verify +streaming-sve enables the instruction.
          - updated diagnostic to 'instruction requires: streaming-sve or sve'.
        * For instructions that are illegal in streaming-mode:
          - added RUN line to verify +streaming-sve does not enable the
            instruction.
      
      SVE(2) instructions that are legal in streaming mode have:
      
        if !HaveSVE[2]() && !HaveSME() then UNDEFINED;
      
      at the top of the pseudocode in the XML.
      
      The reference can be found here:
      https://developer.arm.com/documentation/ddi0602/2021-06/SVE-Instructions
      
      Reviewed By: sdesmalen, david-arm
      
      Differential Revision: https://reviews.llvm.org/D106272
      3a349d22
    • Lang Hames's avatar
      [JITLink][ELF][x86-64] Include relocation name in missing relocation errors. · 8a241cd9
      Lang Hames authored
      This saves a level of manual table lookup for those of us who don't remember
      ELF relocation numbers off the top of our heads.
      8a241cd9
    • Tarindu Jayatilaka's avatar
      Take OptimizationLevel class out of Pass Builder · 7a797b29
      Tarindu Jayatilaka authored
      Pulled out the OptimizationLevel class from PassBuilder in order to be able to access it from within the PassManager and avoid include conflicts.
      
      Reviewed By: mtrofin
      
      Differential Revision: https://reviews.llvm.org/D107025
      7a797b29
Loading