1. Feb 14, 2020
    • Ted Woodward's avatar
    • Denis Khalikov's avatar
      [mlir][spirv] Add ConvertGpuLaunchFuncToVulkanCallsPass · a062a3ed
      Denis Khalikov authored
      Implement a pass to convert gpu.launch_func op into a sequence of
      Vulkan runtime calls. The Vulkan runtime API surface is huge so currently we
      don't expose separate external functions in IR for each of them, instead we
      expose a few external functions to wrapper libraries which manages
      Vulkan runtime.
      
      Differential Revision: https://reviews.llvm.org/D74549
      a062a3ed
    • Alex Brachet's avatar
      [libc][NFC] clang-format syscall.h.in · a8cb0cf5
      Alex Brachet authored
      Reviewers: sivachandra
      
      Reviewed By: sivachandra
      
      Subscribers: MaskRay, tschuett, libc-commits
      
      Differential Revision: https://reviews.llvm.org/D74570
      a8cb0cf5
    • LLVM GN Syncbot's avatar
      [gn build] Port 19602b71 · 1bafd2be
      LLVM GN Syncbot authored
      1bafd2be
    • Greg Clayton's avatar
      Add a DWARF transformer class that converts DWARF to GSYM. · 19602b71
      Greg Clayton authored
      Summary:
      The DWARF transformer is added as a class so it can be unit tested fully.
      
      The DWARF is converted to GSYM format and handles many special cases for functions:
      - omit functions in compile units with 4 byte addresses whose address is UINT32_MAX (dead stripped)
      - omit functions in compile units with 8 byte addresses whose address is UINT64_MAX (dead stripped)
      - omit any functions whose high PC is <= low PC (dead stripped)
      - StringTable builder doesn't copy strings, so we need to make backing copies of strings but only when needed. Many strings come from sections in object files and won't need to have backing copies, but some do.
      - When a function doesn't have a mangled name, store the fully qualified name by creating a string by traversing the parent decl context DIEs and then. If we don't do this, we end up having cases where some function might appear in the GSYM as "erase" instead of "std::vector<int>::erase".
      - omit any functions whose address isn't in the optional TextRanges member variable of DwarfTransformer. This allows object file to register address ranges that are known valid code ranges and can help omit functions that should have been dead stripped, but just had their low PC values set to zero. In this case we have many functions that all appear at address zero and can omit these functions by making sure they fall into good address ranges on the object file. Many compilers do this when the DWARF has a DW_AT_low_pc with a DW_FORM_addr, and a DW_AT_high_pc with a DW_FORM_data4 as the offset from the low PC. In this case the linker can't write the same address to both the high and low PC since there is only a relocation for the DW_AT_low_pc, so many linkers tend to just zero it out.
      
      Reviewers: aprantl, dblaikie, probinson
      
      Subscribers: mgorny, hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D74450
      19602b71
    • Reid Kleckner's avatar
      Remove clang::ast_type_traits namespace in favor of clang · cd625114
      Reid Kleckner authored
      DynTypedNode and ASTNodeKind are implemented as part of the clang AST
      library, which uses the main clang namespace. There doesn't seem to be a
      need for this extra level of namespacing.
      
      I left behind aliases in the ast_type_traits namespace for out of tree
      clients of these APIs. To provide aliases for the enumerators, I used
      this pattern:
        namespace ast_type_traits {
        constexpr TraversalKind TK_AsIs = ::clang::TK_AsIs;
        }
      I think the typedefs will be useful for migration, but we might be able
      to drop these enumerator aliases.
      
      Reviewed By: aaron.ballman
      
      Differential Revision: https://reviews.llvm.org/D74499
      cd625114
    • Alexey Bataev's avatar
      [OPENMP50]Add support for hint clause in atomic directive. · 2fb62688
      Alexey Bataev authored
      According to OpenMP 5.0, hint clause is alowed to be used in atomic
      directives.
      2fb62688
    • Matt Arsenault's avatar
    • Yuanfang Chen's avatar
      Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" · 4ad76852
      Yuanfang Chen authored
      This reverts commit 80a34ae3 with fixes.
      
      Previously, since bots turning on EXPENSIVE_CHECKS are essentially turning on
      MachineVerifierPass by default on X86 and the fact that
      inline-asm-avx-v-constraint-32bit.ll and inline-asm-avx512vl-v-constraint-32bit.ll
      are not expected to generate functioning machine code, this would go
      down to `report_fatal_error` in MachineVerifierPass. Here passing
      `-verify-machineinstrs=0` to make the intent explicit.
      4ad76852
    • Yuanfang Chen's avatar
    • Yuanfang Chen's avatar
      Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" · bb51d243
      Yuanfang Chen authored
      This reverts commit 80a34ae3 with fixes.
      
      On bots llvm-clang-x86_64-expensive-checks-ubuntu and
      llvm-clang-x86_64-expensive-checks-debian only,
      llc returns 0 for these two tests unexpectedly. I tweaked the RUN line a little
      bit in the hope that LIT is the culprit since this change is not in the
      codepath these tests are testing.
      llvm\test\CodeGen\X86\inline-asm-avx-v-constraint-32bit.ll
      llvm\test\CodeGen\X86\inline-asm-avx512vl-v-constraint-32bit.ll
      bb51d243
    • Greg Clayton's avatar
      Fix lldb-vscode logging and enable logging for all lldb-vscode tests. · 7202d1c2
      Greg Clayton authored
      Summary:
      This patch fixes logging to log incoming packets which was removed during a refactor.
      
      We also enable logging to a "vscode.txt" file for each lldb-vscode test by creating the log file in the build artifacts directory for each test. This allows users to see the packets for their tests if needed and the log file is in a directory that will be removed after tests have been run.
      
      Reviewers: labath, aadsm, serhiy.redko, jankratochvil, xiaobai, wallace
      
      Subscribers: lldb-commits
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D74566
      7202d1c2
    • Nikita Popov's avatar
      [MemorySSA] Don't verify MemorySSA unless VerifyMemorySSA enabled · f0b57d80
      Nikita Popov authored
      MemorySSA is often taking up an unreasonable fraction of runtime in
      assertion enabled builds. Turns out that there is one code-path that
      runs verifyMemorySSA() even if VerifyMemorySSA is not enabled. This
      patch makes it conditional as well.
      
      Differential Revision: https://reviews.llvm.org/D74505
      f0b57d80
    • Matt Arsenault's avatar
      AMDGPU: Use v_perm_b32 to implement bswap · bfe37794
      Matt Arsenault authored
      Also greatly improve i64 lowering. LegalizeIntegerTypes does the
      correct narrowing if i64 isn't legal. Just workaround this for
      SelectionDAG by making i64 legal and splitting in the patterns.
      bfe37794
    • Yuanfang Chen's avatar
      [openmp][cmake] passing option argument correctly · c2c4f1c1
      Yuanfang Chen authored
      From the context, it looks like the test should not be run with `check-all`,
      but it does. It turns out option argument resolving to True/False which
      could not be passed down as is. There is one such example in
      AddLLVM.cmake.
      c2c4f1c1
    • Greg Clayton's avatar
      Fix buildbots by disabling this new test until I can fix it. · c84a0bd9
      Greg Clayton authored
      This tests works on Darwin. I will need to check windows and linux.
      c84a0bd9
    • Alexey Bataev's avatar
      43b98ffe
    • Ted Woodward's avatar
    • Alexey Bataev's avatar
      [OPENMP50]Add cancellation support in taskloop-based directives. · e0ca4792
      Alexey Bataev authored
      According to OpenMP 5.0, cancel and cancellation point constructs are
      supported in taskloop directive. Added support for cancellation in
      taskloop, master taskloop and parallel master taskloop.
      e0ca4792
    • Fangrui Song's avatar
      [ELF] Fix a null pointer dereference when --emit-relocs and --strip-debug are used together · 6c732461
      Fangrui Song authored
      Fixes https://bugs.llvm.org//show_bug.cgi?id=44878
      
      When --strip-debug is specified, .debug* are removed from inputSections
      while .rel[a].debug* (incorrectly) remain.
      
      LinkerScript::addOrphanSections() requires the output section of a relocated
      InputSectionBase to be created first.
      
      .debug* are not in inputSections ->
      output sections .debug* are not created ->
      getOutputSectionName(.rel[a].debug*) dereferences a null pointer.
      
      Fix the null pointer dereference by deleting .rel[a].debug* from inputSections as well.
      
      Reviewed By: grimar, nickdesaulniers
      
      Differential Revision: https://reviews.llvm.org/D74510
      6c732461
    • Tatyana Krasnukha's avatar
      [lldb-vscode] Ensure that target matches the executable file · 21d09ccf
      Tatyana Krasnukha authored
      This commit fixes an issue with lldb-vscode failing to run programs that
      use different architecture/platform than the "empty" in the target.
      Original implementation was creating a default target without specifying
      the target architecture, platform or program, and then would set
      executable file through SBLaunchInfo, assuming that this would update
      architecture and platform accordingly. However this wasn't really
      happening, and architecture and platform would remain at whatever values
      were in the "empty" target. The simple solution is to create target
      already for a desired architecture and platform.
      
      Function request_attach is updated in a similar fashion.
      
      This commit also adds new JSON properties to "launch" and "attach"
      packets to allow user to override desired platform and architecture.
      This might be especially important for cases where information in ELF is
      not enough to derive those values correctly.
      
      New code has a behavior similar to LLDB MI [1], where typically IDE would
      specify target file with -file-exec-and-symbols, and then only do -exec-run
      command that would launch the process. In lldb-vscode those two actions are
      merged into one request_launch function. Similarly in the interpreter
      session, user would first do "file" command, then "process launch"
      
      Differential Revision: https://reviews.llvm.org/D70847
      
      
      Signed-off-by: default avatarAnton Kolesov <anton.kolesov@synopsys.com>
      21d09ccf
    • Greg Clayton's avatar
      Stop emitting a breakpoint for each location in a breakpoint when responding... · 9cb227f5
      Greg Clayton authored
      Stop emitting a breakpoint for each location in a breakpoint when responding to breakpoint commands.
      
      Summary: The VS Code DAP expects on response for each breakpoint that was requested. If we responsd with multiple entries for one breakpoint the VS Code UI gets out of date. Currently the VS code DAP doesn't handle one breakpoint with multiple locations. If this ever gets fixed we can modify our code.
      
      Reviewers: labath
      
      Subscribers: lldb-commits
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D73665
      9cb227f5
    • John Brawn's avatar
      [ARM] Fix infinite loop when lowering STRICT_FP_EXTEND · 0ec57972
      John Brawn authored
      If the target has FP64 but not FP16 then we have custom lowering for FP_EXTEND
      and STRICT_FP_EXTEND with type f64. However if the extend is from f32 to f64 the
      current implementation will cause in infinite loop for STRICT_FP_EXTEND due to
      emitting a merge_values of the original node which after replacement becomes a
      merge_values of itself.
      
      Fix this by not doing anything for f32 to f64 extend when we have FP64, though
      for STRICT_FP_EXTEND we have to do the strict-to-nonstrict mutation as that
      doesn't happen automatically for opcodes with custom lowering.
      
      Differential Revision: https://reviews.llvm.org/D74559
      0ec57972
    • Alexey Bataev's avatar
      [OPENMP50]Fix handling of clauses in parallel master taskloop directive. · 18789bfe
      Alexey Bataev authored
      We need to capture correctly the value of num_tasks clause and should
      not try to emit the if clause at all in the task region.
      18789bfe
  2. Feb 13, 2020