1. Jun 26, 2023
  2. Jun 25, 2023
    • Florian Hahn's avatar
      [ConstraintElim] Add uses to remark tests to make it more robust. · 3e4820b9
      Florian Hahn authored
      Add uses of conditions, so the test keeps testing what it is meant to
      test after D153660.
      3e4820b9
    • Takuya Shimizu's avatar
      [clang][Diagnostics] Provide parameter source range to arity-mismatch notes · 409a8097
      Takuya Shimizu authored
      Consider the following piece of code:
      ```
      void func( int aa,
                 int bb,
                 int cc) {}
      
      void arity_mismatch() {
        func(2, 4);
      }
      ```
      BEFORE:
      ```
      source.cpp:6:3: error: no matching function for call to 'func'
          6 |   func(2, 4);
            |   ^~~~
      source.cpp:1:6: note: candidate function not viable: requires 3 arguments, but 2 were provided
          1 | void func( int aa,
            |      ^
      ```
      AFTER:
      ```
      source.cpp:6:3: error: no matching function for call to 'func'
          6 |   func(2, 4);
            |   ^~~~
      source.cpp:1:6: note: candidate function not viable: requires 3 arguments, but 2 were provided
          1 | void func( int aa,
            |      ^     ~~~~~~~
          2 |            int bb,
            |            ~~~~~~~
          3 |            int cc) {}
            |            ~~~~~~
      ```
      
      Reviewed By: cjdb, aaron.ballman
      
      Differential Revision: https://reviews.llvm.org/D153267
      409a8097
    • Elliot Goodrich's avatar
      b3c8554f
    • Elliot Goodrich's avatar
      [llvm] Move StringExtras.h include from Error.h to Error.cpp · 2fa0dbd7
      Elliot Goodrich authored
      Move the implementation of the `toString` function from
      `llvm/Support/Error.h` to the source file, which allows us to move
      `#include "llvm/ADT/StringExtras.h"` to the source file as well.
      
      As `Error.h` is present in a large number of translation units this
      means we are unnecessarily bringing in the contents of
      `StringExtras.h` - itself a large file with lots of includes - and
      slowing down compilation.
      
      Also move the `#include "llvm/ADT/SmallVector.h"` directive to the
      source file as it's no longer needed, but this does not give as much of
      a benefit.
      
      This reduces the total number of preprocessing tokens across the LLVM
      source files in lib from (roughly) 1,920,413,050 to 1,903,629,230 - a
      reduction of ~0.87%. This should result in a small improvement in
      compilation time.
      
      Differential Revision: https://reviews.llvm.org/D153229
      2fa0dbd7
    • Elliot Goodrich's avatar
      [llvm] Add missing StringExtras.h includes · b0abd489
      Elliot Goodrich authored
      In preparation for removing the `#include "llvm/ADT/StringExtras.h"`
      from the header to source file of `llvm/Support/Error.h`, first add in
      all the missing includes that were previously included transitively
      through this header.
      b0abd489
    • Corentin Jabot's avatar
      54210573
    • Craig Topper's avatar
      [RISCV] Add missing Read classes to some compressed instructions. · 3cbd56dc
      Craig Topper authored
      Reviewed By: wangpc
      
      Differential Revision: https://reviews.llvm.org/D153669
      3cbd56dc
    • Craig Topper's avatar
      [RISCV] Add GPR bypasses for most scalar integer instructions to the SiFive7 scheduler model. · 8089bd4b
      Craig Topper authored
      SiFive7's scalar execution consists of 4 stages AG, M1, M2, WB.
      Most simple arithmetic and branch instructions can execute in
      either AG or M2.
      
      If the operands are ready, the instruction will execute in the AG
      stage. Otherwise, it executes in the M2 stage. Everything is fully
      bypassed, so dependent instructions should only see 1 cycle latency.
      
      This patch adds ReadAdvances to pretend that these instructions
      execute in the M2 ALU and reads their operands then. This allows
      the scheduler to schedule dependent instructions back to back.
      
      I've increased branch latency to 3 since they are also executed in both
      stages. Still need to fix JALR, but I want to cleanup some scheduler
      classes first.
      
      Multiply, cpop and division instructions can only start in the AG stage.
      
      Still need to do some work for FP instructions that produce integer results.
      
      I've added an llvm-mca test that creates a long dependency chain.
      The timeline view can show that things are bypassed. I
      didn't check all permutations, but we have some variety.
      
      Reviewed By: wangpc
      
      Differential Revision: https://reviews.llvm.org/D153666
      8089bd4b
    • David Green's avatar
      [AArch64] Add SVE tests for double reducts of vector.reduce.fmaximum/fminimum. NFC · 6fcc562f
      David Green authored
      Now that the SVE parts are in, we can fill in the double reduction tests
      without them causing problems.
      6fcc562f