1. Apr 05, 2022
  2. Apr 04, 2022
    • Adrian Prantl's avatar
      Prevent GetAugmentedArchSpec() from attaching "unknown" environments · cf3e4011
      Adrian Prantl authored
      Environments are optional and a missing environment is distinct from
      the default "unknown" environment enumerator.  The test is negative,
      because the function uses the host triple and is unpredictable.
      
      rdar://91007207
      
      https://reviews.llvm.org/D122946
      
      Differential Revision: https://reviews.llvm.org/D122946
      cf3e4011
    • Priyansh Singh's avatar
      Correct a typo in a RUN line · aa19500a
      Priyansh Singh authored
      aa19500a
    • gbreynoo's avatar
      [llvm-objcopy][docs] Update --update-section description · 3ad6f535
      gbreynoo authored
      I noticed that when --update-section was added to llvm-objcopy it was
      not added to the command guide, see
      25bcd942. This change adds it to the
      docs and updates the help text.
      
      Differential Revision: https://reviews.llvm.org/D122907
      3ad6f535
    • PeixinQiao's avatar
      [flang] Add one semantic check for allocatable/pointer argument association · fbdcb3ce
      PeixinQiao authored
      The actual argument shall have deferred the same type parameters as
      the dummy argument if the argument is allocatable or pointer variable.
      Currently programs not following this get one crash during execution.
      
      Reviewed By: Jean Perier
      
      Differential Revision: https://reviews.llvm.org/D122779
      fbdcb3ce
    • Thomas Preud'homme's avatar
      [Pipeliner] Fix comment typo · 449ef2fc
      Thomas Preud'homme authored
      449ef2fc
    • Erich Keane's avatar
      Attempt to re-enable demangle test in mangle-nttp-anon-union · b1ed2868
      Erich Keane authored
      @thakis believes the problem was the lack of -n on my llvm-cxxfilt call,
      so hopefully this is the only problem. Committing to see if this makes
      all the buildbots happy.
      b1ed2868
    • Hirochika Matsumoto's avatar
      [InstSimplify] Fold (ctpop(X) == N) || (X != 0) into X != 0 where N > 0 · 447a4485
      Hirochika Matsumoto authored
      (ctpop(X) == N) || (X != 0) --> (X != 0) https://alive2.llvm.org/ce/z/udgUVV
      (ctpop(X) != N) && (X == 0) --> (X == 0) https://alive2.llvm.org/ce/z/9dq-cR
      
      Differential Revision: https://reviews.llvm.org/D122757
      447a4485
    • Nico Weber's avatar
      fix comment typos to cycle bots · a97e3097
      Nico Weber authored
      a97e3097
    • Nico Weber's avatar
      [gn build] Always make symlinks target explicitly depend on base binary · 80ce17e3
      Nico Weber authored
      This is a no-op in these files since the symlinks array is never empty
      and the dependency to the base binary is added through the loop in these
      cases.
      
      But adding them doesn't hurt either, and it:
      1. Makes all symlinks targets look the same, independent of symlinks
         are created always or just conditionally based on gn args
      2. Makes it less likely that bugs like the one fixed by b0abada8
         are introduced by copy-pasting an existing symlink target and then
         not being careful enough when tweaking it.
      
      No behavior change.
      80ce17e3
    • LLVM GN Syncbot's avatar
      [gn build] Port 980c3e6d · ed020808
      LLVM GN Syncbot authored
      ed020808
    • Erich Keane's avatar
      Reapply"[GH54588]Fix ItaniumMangler for NTTP unnamed unions w/ unnamed structs" · d1205bb3
      Erich Keane authored
      AND the followups that fixed builds.
      
      I attempted to get 'cute' and use llvm-cxxfilt to make the test look
      nicer, but apparently some of the bots have a version of llvm-cxxfilt
      that is not the in-tree one, so it fails to properly demangle the stuff.
      I've disabled this "RUN" line.
      
      This reverts commit 50186b63.
      d1205bb3
    • Momchil Velikov's avatar
      [CodeGen] Async unwind - add a pass to fix CFI information · 980c3e6d
      Momchil Velikov authored
      This pass inserts the necessary CFI instructions to compensate for the
      inconsistency of the call-frame information caused by linear (non-CFG
      aware) nature of the unwind tables.
      
      Unlike the `CFIInstrInserer` pass, this one almost always emits only
      `.cfi_remember_state`/`.cfi_restore_state`, which results in smaller
      unwind tables and also transparently handles custom unwind info
      extensions like CFA offset adjustement and save locations of SVE
      registers.
      
      This pass takes advantage of the constraints that LLVM imposes on the
      placement of save/restore points (cf. `ShrinkWrap.cpp`):
      
        * there is a single basic block, containing the function prologue
      
        * possibly multiple epilogue blocks, where each epilogue block is
          complete and self-contained, i.e. CSR restore instructions (and the
          corresponding CFI instructions are not split across two or more
          blocks.
      
        * prologue and epilogue blocks are outside of any loops
      
      Thus, during execution, at the beginning and at the end of each basic
      block the function can be in one of two states:
      
        - "has a call frame", if the function has executed the prologue, or
           has not executed any epilogue
      
        - "does not have a call frame", if the function has not executed the
          prologue, or has executed an epilogue
      
      These properties can be computed for each basic block by a single RPO
      traversal.
      
      In order to accommodate backends which do not generate unwind info in
      epilogues we compute an additional property "strong no call frame on
      entry" which is set for the entry point of the function and for every
      block reachable from the entry along a path that does not execute the
      prologue. If this property holds, it takes precedence over the "has a
      call frame" property.
      
      From the point of view of the unwind tables, the "has/does not have
      call frame" state at beginning of each block is determined by the
      state at the end of the previous block, in layout order.
      
      Where these states differ, we insert compensating CFI instructions,
      which come in two flavours:
      
      - CFI instructions, which reset the unwind table state to the
          initial one.  This is done by a target specific hook and is
          expected to be trivial to implement, for example it could be:
      ```
           .cfi_def_cfa <sp>, 0
           .cfi_same_value <rN>
           .cfi_same_value <rN-1>
           ...
      ```
      where `<rN>` are the callee-saved registers.
      
      - CFI instructions, which reset the unwind table state to the one
          created by the function prologue. These are the sequence:
      ```
             .cfi_restore_state
             .cfi_remember_state
      ```
      In this case we also insert a `.cfi_remember_state` after the
      last CFI instruction in the function prologue.
      
      Reviewed By: MaskRay, danielkiss, chill
      
      Differential Revision: https://reviews.llvm.org/D114545
      980c3e6d
    • Nathan Sidwell's avatar
      [demangler] Parenthesize >> inside template args · ee6ec9e8
      Nathan Sidwell authored
      Both > and >> expressions need to be parenthesized inside template
      argument lists.
      
      Reviewed By: dblaikie, rjmccall
      
      Differential Revision: https://reviews.llvm.org/D122474
      ee6ec9e8
    • Sam McCall's avatar
      [pseudo] respect CLANG_INCLUDE_TESTS · 72ae6cc3
      Sam McCall authored
      72ae6cc3
    • Nico Weber's avatar
      [gn build] llvm-lipo, llvm-libtool-darwin symlink targets now dep on binary · b0abada8
      Nico Weber authored
      This fixes a regression from 69cde915: If llvm_install_cctools_symlinks
      is false, depending llvm-lipo:symlinks didn't actually depend on llvm-lipo
      and the binary didn't get built as dependency of `check-lld` (because the
      `symlinks` array ended up empty).
      b0abada8