1. Jun 16, 2022
    • Peter Klausler's avatar
      [flang][runtime] Catch more (all?) negative unit number errors · cfbde714
      Peter Klausler authored
      Fortran does have negative unit numbers -- they show up in child I/O
      subroutines for defined I/O and for OPEN(NEWUNIT=) -- but the runtime
      needs to catch the cases where a negative unit number that wasn't
      generated by the runtime is passed in for OPEN or for an I/O statement
      that would ordinarily create an anonymous "fort.NNN" file for a
      hitherto unseen unit.
      
      Differential Revision: https://reviews.llvm.org/D127788
      cfbde714
    • Kirill Stoimenov's avatar
      Revert "[ASan] Use debuginfo for symbolization." · 99796d06
      Kirill Stoimenov authored
      This reverts commit f0ab8d90.
      99796d06
    • Nico Weber's avatar
      [gn build] Allow use_ubsan=true on mac and unbreak use_asan, use_tsan, use_ubsan · 52554f73
      Nico Weber authored
      `use_ubsan=true` seems to Just Work on macOS, so allow it.
      
      https://reviews.llvm.org/D122862 broke use_asan=true, use_tsan=true, and
      use_ubsan=true builds on Linux too. This makes this go again by explicitly
      disabling asan, tsan, and ubsan for the baremetal part of the build. See
      discussion on https://reviews.llvm.org/D122862 for other possible approaches.
      
      Differential Revision: https://reviews.llvm.org/D127906
      52554f73
    • Nico Weber's avatar
    • Daniel Bertalan's avatar
      Reland "[lld-macho] Group undefined symbol diagnostics by symbol". · 0eec7e2a
      Daniel Bertalan authored
      This reverts commit 36e7c9a4.
      
      This relands d6134176 with the fix described in
      https://reviews.llvm.org/D127753#3587390
      0eec7e2a
    • Argyrios Kyrtzidis's avatar
      [CMake] Fix `FindGRPC.cmake` for setting up gRPC related libraries for macOS+homebrew context · 20d5a861
      Argyrios Kyrtzidis authored
      * Switch `$GRPC_OPTS` references to `${GRPC_OPTS}`
      * Use `target_include_directories()` to add include search paths only for the targets the depend on `gRPC`
      * Also find and include the search path for `abseil` headers (`gRPC` headers include them)
      * Only setup the gRPC related targets once, so that `include(FindGRPC)` can be called from multiple tools
      
      Differential Revision: https://reviews.llvm.org/D127893
      20d5a861
    • Jonas Devlieghere's avatar
    • Stella Stamenova's avatar
      Revert "[lld-macho] Group undefined symbol diagnostics by symbol" · 36e7c9a4
      Stella Stamenova authored
      This reverts commit d6134176.
      
      This change broke multiple lld tests, including some sanitizer builds: https://lab.llvm.org/buildbot/#/builders/5/builds/24787/steps/19/logs/stdio
      36e7c9a4
    • Mitch Phillips's avatar
      [ASan] Use debuginfo for symbolization. · f0ab8d90
      Mitch Phillips authored
      Hint: Looking here because your manual invocation of something in
      'check-asan' broke? You need a new symbolizer (after D123538).
      
      An upcoming patch will remove the internal metadata for global
      variables. With D123534 and D123538, clang now emits DWARF debug info
      for constant strings (the only global variable type it was missing), and
      llvm-symbolizer is now able to symbolize all global variable addresses
      (where previously it wouldn't give you the file:line information).
      
      Move ASan's runtime over from the internal metadata to DWARF.
      
      Differential Revision: https://reviews.llvm.org/D127552
      f0ab8d90
    • Peter Klausler's avatar
      [flang] Fix error message · 2815bacc
      Peter Klausler authored
      A message has a %s string substitution in it but somebody (probably me)
      forgot to pass the argument that defines it.
      
      Differential Revision: https://reviews.llvm.org/D127794
      2815bacc
    • Keith Smiley's avatar
      [lld-macho] Add support for exporting no symbols · 272bf0fc
      Keith Smiley authored
      As an optimization for ld64 sometimes it can be useful to not export any
      symbols for top level binaries that don't need any exports, to do this
      you can pass `-exported_symbols_list /dev/null`, or new with Xcode 14
      (ld64 816) there is a `-no_exported_symbols` flag for the same behavior.
      This reproduces this behavior where previously an empty exported symbols
      list file would have been ignored.
      
      Differential Revision: https://reviews.llvm.org/D127562
      272bf0fc
    • Frederik Gossen's avatar
      Revert "Reland "Reland "[X86][RFC] Enable `_Float16` type support on X86 following the psABI""" · 3cd5696a
      Frederik Gossen authored
      This reverts commit e1c5afa4.
      
      This introduces crashes in the JAX backend on CPU. A reproducer in LLVM is
      below. Let me know if you have trouble reproducing this.
      
      ; ModuleID = '__compute_module'
      source_filename = "__compute_module"
      target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
      target triple = "x86_64-grtev4-linux-gnu"
      
      @0 = private unnamed_addr constant [4 x i8] c"\00\00\00?"
      @1 = private unnamed_addr constant [4 x i8] c"\1C}\908"
      @2 = private unnamed_addr constant [4 x i8] c"?\00\\4"
      @3 = private unnamed_addr constant [4 x i8] c"%ci1"
      @4 = private unnamed_addr constant [4 x i8] zeroinitializer
      @5 = private unnamed_addr constant [4 x i8] c"\00\00\00\C0"
      @6 = private unnamed_addr constant [4 x i8] c"\00\00\00B"
      @7 = private unnamed_addr constant [4 x i8] c"\94\B4\C22"
      @8 = private unnamed_addr constant [4 x i8] c"^\09B6"
      @9 = private unnamed_addr constant [4 x i8] c"\15\F3M?"
      @10 = private unnamed_addr constant [4 x i8] c"e\CC\\;"
      @11 = private unnamed_addr constant [4 x i8] c"d\BD/>"
      @12 = private unnamed_addr constant [4 x i8] c"V\F4I="
      @13 = private unnamed_addr constant [4 x i8] c"\10\CB,<"
      @14 = private unnamed_addr constant [4 x i8] c"\AC\E3\D6:"
      @15 = private unnamed_addr constant [4 x i8] c"\DC\A8E9"
      @16 = private unnamed_addr constant [4 x i8] c"\C6\FA\897"
      @17 = private unnamed_addr constant [4 x i8] c"%\F9\955"
      @18 = private unnamed_addr constant [4 x i8] c"\B5\DB\813"
      @19 = private unnamed_addr constant [4 x i8] c"\B4W_\B2"
      @20 = private unnamed_addr constant [4 x i8] c"\1Cc\8F\B4"
      @21 = private unnamed_addr constant [4 x i8] c"~3\94\B6"
      @22 = private unnamed_addr constant [4 x i8] c"3Yq\B8"
      @23 = private unnamed_addr constant [4 x i8] c"\E9\17\17\BA"
      @24 = private unnamed_addr constant [4 x i8] c"\F1\B2\8D\BB"
      @25 = private unnamed_addr constant [4 x i8] c"\F8t\C2\BC"
      @26 = private unnamed_addr constant [4 x i8] c"\82[\C2\BD"
      @27 = private unnamed_addr constant [4 x i8] c"uB-?"
      @28 = private unnamed_addr constant [4 x i8] c"^\FF\9B\BE"
      @29 = private unnamed_addr constant [4 x i8] c"\00\00\00A"
      
      ; Function Attrs: uwtable
      define void @main.158(ptr %retval, ptr noalias %run_options, ptr noalias %params, ptr noalias %buffer_table, ptr noalias %status, ptr noalias %prof_counters) #0 {
      entry:
        %fusion.invar_address.dim.1 = alloca i64, align 8
        %fusion.invar_address.dim.0 = alloca i64, align 8
        %0 = getelementptr inbounds ptr, ptr %buffer_table, i64 1
        %Arg_0.1 = load ptr, ptr %0, align 8, !invariant.load !0, !dereferenceable !1, !align !2
        %1 = getelementptr inbounds ptr, ptr %buffer_table, i64 0
        %fusion = load ptr, ptr %1, align 8, !invariant.load !0, !dereferenceable !1, !align !2
        store i64 0, ptr %fusion.invar_address.dim.0, align 8
        br label %fusion.loop_header.dim.0
      
      return:                                           ; preds = %fusion.loop_exit.dim.0
        ret void
      
      fusion.loop_header.dim.0:                         ; preds = %fusion.loop_exit.dim.1, %entry
        %fusion.indvar.dim.0 = load i64, ptr %fusion.invar_address.dim.0, align 8
        %2 = icmp uge i64 %fusion.indvar.dim.0, 3
        br i1 %2, label %fusion.loop_exit.dim.0, label %fusion.loop_body.dim.0
      
      fusion.loop_body.dim.0:                           ; preds = %fusion.loop_header.dim.0
        store i64 0, ptr %fusion.invar_address.dim.1, align 8
        br label %fusion.loop_header.dim.1
      
      fusion.loop_header.dim.1:                         ; preds = %fusion.loop_body.dim.1, %fusion.loop_body.dim.0
        %fusion.indvar.dim.1 = load i64, ptr %fusion.invar_address.dim.1, align 8
        %3 = icmp uge i64 %fusion.indvar.dim.1, 1
        br i1 %3, label %fusion.loop_exit.dim.1, label %fusion.loop_body.dim.1
      
      fusion.loop_body.dim.1:                           ; preds = %fusion.loop_header.dim.1
        %4 = getelementptr inbounds [3 x [1 x half]], ptr %Arg_0.1, i64 0, i64 %fusion.indvar.dim.0, i64 0
        %5 = load half, ptr %4, align 2, !invariant.load !0, !noalias !3
        %6 = fpext half %5 to float
        %7 = call float @llvm.fabs.f32(float %6)
        %constant.121 = load float, ptr @29, align 4
        %compare.2 = fcmp ole float %7, %constant.121
        %8 = zext i1 %compare.2 to i8
        %constant.120 = load float, ptr @0, align 4
        %multiply.95 = fmul float %7, %constant.120
        %constant.119 = load float, ptr @5, align 4
        %add.82 = fadd float %multiply.95, %constant.119
        %constant.118 = load float, ptr @4, align 4
        %multiply.94 = fmul float %add.82, %constant.118
        %constant.117 = load float, ptr @19, align 4
        %add.81 = fadd float %multiply.94, %constant.117
        %multiply.92 = fmul float %add.82, %add.81
        %constant.116 = load float, ptr @18, align 4
        %add.79 = fadd float %multiply.92, %constant.116
        %multiply.91 = fmul float %add.82, %add.79
        %subtract.87 = fsub float %multiply.91, %add.81
        %constant.115 = load float, ptr @20, align 4
        %add.78 = fadd float %subtract.87, %constant.115
        %multiply.89 = fmul float %add.82, %add.78
        %subtract.86 = fsub float %multiply.89, %add.79
        %constant.114 = load float, ptr @17, align 4
        %add.76 = fadd float %subtract.86, %constant.114
        %multiply.88 = fmul float %add.82, %add.76
        %subtract.84 = fsub float %multiply.88, %add.78
        %constant.113 = load float, ptr @21, align 4
        %add.75 = fadd float %subtract.84, %constant.113
        %multiply.86 = fmul float %add.82, %add.75
        %subtract.83 = fsub float %multiply.86, %add.76
        %constant.112 = load float, ptr @16, align 4
        %add.73 = fadd float %subtract.83, %constant.112
        %multiply.85 = fmul float %add.82, %add.73
        %subtract.81 = fsub float %multiply.85, %add.75
        %constant.111 = load float, ptr @22, align 4
        %add.72 = fadd float %subtract.81, %constant.111
        %multiply.83 = fmul float %add.82, %add.72
        %subtract.80 = fsub float %multiply.83, %add.73
        %constant.110 = load float, ptr @15, align 4
        %add.70 = fadd float %subtract.80, %constant.110
        %multiply.82 = fmul float %add.82, %add.70
        %subtract.78 = fsub float %multiply.82, %add.72
        %constant.109 = load float, ptr @23, align 4
        %add.69 = fadd float %subtract.78, %constant.109
        %multiply.80 = fmul float %add.82, %add.69
        %subtract.77 = fsub float %multiply.80, %add.70
        %constant.108 = load float, ptr @14, align 4
        %add.68 = fadd float %subtract.77, %constant.108
        %multiply.79 = fmul float %add.82, %add.68
        %subtract.75 = fsub float %multiply.79, %add.69
        %constant.107 = load float, ptr @24, align 4
        %add.67 = fadd float %subtract.75, %constant.107
        %multiply.77 = fmul float %add.82, %add.67
        %subtract.74 = fsub float %multiply.77, %add.68
        %constant.106 = load float, ptr @13, align 4
        %add.66 = fadd float %subtract.74, %constant.106
        %multiply.76 = fmul float %add.82, %add.66
        %subtract.72 = fsub float %multiply.76, %add.67
        %constant.105 = load float, ptr @25, align 4
        %add.65 = fadd float %subtract.72, %constant.105
        %multiply.74 = fmul float %add.82, %add.65
        %subtract.71 = fsub float %multiply.74, %add.66
        %constant.104 = load float, ptr @12, align 4
        %add.64 = fadd float %subtract.71, %constant.104
        %multiply.73 = fmul float %add.82, %add.64
        %subtract.69 = fsub float %multiply.73, %add.65
        %constant.103 = load float, ptr @26, align 4
        %add.63 = fadd float %subtract.69, %constant.103
        %multiply.71 = fmul float %add.82, %add.63
        %subtract.67 = fsub float %multiply.71, %add.64
        %constant.102 = load float, ptr @11, align 4
        %add.62 = fadd float %subtract.67, %constant.102
        %multiply.70 = fmul float %add.82, %add.62
        %subtract.66 = fsub float %multiply.70, %add.63
        %constant.101 = load float, ptr @28, align 4
        %add.61 = fadd float %subtract.66, %constant.101
        %multiply.68 = fmul float %add.82, %add.61
        %subtract.65 = fsub float %multiply.68, %add.62
        %constant.100 = load float, ptr @27, align 4
        %add.60 = fadd float %subtract.65, %constant.100
        %subtract.64 = fsub float %add.60, %add.62
        %multiply.66 = fmul float %subtract.64, %constant.120
        %constant.99 = load float, ptr @6, align 4
        %divide.4 = fdiv float %constant.99, %7
        %add.59 = fadd float %divide.4, %constant.119
        %multiply.65 = fmul float %add.59, %constant.118
        %constant.98 = load float, ptr @3, align 4
        %add.58 = fadd float %multiply.65, %constant.98
        %multiply.64 = fmul float %add.59, %add.58
        %constant.97 = load float, ptr @7, align 4
        %add.57 = fadd float %multiply.64, %constant.97
        %multiply.63 = fmul float %add.59, %add.57
        %subtract.63 = fsub float %multiply.63, %add.58
        %constant.96 = load float, ptr @2, align 4
        %add.56 = fadd float %subtract.63, %constant.96
        %multiply.62 = fmul float %add.59, %add.56
        %subtract.62 = fsub float %multiply.62, %add.57
        %constant.95 = load float, ptr @8, align 4
        %add.55 = fadd float %subtract.62, %constant.95
        %multiply.61 = fmul float %add.59, %add.55
        %subtract.61 = fsub float %multiply.61, %add.56
        %constant.94 = load float, ptr @1, align 4
        %add.54 = fadd float %subtract.61, %constant.94
        %multiply.60 = fmul float %add.59, %add.54
        %subtract.60 = fsub float %multiply.60, %add.55
        %constant.93 = load float, ptr @10, align 4
        %add.53 = fadd float %subtract.60, %constant.93
        %multiply.59 = fmul float %add.59, %add.53
        %subtract.59 = fsub float %multiply.59, %add.54
        %constant.92 = load float, ptr @9, align 4
        %add.52 = fadd float %subtract.59, %constant.92
        %subtract.58 = fsub float %add.52, %add.54
        %multiply.58 = fmul float %subtract.58, %constant.120
        %9 = call float @llvm.sqrt.f32(float %7)
        %10 = fdiv float 1.000000e+00, %9
        %multiply.57 = fmul float %multiply.58, %10
        %11 = trunc i8 %8 to i1
        %12 = select i1 %11, float %multiply.66, float %multiply.57
        %13 = fptrunc float %12 to half
        %14 = getelementptr inbounds [3 x [1 x half]], ptr %fusion, i64 0, i64 %fusion.indvar.dim.0, i64 0
        store half %13, ptr %14, align 2, !alias.scope !3
        %invar.inc1 = add nuw nsw i64 %fusion.indvar.dim.1, 1
        store i64 %invar.inc1, ptr %fusion.invar_address.dim.1, align 8
        br label %fusion.loop_header.dim.1
      
      fusion.loop_exit.dim.1:                           ; preds = %fusion.loop_header.dim.1
        %invar.inc = add nuw nsw i64 %fusion.indvar.dim.0, 1
        store i64 %invar.inc, ptr %fusion.invar_address.dim.0, align 8
        br label %fusion.loop_header.dim.0
      
      fusion.loop_exit.dim.0:                           ; preds = %fusion.loop_header.dim.0
        br label %return
      }
      
      ; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
      declare float @llvm.fabs.f32(float %0) #1
      
      ; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
      declare float @llvm.sqrt.f32(float %0) #1
      
      attributes #0 = { uwtable "denormal-fp-math"="preserve-sign" "no-frame-pointer-elim"="false" }
      attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn }
      
      !0 = !{}
      !1 = !{i64 6}
      !2 = !{i64 8}
      !3 = !{!4}
      !4 = !{!"buffer: {index:0, offset:0, size:6}", !5}
      !5 = !{!"XLA global AA domain"}
      3cd5696a
    • LLVM GN Syncbot's avatar
      [gn build] Port afd5a4f2 · ef445882
      LLVM GN Syncbot authored
      ef445882
    • Peter Klausler's avatar
      [flang][docs] Document non-supported VMS extensions · cfc7675a
      Peter Klausler authored
      The prescanner does not support VMS Fortran listing control directives
      (%LIST, %NOLIST, %EJECT) or continuation lines on INCLUDE lines.
      
      Differential Revision: https://reviews.llvm.org/D127791
      cfc7675a
    • Jonas Devlieghere's avatar
      [lldb] Don't overwrite quit and exit builtins in the Python interpreter · 6cde6ac0
      Jonas Devlieghere authored
      The interactive interpreter is overwriting the exit and quit builtins
      with an instance of LLDBQuitter in order to make exit and quit behave
      like exit() and quit(). It does that by overwriting the __repr__
      function to call itself.
      
      Despite being a neat trick, it has the unintentional side effect that
      printing these builtins now quits the interpreter:
      
        (lldb) script
        Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.
        >>> print(exit)
        (lldb)
      
      You might consider the above example slightly convoluted, but a more
      realistic situation is calling locals():
      
        (lldb) script
        Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.
        >>> locals()
        (lldb)
      
      This patch keeps the existing behavior but without overwriting the
      builtins. Instead, it looks for quit and exit in the input. If they're
      present, we exit the interpreter with the help of an exception.
      
      The previous implementation also used globals to differentiate between
      exit getting called from the interactive interpreter or from inside a
      script. This patch achieves the same by using a different exception in
      for the interpreter case.
      
      rdar://84095490
      
      Differential revision: https://reviews.llvm.org/D127895
      6cde6ac0
    • Okwan Kwon's avatar
      [mlir] create PrintOpStatsPass using printAsJSON · f4ad2039
      Okwan Kwon authored
      This was missed by the previous commit in OpStats.cpp.
      f4ad2039
    • Peter Klausler's avatar
      [flang][runtime] Better error message for mis-ASSIGN'ed FORMAT · 690de85e
      Peter Klausler authored
      When an I/O data transfer statement uses an ASSIGN'ed FORMAT that
      has not been ASSIGN'ed to a FORMAT statement, the runtime receives
      a zero-length format string.  Distinguish this case from the general
      error message about missing parentheses.
      
      Differential Revision: https://reviews.llvm.org/D127797
      690de85e
    • Nico Weber's avatar
      30710926
    • Peter Klausler's avatar
      [flang] ERROR STOP is not an image control statement · eb6cd7fe
      Peter Klausler authored
      The predicate that determines image control statements needs
      to distinguish STOP (which is) from ERROR STOP (which isn't).
      
      Differential Revision: https://reviews.llvm.org/D127796
      eb6cd7fe
    • Chelsea Cassanova's avatar
      Reland "[lldb/Fuzzer] Create ninja target for target fuzzer" · 3ba71f1b
      Chelsea Cassanova authored
      This reverts commit b10579d0.
      
      Make sure that the lldb-target-fuzzer exists before adding the
      custom fuzz-lldb-target.
      3ba71f1b
    • Min-Yih Hsu's avatar
      [mlir][LLVMIR] Ask ICmpOp to return vector<Nxi1> when needed · cd8978e1
      Min-Yih Hsu authored
      If any of the operands for ICmpOp is a vector, returns a vector<Nxi1>
      , rather than an i1 type result.
      
      Differential Revision: https://reviews.llvm.org/D127536
      cd8978e1
    • Min-Yih Hsu's avatar
      [mlir][LLVMIR] Use isScalableVectorType in ShuffleVectorOp::parse · 719e24d3
      Min-Yih Hsu authored
      Instead of casting the incoming operand into VectorType to check if it's
      scalable or not.
      This is the place I missed to fix in f088b99e.
      
      Differential Revision: https://reviews.llvm.org/D127535
      719e24d3
    • Min-Yih Hsu's avatar
      [mlir][LLVMIR] Use insertelement if needed when translating ConstantAggregate · dcdd5d31
      Min-Yih Hsu authored
      When translating from a llvm::ConstantAggregate with vector type, we
      should lower to insertelement operations (if needed) rather than using
      insertvalue.
      
      Differential Revision: https://reviews.llvm.org/D127534
      dcdd5d31
    • Peter Klausler's avatar
      [flang][runtime] Make NCOPIES= argument of REPEAT a signed integer, & check it · db6c3ecd
      Peter Klausler authored
      NCOPIES= is currently a std::size_t in the API.  If a negative value is
      used, the memory allocation will fail.  Change it to be a signed integer,
      and crash with a message instead if it be negative.
      
      Differential Revision: https://reviews.llvm.org/D127795
      db6c3ecd
    • Peter Klausler's avatar
      [flang][runtime] Fix handling of output FORMAT('x' 'y') · 1a3ac586
      Peter Klausler authored
      I'm emitting "x'y" because the space-separated apostrophes are
      misinterpreted as being adjacent repeated quotation marks.
      Fix to ensure no space skipping is applied when checking for
      repeated quotation marks.
      
      Differential Revision: https://reviews.llvm.org/D127792
      1a3ac586
    • Peter Klausler's avatar
      [flang] Add more qualification when creating names for compiler-generated USEs · bcad53e1
      Peter Klausler authored
      When generic resolution finds its specific procedure in a module,
      and that specific procedure is not use-associated into the local scope
      (perhaps because it was PRIVATE, perhaps because the generic was
      use-associated with ONLY:), we create a new use-association with
      a renaming.  The name constructed for this renaming needs to be
      additionally qualified with the module name of the specific procedure
      in order to avoid clashing with another specific of the same name
      that may have previously been use-associated in the same way from
      a distinct module.
      
      Differential Revision: https://reviews.llvm.org/D127790
      bcad53e1
    • Peter Klausler's avatar
      [flang][runtime] Fix INQUIRE(POS=n) for non-advancing I/O · f6253eb9
      Peter Klausler authored
      Position inquiries need to account for offsets in records to be
      accurate in the case of non-advancing I/O.
      
      Differential Revision: https://reviews.llvm.org/D127789
      f6253eb9
    • Peter Klausler's avatar
      [flang][runtime] Signal END from character input · 8ef10753
      Peter Klausler authored
      There's code in EditCharacterInput() that causes that template function
      to silently return false if it is invoked at the end of the input file.
      This overrides other checks that properly call SignalEnd() later.
      
      Differential Revision: https://reviews.llvm.org/D127786
      8ef10753
    • Sam Clegg's avatar
      [clang][WebAssembly] Loosen restriction on `main` symbol mangling · 78747bd3
      Sam Clegg authored
      Remove the `hasPrototype()` restriction so that old style K&R
      declarations of main work too.
      
      For example the following has 2 params but no prototype.
      
      ```
      int main(argc, argv)
          int argc;
          char *argv[];
      {
        return 0;
      }
      ```
      
      Also, use `getNumParams()` over `param_size()` which seems to be a more
      direct way to get at the same information.
      
      Also, add missing tests for this mangling.
      
      Differential Revision: https://reviews.llvm.org/D127888
      78747bd3
    • Walter Erquinigo's avatar
      Fix failures · b97b082c
      Walter Erquinigo authored
      https://lab.llvm.org/buildbot/#/builders/17/builds/23269 breaks because
      we are doing some asm calls that only work on x86
      
      https://lab.llvm.org/buildbot/#/builders/68/builds/34092/steps/6/logs/stdio
      breaks because some comparators where being done incorrectly.
      b97b082c
    • Peter Klausler's avatar
      [flang][runtime] Fix REWIND after non-advancing data transfer · 6963fb7d
      Peter Klausler authored
      A REWIND of a unit that's in the middle of a record due to a READ
      or WRITE statement with ADVANCE='NO' needs to reset the left tab
      limit so that the next transfer takes place at the beginning of
      the first record.
      
      Differential Revision: https://reviews.llvm.org/D127783
      6963fb7d
    • Fangrui Song's avatar
      c418d0f1
    • Ben Langmuir's avatar
      [clang][deps] Further canonicalize implicit modules options in dep scan · 509223da
      Ben Langmuir authored
      Disable or canonicalize compiler options that are not relevant in
      explicit module builds, similar to what we already did for the modules
      cache path. This reduces uninteresting differences between
      command-lines, which is particularly useful if there is a tool that can
      cache the compilations.
      
      Differential Revision: https://reviews.llvm.org/D127883
      509223da
    • Nikolas Klauser's avatar
      [libc++] Implement ranges::lexicographical_compare · afd5a4f2
      Nikolas Klauser authored
      Reviewed By: var-const, Mordante, #libc
      
      Spies: H-G-Hristov, sstefan1, libcxx-commits, mgorny
      
      Differential Revision: https://reviews.llvm.org/D127130
      afd5a4f2
    • Walter Erquinigo's avatar
      [trace][intelpt] Support system-wide tracing [12] - Support multi-core trace load and save · fc5ef57c
      Walter Erquinigo authored
      :q!
      This diff is massive, but it's because it connects the client with lldb-server
      and also ensures that the postmortem case works.
      
      - Flatten the postmortem trace schema. The reason is that the schema has become quite complex due to the new multicore case, which defeats the original purpose of having a schema that could work for every trace plug-in. At this point, it's better that each trace plug-in defines it's own full schema. This means that the only common field is "type".
      -- Because of this new approach, I merged the "common" trace load and saving functionalities into the IntelPT one. This simplified the code quite a bit. If we eventually implement another trace plug-in, we can see then what we could reuse.
      -- The new schema, which is flattened, has now better comments and is parsed better. A change I did was to disallow hex addresses, because they are a bit error prone. I'm asking now to print the address in decimal.
      -- Renamed "intel" to "GenuineIntel" in the schema because that's what you see in /proc/cpuinfo.
      - Implemented reading the context switch trace data buffer. I had to do
      some refactors to do that cleanly.
      -- A major change that I did here was to simplify the perf_event circular buffer reading logic. It was too complex. Maybe the original Intel author had something different in mind.
      - Implemented all the necessary bits to read trace.json files with per-core data.
      - Implemented all the necessary bits to save to disk per-core trace session.
      - Added a test that ensures that parsing and saving to disk works.
      
      Differential Revision: https://reviews.llvm.org/D126015
      fc5ef57c
    • Arthur Eubanks's avatar
      [gn build] Add missing BLAKE3 dependency · bab0910f
      Arthur Eubanks authored
      bab0910f
    • Peter Klausler's avatar
      [flang][runtime] Allow recovery from BACKSPACE(badUnit) · 142db43b
      Peter Klausler authored
      When an unconnected unit number is used in a BACKSPACE statement
      with ERR=, IOSTAT=, &/or IOMSG= control specifiers, don't crash,
      but let the program deal with the error.
      
      Differential Revision: https://reviews.llvm.org/D127782
      142db43b
    • owenca's avatar
      [clang-format][NFC] Fix braces in ClangFormat.cpp · 2d82c9cc
      owenca authored
      Differential Revision: https://reviews.llvm.org/D127827
      2d82c9cc
    • Stella Stamenova's avatar
      Revert "[lldb/Fuzzer] Create ninja target for target fuzzer" · b10579d0
      Stella Stamenova authored
      This reverts commit f3250da1.
      
      This broke the windows lldb bot: https://lab.llvm.org/buildbot/#/builders/83/builds/19988 and likely others.
      b10579d0
    • Aaron Ballman's avatar
      Rolling back tests for WG14 DR145 · 10822857
      Aaron Ballman authored
      Several build bots are failing with surprising behavior, so it's less
      clear whether we do or don't implement this DR properly.
      
      https://lab.llvm.org/buildbot/#/builders/91/builds/10454
      https://lab.llvm.org/buildbot/#/builders/109/builds/40668
      https://lab.llvm.org/buildbot/#/builders/139/builds/23334
      10822857