1. Sep 03, 2021
    • Alexander Pivovarov's avatar
      [RISCV] Add SiFive core S51 · 6cd4b508
      Alexander Pivovarov authored
      Add SiFive core s51 as rv64imac RocketModel
      
      Reviewed-By: MaskRay, evandro
      Differential Revision: https://reviews.llvm.org/D108886
      6cd4b508
    • PeixinQiao's avatar
      [OMPIRBuilder] Add ordered directive to OMPBuilder · a42380ce
      PeixinQiao authored
      Add support for ordered directive in the OpenMPIRBuilder.
      
      This patch also modidies clang to use the ordered directive when the
      option -fopenmp-enable-irbuilder is enabled.
      
      Also fix one ICE when parsing one canonical for loop with the relational
      operator LE or GE in openmp region by replacing unary increment
      operation of the expression of the variable "Expr A" minus the variable
      "Expr B" (++(Expr A - Expr B)) with binary addition operation of the
      experssion of the variable "Expr A" minus the variable "Expr B" and the
      expression with constant value "1" (Expr A - Expr B + "1").
      
      Reviewed By: Meinersbur, kiranchandramohan
      
      Differential Revision: https://reviews.llvm.org/D107430
      a42380ce
    • Usman Nadeem's avatar
      [NFC] Recommit "Regenerate SVE ACLE intrinsics tests" · 91eda9c3
      Usman Nadeem authored
      Change-Id: Ida45fc41231cd71709048f2d37f228f14053514e
      91eda9c3
    • Usman Nadeem's avatar
      Revert "[NFC] Regenerate SVE ACLE intrinsics tests" · 353b1cdf
      Usman Nadeem authored
      This reverts commit 8749a556.
      353b1cdf
    • Anna Thomas's avatar
      [LoopPredication] Fix MemorySSA crash in predicateLoopExits · f661ce20
      Anna Thomas authored
      The attached testcase crashes without the patch (Not the same accesses
      in the same order).
      
      When we move instructions before another instruction, we also need to
      update the memory accesses corresponding to it.
      
      Reviewed-By: asbirlea
      Differential Revision: https://reviews.llvm.org/D109197
      f661ce20
    • Alexander Pivovarov's avatar
      Fix typo in RISCVMatInt.cpp comments · 1104e325
      Alexander Pivovarov authored
      1104e325
    • Matthias Springer's avatar
      [mlir][scf] Allow runtime type of iter_args to change · 4fa6c273
      Matthias Springer authored
      The limitation on iter_args introduced with D108806 is too restricting. Changes of the runtime type should be allowed.
      
      Extends the dim op canonicalization with a simple analysis to determine when it is safe to canonicalize.
      
      Differential Revision: https://reviews.llvm.org/D109125
      4fa6c273
    • Stella Laurenzo's avatar
      [mlir][python] Simplify python extension loading. · cb7b0381
      Stella Laurenzo authored
      * Now that packaging has stabilized, removes old mechanisms for loading extensions, preferring direct importing.
      * Removes _cext_loader.py, _dlloader.py as unnecessary.
      * Fixes the path where the CAPI dll is written on Windows. This enables that path of least resistance loading behavior to work with no further drama (see: https://bugs.python.org/issue36085).
      * With this patch, `ninja check-mlir` on Windows with Python bindings works for me, modulo some failures that are actually due to a couple of pre-existing Windows bugs. I think this is the first time the Windows Python bindings have worked upstream.
      * Downstream changes needed:
        * If downstreams are using the now removed `load_extension`, `reexport_cext`, etc, then those should be replaced with normal import statements as done in this patch.
      
      Reviewed By: jdd, aartbik
      
      Differential Revision: https://reviews.llvm.org/D108489
      cb7b0381
    • Stanislav Mekhanoshin's avatar
    • Xun Li's avatar
      [Coroutines] Only run verifyFunction in debug mode · 2cf30c47
      Xun Li authored
      verifyFunction can be really slow on large functions. This can significantly slow down compilation in production.
      Given that coroutine passes are fairly stable now, we should only run it in debug mode.
      
      Differential Revision: https://reviews.llvm.org/D109198
      2cf30c47
    • Wenlei He's avatar
      [CSSPGO] Honor preinliner decision for ThinLTO importing · 054487c5
      Wenlei He authored
      When pre-inliner decision is used for CSSPGO, we should take that into account for ThinLTO importing as well, so post-link sample loader inliner can favor that decision. This is handled by a small tweak in this patch. It also includes a change to transfer preinliner decision when merging context.
      
      Differential Revision: https://reviews.llvm.org/D109088
      054487c5
    • Stanislav Mekhanoshin's avatar
      [AMDGPU] Fold immediates in the optimizeCompareInstr · 2cfda6a6
      Stanislav Mekhanoshin authored
      Peephole works before the first SIFoldOperands so most of
      the immediates are in registers.
      
      Differential Revision: https://reviews.llvm.org/D109186
      2cfda6a6
    • Sam Clegg's avatar
      [WebAssembly] Rename WrapperPIC -> WrapperREL. NFC · c32884c4
      Sam Clegg authored
      This ISD node/wrapper represents am address which is relative to a base
      address and therefore lowers to `i32.const` rather than `global.get`.
      
      Use this wrapper type for TLS-relative addresses, paving the way for the
      non-REL wrapper to be used to external TLS address once those are
      supported.
      
      Differential Revision: https://reviews.llvm.org/D109179
      c32884c4
    • Philip Reames's avatar
      [runtimeunroll] Support epilogue unrolling with a parent loop · fa82a3d0
      Philip Reames authored
      This patch adds support for unrolling inner loops using epilogue unrolling. The basic issue is that the original latch exit block of the inner loop could be outside the outer loop.  When we clone the inner loop and split the latch exit, the cloned blocks need to be in the outer loop.
      
      Differential Revision: https://reviews.llvm.org/D108476
      fa82a3d0
    • Philip Reames's avatar
      [runtimeunroll] Under EXPENSIVE_CHECKS, validate loop info · 45c672e2
      Philip Reames authored
      Requested in review comment on D108476
      45c672e2
    • Ron Lieberman's avatar
      [openmp] NFC add bitcode comment · fdac5ade
      Ron Lieberman authored
      fdac5ade
    • Nico Weber's avatar
      cc2d4dc3
    • David Carlier's avatar
      [Sanitizers] remove empty test case. · 25765d86
      David Carlier authored
      25765d86
    • Lang Hames's avatar
      [ORC] Range check and narrow size value. · a68d4b11
      Lang Hames authored
      This should fix the build issues in
      https://lab.llvm.org/buildbot#builders/171/builds/3149.
      a68d4b11
    • LLVM GN Syncbot's avatar
      [gn build] Port dad60f80 · 6cc53336
      LLVM GN Syncbot authored
      6cc53336
    • Lang Hames's avatar
      [ORC] Add EPCGenericJITLinkMemoryManager: memory management via EPC calls. · dad60f80
      Lang Hames authored
      All ExecutorProcessControl subclasses must provide a JITLinkMemoryManager object
      that can be used to allocate memory in the executor process. The
      EPCGenericJITLinkMemoryManager class provides an off-the-shelf
      JITLinkMemoryManager implementation for JITs that do not need (or cannot
      provide) a specialized JITLinkMemoryManager implementation. This simplifies the
      process of creating new ExecutorProcessControl implementations.
      dad60f80
    • Lang Hames's avatar
      [ORC] Add specialized SPSSerializationTraits for ArrayRef<char>. · f38cfdab
      Lang Hames authored
      Deserializing from an SPSSequence<char> to an an ArrayRef<char> will point the
      ArrayRef<char> at the input buffer.
      f38cfdab
    • Lang Hames's avatar
      [ORC] Move callWrapper and callSPSWrapper functions to ExecutorProcessControl. · 5ab7bfa4
      Lang Hames authored
      The ExecutionSession versions now just forward to the implementations in
      ExecutorProcessControl.
      
      This allows callWrapper / callSPSWrapper to be used while bootstrapping an
      ExecutorProcessControl instance.
      5ab7bfa4
    • Jessica Paquette's avatar
      [GlobalISel] Combine icmp eq/ne x, 0/1 -> x when x == 0 or 1 · 844d8e03
      Jessica Paquette authored
      This adds the following combines:
      
      ```
      x = ... 0 or 1
      c = icmp eq x, 1
      
      ->
      
      c = x
      ```
      
      and
      
      ```
      x = ... 0 or 1
      c = icmp ne x, 0
      
      ->
      
      c = x
      ```
      
      When the target's true value for the relevant types is 1.
      
      This showed up in the following situation:
      
      https://godbolt.org/z/M5jKexWTW
      
      SDAG currently supports the `ne` case, but not the `eq` case. This can probably
      be further generalized, but I don't feel like thinking that hard right now.
      
      This gives some minor code size improvements across the board on CTMark at
      -Os for AArch64. (0.1% for 7zip and pairlocalalign in particular.)
      
      Differential Revision: https://reviews.llvm.org/D109130
      844d8e03
    • David Blaikie's avatar
      Fully qualify template template parameters when printing · 5fb3f437
      David Blaikie authored
      I discovered this quirk when working on some DWARF - AST printing prints
      type template parameters fully qualified, but printed template template
      parameters the way they were written syntactically, or wholely
      unqualified - instead, we should print them consistently with the way we
      print type template parameters: fully qualified.
      
      The one place this got weird was for partial specializations like in
      ast-print-temp-class.cpp - hence the need for checking for
      TemplateNameDependenceScope::DependentInstantiation template template
      parameters. (not 100% sure that's the right solution to that, though -
      open to ideas)
      
      Differential Revision: https://reviews.llvm.org/D108794
      5fb3f437
    • Kirill Stoimenov's avatar
      [asan] Fixed link error by setting jump symbol to R_X86_64_PLT32. · cf53c6c9
      Kirill Stoimenov authored
      Fixing this link error:
      ld: error: relocation R_X86_64_PC32 cannot be used against symbol __asan_report_load...; recompile with -fPIC
      
      Reviewed By: vitalybuka
      
      Differential Revision: https://reviews.llvm.org/D109183
      cf53c6c9
    • Kevin Athey's avatar
      Revert "[CSSPGO] Honor preinliner decision for ThinLTO importing" · 04ed6e7a
      Kevin Athey authored
      This reverts commit a2768b47.
      
      Breaks sanitizer-x86_64-linux-fast buildbot:
      https://lab.llvm.org/buildbot/#/builders/5/builds/11334
      
      Log snippet:
      Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80
      FAIL: LLVM :: Transforms/SampleProfile/early-inline.ll (65549 of 78729)
      ******************** TEST 'LLVM :: Transforms/SampleProfile/early-inline.ll' FAILED ********************
      Script:
      --
      : 'RUN: at line 1';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/opt < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/early-inline.ll -instcombine -sample-profile -sample-profile-file=/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/Inputs/einline.prof -S | /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/early-inline.ll
      --
      Exit Code: 2
      Command Output (stderr):
      --
      /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1309:53: runtime error: member call on null pointer of type 'llvm::sampleprof::FunctionSamples'
          #0 0x5a730f8 in shouldInlineCandidate /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1309:53
          #1 0x5a730f8 in (anonymous namespace)::SampleProfileLoader::tryInlineCandidate((anonymous namespace)::InlineCandidate&, llvm::SmallVector<llvm::CallBase*, 8u>*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1178:21
          #2 0x5a6cda6 in inlineHotFunctions /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1105:13
          #3 0x5a6cda6 in (anonymous namespace)::SampleProfileLoader::emitAnnotations(llvm::Function&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1633:16
          #4 0x5a5fcbe in runOnFunction /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:2008:12
          #5 0x5a5fcbe in (anonymous namespace)::SampleProfileLoader::runOnModule(llvm::Module&, llvm::AnalysisManager<llvm::Module>*, llvm::ProfileSummaryInfo*, llvm::CallGraph*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1922:15
          #6 0x5a5de55 in llvm::SampleProfileLoaderPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:2038:21
          #7 0x6552a01 in llvm::detail::PassModel<llvm::Module, llvm::SampleProfileLoaderPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:88:17
          #8 0x57f807c in llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/IR/PassManager.h:526:21
          #9 0x37c8522 in llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/opt/NewPMDriver.cpp:489:7
          #10 0x37e7c11 in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/opt/opt.cpp:830:12
          #11 0x7fbf4de4009a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
          #12 0x379e519 in _start (/b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/opt+0x379e519)
      SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1309:53 in
      FileCheck error: '<stdin>' is empty.
      FileCheck command line:  /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/early-inline.ll
      --
      ********************
      Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80
      FAIL: LLVM :: Transforms/SampleProfile/inline-cold.ll (65643 of 78729)
      ******************** TEST 'LLVM :: Transforms/SampleProfile/inline-cold.ll' FAILED ********************
      Script:
      --
      : 'RUN: at line 4';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/opt < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/inline-cold.ll -sample-profile -sample-profile-file=/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/Inputs/inline-cold.prof -S | /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/FileCheck -check-prefix=NOTINLINE /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/inline-cold.ll
      : 'RUN: at line 5';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/opt < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/inline-cold.ll -passes=sample-profile -sample-profile-file=/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/Inputs/inline-cold.prof -S | /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/FileCheck -check-prefix=NOTINLINE /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/inline-cold.ll
      : 'RUN: at line 8';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/opt < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/inline-cold.ll -sample-profile -sample-profile-file=/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/Inputs/inline-cold.prof -sample-profile-inline-size -S | /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/FileCheck -check-prefix=INLINE /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/inline-cold.ll
      : 'RUN: at line 11';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/opt < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/inline-cold.ll -passes=sample-profile -sample-profile-file=/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/Inputs/inline-cold.prof -sample-profile-inline-size -sample-profile-cold-inline-threshold=9999999 -S | /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/FileCheck -check-prefix=INLINE /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/inline-cold.ll
      : 'RUN: at line 14';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/opt < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/inline-cold.ll -passes=sample-profile -sample-profile-file=/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/Inputs/inline-cold.prof -sample-profile-inline-size -sample-profile-cold-inline-threshold=-500 -S | /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/FileCheck -check-prefix=NOTINLINE /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/inline-cold.ll
      --
      Exit Code: 2
      Command Output (stderr):
      --
      /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1309:53: runtime error: member call on null pointer of type 'llvm::sampleprof::FunctionSamples'
          #0 0x5a730f8 in shouldInlineCandidate /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1309:53
          #1 0x5a730f8 in (anonymous namespace)::SampleProfileLoader::tryInlineCandidate((anonymous namespace)::InlineCandidate&, llvm::SmallVector<llvm::CallBase*, 8u>*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1178:21
          #2 0x5a6cda6 in inlineHotFunctions /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1105:13
          #3 0x5a6cda6 in (anonymous namespace)::SampleProfileLoader::emitAnnotations(llvm::Function&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1633:16
          #4 0x5a5fcbe in runOnFunction /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:2008:12
          #5 0x5a5fcbe in (anonymous namespace)::SampleProfileLoader::runOnModule(llvm::Module&, llvm::AnalysisManager<llvm::Module>*, llvm::ProfileSummaryInfo*, llvm::CallGraph*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1922:15
          #6 0x5a5de55 in llvm::SampleProfileLoaderPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:2038:21
          #7 0x6552a01 in llvm::detail::PassModel<llvm::Module, llvm::SampleProfileLoaderPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:88:17
          #8 0x57f807c in llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/IR/PassManager.h:526:21
          #9 0x37c8522 in llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/opt/NewPMDriver.cpp:489:7
          #10 0x37e7c11 in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/opt/opt.cpp:830:12
          #11 0x7fcd534a209a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
          #12 0x379e519 in _start (/b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/opt+0x379e519)
      SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:1309:53 in
      FileCheck error: '<stdin>' is empty.
      FileCheck command line:  /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/FileCheck -check-prefix=INLINE /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SampleProfile/inline-cold.ll
      --
      ********************
      Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..
      ********************
      Failed Tests (2):
        LLVM :: Transforms/SampleProfile/early-inline.ll
        LLVM :: Transforms/SampleProfile/inline-cold.ll
      04ed6e7a
    • David Carlier's avatar
      [Sanitizers] intercept clock_getcpuclockid on FreeBSD, and pthread_getcpuclockid. · 6f9a96e9
      David Carlier authored
      Reviewed By: vitalybuka
      
      Differential Revision: https://reviews.llvm.org/D108884
      6f9a96e9
    • Usman Nadeem's avatar
      [NFC] Regenerate SVE ACLE intrinsics tests · 8749a556
      Usman Nadeem authored
      Change-Id: Ic4ec50f9a53fcf58e86104bf19ba229c1dd132d0
      8749a556
    • peter klausler's avatar
      [flang] Fix scope in which undeclared symbols are created · a4c5d00c
      peter klausler authored
      Don't create new symbols in FORALL, implied DO, or other
      construct scopes when an undeclared name appears; use the
      innermost enclosing program unit's scope.  This clears up
      a pending TODO in name resolution, and also exposes (& fixes)
      an unnoticed name resolution problem in a module file test.
      
      Differential Revision: https://reviews.llvm.org/D109095
      a4c5d00c
    • peter klausler's avatar
      [flang] NFC: change non-nullable pointer arguments to references · f411be0d
      peter klausler authored
      Ticking off a Parser TODO: Preprocessor::Directive()'s Prescanner
      argument should be a reference, not a pointer.
      
      Differential Revision: https://reviews.llvm.org/D109094
      f411be0d
    • Stuart Brady's avatar
      [OpenCL] Remove decls for scalar vloada_half and vstorea_half* fns · 32955be6
      Stuart Brady authored
      These functions are not part of the OpenCL C specification.
      
      See https://github.com/KhronosGroup/OpenCL-Docs/issues/648 for a
      clarification regarding the vloada_half declarations.
      
      Reviewed By: Anastasia
      
      Differential Revision: https://reviews.llvm.org/D108761
      32955be6
    • Alex Zinenko's avatar
      [mlir] speed up construction of LLVM IR constants when possible · f9be7a7a
      Alex Zinenko authored
      The translation to LLVM IR used to construct sequential constants by recurring
      down to individual elements, creating constant values for them, and wrapping
      them into aggregate constants in post-order. This is highly inefficient for
      large constants with known data such as DenseElementsAttr. Use LLVM's
      ConstantData for the innermost dimension instead. LLVM does seem to support
      data constants for nested sequential constants so the outer dimensions are
      still handled recursively. Nevertheless, this speeds up the translation of
      large constants with equal dimensions by up to 30x.
      
      Users are advised to rewrite large constants to use flat types before
      translating to LLVM IR if more efficiency in translation is necessary. This is
      not done automatically as the translation is not aware of the expectations of
      the overall compilation flow about type changes and indexing, in particular for
      global constants with external linkage.
      
      Reviewed By: silvas
      
      Differential Revision: https://reviews.llvm.org/D109152
      f9be7a7a
    • Dávid Bolvanský's avatar
      [NFC] Added testcase for PR40750 · 00f8aecf
      Dávid Bolvanský authored
      00f8aecf
    • Arthur O'Dwyer's avatar
      [libc++] Define insert_iterator::iter with ranges::iterator_t. · d1e50738
      Arthur O'Dwyer authored
      The `insert_iterator::iter` member is defined as `Container::iterator` but
      the standard requires `iter` to be defined in terms of `ranges::iterator_t` as
      of C++20. So, if in C++20 or later, define the `iter` member as
      `ranges::iterator_t`.
      
      Original patch by Joe Loser!
      
      Differential Revision: https://reviews.llvm.org/D108575
      d1e50738
    • Arthur Eubanks's avatar
      Fix lldb after D108614 · ebbf7f90
      Arthur Eubanks authored
      ebbf7f90
    • Arthur Eubanks's avatar
      [MemorySSA] Properly handle liveOnEntry in the walker printer · 813a7f1a
      Arthur Eubanks authored
      Reviewed By: asbirlea
      
      Differential Revision: https://reviews.llvm.org/D109177
      813a7f1a
    • Arthur Eubanks's avatar
    • Arthur Eubanks's avatar
      [NFC] Remove some unclear attribute methods · 85b732b5
      Arthur Eubanks authored
      To any downstream users broken by this change, please examine your uses
      of these methods and see if you can use a better method. For example,
      getAttribute(AttributeList::FunctionIndex) => getFnAttr(), or
      addAttribute(AttributeList::FirstArgIndex + ArgNo) =>
      addParamAttribute(ArgNo). 0 corresponds to ReturnIndex, ~0 corresponds
      to FunctionIndex. This may make future cleanups less painful.
      
      I've made the mistake of assuming that these indexes are for parameters
      multiple times, but actually they're based off of a weird indexing
      scheme AttributeList::AttrIndex where 0 is the return value and ~0 is
      the function. Hopefully renaming these methods will make this clearer.
      Ideally users should use more specific methods like
      AttributeList::getFnAttr().
      
      This touches all relevant methods in AttributeList, CallBase, and Function.
      
      This hopefully will make easier a future change to cleanup AttrIndex. A
      previous worry about cleaning up AttrIndex was that too many downstream
      users would have to look through all uses of AttrIndex and relevant
      attribute method calls to see if anything was unintentionally hardcoded
      (e.g. using 0 instead of ReturnIndex). With this change hopefully
      downstream users will look at existing usages of these methods and clean
      them up.
      
      Reviewed By: rnk, MaskRay
      
      Differential Revision: https://reviews.llvm.org/D108614
      85b732b5
    • Wenlei He's avatar
      [llvm-profgen] Turn off cold context trimming by default · a5d3cac0
      Wenlei He authored
      We merge cold context by default to save profile size. However trimming cold context after merging doesn't save size much, so default to off to reflect how it's commonly used.
      
      Differential Revision: https://reviews.llvm.org/D109166
      a5d3cac0