1. Mar 08, 2022
  2. Mar 07, 2022
  3. Mar 05, 2022
  4. Mar 04, 2022
  5. Mar 03, 2022
  6. Mar 02, 2022
    • Shao-Ce SUN's avatar
      [RISCV] Fix inline asm errors in zfinx · 967296bf
      Shao-Ce SUN authored
      Patch is from craig.topper's comments in https://reviews.llvm.org/D93298
      967296bf
    • Simon Atanasyan's avatar
      [MIPS] Recognize DT_MIPS_XHASH dynamic table tag · 4c9110a5
      Simon Atanasyan authored
      LLVM tools do not emit `DT_MIPS_XHASH` dynamic table tag. But now
      `llvm-objdump` and `llvm-readelf` recognize this tag and print it.
      
      Fixes https://github.com/llvm/llvm-project/issues/53996
      
      (cherry picked from commit 3c840e3c)
      4c9110a5
    • Tom Stellard's avatar
      Revert "[BPF] Fix a BTF type pruning bug" · ce3d57ad
      Tom Stellard authored
      This reverts commit 19149538.
      
      This fix was accidentally committed.
      ce3d57ad
    • Yonghong Song's avatar
      [BPF] Fix a BTF type pruning bug · 19149538
      Yonghong Song authored
      In BPF backend, BTF type generation may skip
      some debuginfo types if they are the pointee
      type of a struct member. For example,
        struct task_struct {
          ...
          struct mm_struct                *mm;
          ...
        };
      BPF backend may generate a forward decl for
      'struct mm_struct' instead of full type if
      there are no other usage of 'struct mm_struct'.
      The reason is to avoid bringing too much unneeded types
      in BTF.
      
      Alexei found a pruning bug where we may miss
      some full type generation. The following is an illustrating
      example:
         struct t1 { ... }
         struct t2 { struct t1 *p; };
         struct t2 g;
         void foo(struct t1 *arg) { ... }
      In the above case, we will have partial debuginfo chain like below:
         struct t2 -> member p
                              \ -> ptr -> struct t1
                              /
           foo -> argument arg
      During traversing
         struct t2 -> member p -> ptr -> struct t1
      The corresponding BTF types are generated except 'struct t1' which
      will be in FixUp stage. Later, when traversing
         foo -> argument arg -> ptr -> struct t1
      The 'ptr' BTF type has been generated and currently implementation
      ignores 'pointer' type hence 'struct t1' is not generated.
      
      This patch fixed the issue not just for the above case, but for
      general case with multiple derived types, e.g.,
         struct t2 -> member p
                              \ -> const -> ptr -> volatile -> struct t1
                              /
           foo -> argument arg
      
      Differential Revision: https://reviews.llvm.org/D119986
      19149538
    • Anton Afanasyev's avatar
      [SLP] Don't try to vectorize pair with insertelement · da33d400
      Anton Afanasyev authored
      Particularly this breaks vectorization of insertelements where some of
      intermediate (i.e. not last) insertelements are used externally.
      
      Fixes PR52275
      Fixes #51617
      
      Reviewed by: ABataev
      
      Differential Revision: https://reviews.llvm.org/D119679
      
      (cherry picked from commit b7574b09)
      da33d400
    • Rainer Orth's avatar
      [fir] Fix FlangOptimizerTests link on Solaris · 3001b0d5
      Rainer Orth authored
      As reported in Issue #53690,
      `tools/flang/unittests/Optimizer/FlangOptimizerTests` `FAIL`s to link on
      Solaris:
      
        Undefined                       first referenced
         symbol                             in file
        _ZN3fir7runtimeL8getModelIcEEPFN4mlir4TypeEPNS2_11MLIRContextEEv lib/libFIRBuilder.a(Reduction.cpp.o)
      
      which is `mlir::Type (*fir::runtime::getModel<char>())(mlir::MLIRContext*)`.
      
      `clang++` warn's
      
        In file included from /var/llvm/llvm-14.0.0-rc1/rc1/llvm-project/flang/lib/Optimizer/Builder/Runtime/Reduction.cpp:14:
        /var/llvm/llvm-14.0.0-rc1/rc1/llvm-project/flang/include/flang/Optimizer/Builder/Runtime/RTBuilder.h:60:34: warning: function 'fir::runtime::getModel<char>' has internal linkage but is not defined [-Wundefined-internal]
        static constexpr TypeBuilderFunc getModel();
                                         ^
        /var/llvm/llvm-14.0.0-rc1/rc1/llvm-project/flang/include/flang/Optimizer/Builder/Runtime/RTBuilder.h:289:29: note: used here
              TypeBuilderFunc ret = getModel<RT>();
                                    ^
      
      Fixed by adding an explicit template instantiation for `getModel<char>`.  I
      suppose this is necessary because on Solaris `char` is `signed`.
      
      Tested on `sparcv9-sun-solaris2.11`.
      
      Differential Revision: https://reviews.llvm.org/D119438
      
      (cherry picked from commit c2b9e967)
      3001b0d5
    • Nick Desaulniers's avatar
      [X86ISelLowering] permit BlockAddressSDNode "i" constraints for PIC · 41d4f89e
      Nick Desaulniers authored
      When building 32b x86 code as PIC, the existing handling of "i"
      constraints is conservative since generally we have to go through the
      GOT to find references to functions.
      
      But generally, BlockAddresses from C code refer to the Function in the
      current TU.  Permit BlockAddresses to be used with the "i" constraint
      for those cases.
      
      I regressed this in
      commit 4edb9983 ("[SelectionDAG] treat X constrained labels as i for asm")
      
      Fixes: https://github.com/llvm/llvm-project/issues/53868
      
      Reviewed By: efriedma, MaskRay
      
      Differential Revision: https://reviews.llvm.org/D119905
      
      (cherry picked from commit 027c16be)
      41d4f89e
    • Amanieu d'Antras's avatar
      [Mangler] Mangle aliases to fastcall/vectorcall functions correctly · d245bcf5
      Amanieu d'Antras authored
      These aliases are produced by MergeFunctions and need to be mangled according to the calling convention of the function they are pointing to instead of defaulting to the C calling convention.
      
      Reviewed By: rnk
      
      Differential Revision: https://reviews.llvm.org/D120382
      
      (cherry picked from commit 54b909de)
      d245bcf5
    • Sander de Smalen's avatar
      [AArch64][SME] Remove term 'streaming-sve' from assembler diagnostics. · 03726762
      Sander de Smalen authored
      'streaming-sve' is not a feature that users should be able to set,
      hence why it shouldn't show up in user-diagnostics. The only
      flag that end-users should be able to set is '+sme'.
      
      Reviewed By: paulwalker-arm
      
      Differential Revision: https://reviews.llvm.org/D120256
      
      (cherry picked from commit ffa4dfc8)
      03726762
    • Johannes Doerfert's avatar
      [Attributor][FIX] Pipe UsedAssumedInformation through more interfaces · f58ab328
      Johannes Doerfert authored
      `UsedAssumedInformation` is a return argument utilized to determine what
      information is known. Most APIs used it already but
      `genericValueTraversal` did not. This adds it to `genericValueTraversal`
      and replaces `AllCallSitesKnown` of `checkForAllCallSites` with the
      commonly used `UsedAssumedInformation`.
      
      This was supposed to be a NFC commit, then the test change appeared.
      Turns out, we had one user of `AllCallSitesKnown` (AANoReturn) and the
      way we set `AllCallSitesKnown` was wrong as we ignored the fact some
      call sites were optimistically assumed dead. Included a dedicated test
      for this as well now.
      
      Fixes https://github.com/llvm/llvm-project/issues/53884
      f58ab328
    • Michał Górny's avatar
      [libcxx] Add an explicit option to build against system-libcxxabi · 4327d39b
      Michał Górny authored
      Add an explicit LIBCXX_CXX_ABI=system-libcxxabi option for linking to
      system-installed libc++abi. This fixes the ability to link against one
      when building libcxx via the runtimes build, as otherwise the build
      system insists on linking into in-tree targets.
      
      Differential Revision: https://reviews.llvm.org/D119539
      
      (cherry picked from commit ba4f1e44)
      4327d39b
  7. Mar 01, 2022