Skip to content
  1. Mar 08, 2023
  2. Mar 07, 2023
    • Jez Ng's avatar
      [lld-macho] Warn on method name collisions from category definitions · ef122753
      Jez Ng authored
      This implements ld64's checks for duplicate method names in categories &
      classes.
      
      In addition, this sets us up for implementing Obj-C category merging.
      This diff handles the most of the parsing work; what's left is rewriting
      those category / class structures.
      
      Numbers for chromium_framework:
      
                   base           diff           difference (95% CI)
        sys_time   2.182 ± 0.027  2.200 ± 0.047  [  -0.2% ..   +1.8%]
        user_time  6.451 ± 0.034  6.479 ± 0.062  [  -0.0% ..   +0.9%]
        wall_time  6.841 ± 0.048  6.885 ± 0.105  [  -0.1% ..   +1.4%]
        samples    33             22
      
      Fixes https://github.com/llvm/llvm-project/issues/54912.
      
      Reviewed By: #lld-macho, thevinster, oontvoo
      
      Differential Revision: https://reviews.llvm.org/D142916
      ef122753
    • Jeffrey Tan's avatar
      Add a new SBDebugger::SetDestroyCallback() API · b461398f
      Jeffrey Tan authored
      Adding a new SBDebugger::SetDestroyCallback() API.
      This API can be used by any client to query for statistics/metrics before
      exiting debug sessions.
      
      Differential Revision: https://reviews.llvm.org/D143520
      b461398f
    • Craig Topper's avatar
      [RISCV] Return MatchOperand_ParseFail instead of MatchOperand_NoMatch from parseFPImm. · 6e2ade23
      Craig Topper authored
      MatchOperand_NoMatch will fall back to regular operand parsing.
      Returning MatchOperand_ParseFail will prevent this.
      
      We also printed our own error message which we should only do for
      MatchOperand_ParseFail.
      6e2ade23
    • wren romano's avatar
      [mlir][sparse] Cleaning up code style for genCast · 7a682254
      wren romano authored
      Reviewed By: aartbik
      
      Differential Revision: https://reviews.llvm.org/D145432
      7a682254
    • Owen Pan's avatar
    • Han Zhu's avatar
      [SROA] Fix bug where RankVectorTypes is used in std::unique · d888496e
      Han Zhu authored
      `RankVectorTypes` is a not an equivalence relation so when it is used in
      `std::unique`, the behavior is undefined. Create `RankVectorTypesEq` and use
      that instead.
      d888496e
    • Chia-hung Duan's avatar
      [scudo] Simplify markFreeBlocks · 657d297a
      Chia-hung Duan authored
      With memory group, we always mark the free blocks from the same region.
      Therefore, we don't need to calculate the offset from base and determine
      the region index. Also improve the way we deal with the last block in
      the region so that the loop body is simpler.
      
      Reviewed By: cferris
      
      Differential Revision: https://reviews.llvm.org/D143303
      657d297a
    • Peiming Liu's avatar
      [mlir][sparse] deduplicate non-unique coordinates when coiterating COO tensors · cc009334
      Peiming Liu authored
      Reviewed By: aartbik
      
      Differential Revision: https://reviews.llvm.org/D145518
      cc009334
    • David Green's avatar
      [AArch64] Prefer to fold dup into fmul/fma as opposed to ld1r · 9aa39481
      David Green authored
      There is a fold to create LD1DUPpost from dup(load) that can be postinc. If the
      dup is used by a "by element" operation such as fmul or fma then it can be
      slightly better to fold the dup into the fmul instead, which produces slightly
      fast code.
      
        ld1r { v1.4s }, [x0], #4
        fmul v0.4s, v1.4s, v0.4s
      vs
        ldr s1, [x0], #4
        fmul v0.4s, v0.4s, v1.s[0]
      
      This could also be done with integer operations such as smull/umull too, so
      long as the load/dup gets correctly combined into the mul operation. Currently
      this just operates on foating point types.
      
      Differential Revision: https://reviews.llvm.org/D145184
      9aa39481
    • Kazu Hirata's avatar
      [ControlHeightReduction] Freeze potentially poisonous conditions · 912404db
      Kazu Hirata authored
      This patch freezes potentially poisonous conditions in conditional
      branches so that we do not "move up" conditional branches
      "br i1 poison".
      
      Differential Revision: https://reviews.llvm.org/D145008
      912404db
    • Aaron Ballman's avatar
      Update the C status page for WG14 N2844 · ae05d2b1
      Aaron Ballman authored
      The proposal is about the behavior of the _Float16,
      _Float32, and _Float64 types and whether they
      undergo default argument promotions (they don't).
      
      Clang doesn't yet support TS 18661 or the parts
      that made it into C2x, so we don't implement this
      paper.
      ae05d2b1
    • Dave Lee's avatar
      Recommit "[lldb] Redefine p alias to dwim-print command" · 9584ef1b
      Dave Lee authored
      Redefine the `p` alias to the `dwim-print` command instead of `expression`.
      
      See https://reviews.llvm.org/D138315 for the introduction of `dwim-print`.
      
      To summarize, `dwim-print` is, as the name suggests, a command for printing. How a value
      gets printed, is decided by `dwim-print`. In some cases, `dwim-print` will print values
      using the same means as `frame variable` (because it's generally more reliable and
      faster that `expression` evaluation), and in other cases `dwim-print` uses the same code
      path as `expression`.
      
      This change has been tested in two different ways:
      
      1. Re-aliasing `p` to `dwim-print`, as in this patch
      2. Redefinining the `expression` command to `CommandObjectDWIMPrint`
      
      Previously, many of the lldb's tests used `p`, and which meant a test run with `p`
      aliases to `dwim-print` was a good way to test `dwim-print`. However most of those tests
      were updated to use `expression` explicitly (in anticipation of this change). Now, the
      best way to test `dwim-print` is the second approach:
      
      ```
      diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp
      index 373c894f34f5..9c943cd30c7c 100644
      --- a/lldb/source/Interpreter/CommandInterpreter.cpp
      +++ b/lldb/source/Interpreter/CommandInterpreter.cpp
      @@ -539,7 +539,7 @@ void CommandInterpreter::LoadCommandDictionary() {
         REGISTER_COMMAND_OBJECT("diagnostics", CommandObjectDiagnostics);
         REGISTER_COMMAND_OBJECT("disassemble", CommandObjectDisassemble);
         REGISTER_COMMAND_OBJECT("dwim-print", CommandObjectDWIMPrint);
      -  REGISTER_COMMAND_OBJECT("expression", CommandObjectExpression);
      +  REGISTER_COMMAND_OBJECT("expression", CommandObjectDWIMPrint);
         REGISTER_COMMAND_OBJECT("frame", CommandObjectMultiwordFrame);
         REGISTER_COMMAND_OBJECT("gui", CommandObjectGUI);
         REGISTER_COMMAND_OBJECT("help", CommandObjectHelp);
      ```
      
      When the test suite is run with this change, there are two main categories of test
      failures for specific to features that `dwim-print` intentionally doesn't support:
      
      1. Top level expressions (`--top-level`/`-p`)
      2. Multiline expressions
      
      In cases where the behavior of `expression` is needed, users can use `expression` at
      those times.
      
      Differential Revision: https://reviews.llvm.org/D145189
      9584ef1b
    • Alexey Bataev's avatar
      [SLP]Initial support for reshuffling of non-starting buildvector/gather nodes. · a611b3f3
      Alexey Bataev authored
      Previously only the very first gather/buildvector node might be probed for reshuffling of other nodes.
      But the compiler may do the same for other gather/buildvector nodes too, just need to check the
      dependency and postpone the emission of the dependent nodes, if the origin nodes were not emitted yet.
      
      Part of D110978
      
      Differential Revision: https://reviews.llvm.org/D144958
      a611b3f3
    • Snehasish Kumar's avatar
      [memprof] Update the isRuntime symbolization check. · bcebadeb
      Snehasish Kumar authored
      Update the isRuntime check to only match against known memprof filenames
      where interceptors are defined. This avoid issues where the path does
      not include the directory based on how the runtime was compiled. Also
      update the unittest.
      
      Reviewed By: tejohnson
      
      Differential Revision: https://reviews.llvm.org/D145521
      bcebadeb
    • Mark de Wever's avatar
      [libc++] Fixes transitive includes. · a90a7b04
      Mark de Wever authored
      Since the CI is broken, I didn't investigate why it happened. It just
      fixes it.
      a90a7b04
Loading