[all-commits] [llvm/llvm-project] a75d0a: [LLDB] Add lldb-python-scripts to the things insta...

Alexey Bataev via All-commits all-commits at lists.llvm.org
Thu Mar 14 11:45:55 PDT 2024


  Branch: refs/heads/users/alexey-bataev/spr/slpdo-extra-analysis-int-minbitwidth-if-some-checks-return-false
  Home:   https://github.com/llvm/llvm-project
  Commit: a75d0a3dbab6215db228cedf5f2458e251c30637
      https://github.com/llvm/llvm-project/commit/a75d0a3dbab6215db228cedf5f2458e251c30637
  Author: Alastair Houghton <ahoughton at apple.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M lldb/cmake/caches/Apple-lldb-Linux.cmake

  Log Message:
  -----------
  [LLDB] Add lldb-python-scripts to the things installed on Linux. (#85080)


  Commit: d83660827f0cb0054dafef6568ea2fa5b788a39c
      https://github.com/llvm/llvm-project/commit/d83660827f0cb0054dafef6568ea2fa5b788a39c
  Author: Andrew Brown <andrew.brown at intel.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M openmp/runtime/src/z_Linux_util.cpp

  Log Message:
  -----------
  [openmp][wasm] Fix microtask type mismatch (#84355)

When OpenMP is compiled for WebAssembly (see #71297), it invokes a
microtask via a `switch` statement that dispatches to the `void *`
microtask pointer with spelled-out arguments (not varargs). As #83329
points out, however, this can result in a type mismatch when the
indirect call is executed by WebAssembly; WebAssembly expects the called
pointer to have the precise type of the call site. This change fixes the
issue by bringing back the approach in [D142593] of type-casting all the
`switch` arms to the precise type. This fixes #83329.

[D142593]: https://reviews.llvm.org/D142593


  Commit: 68360dc85507350c9d38bcc6916debe29fd58fee
      https://github.com/llvm/llvm-project/commit/68360dc85507350c9d38bcc6916debe29fd58fee
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/Interp.h
    A clang/test/AST/Interp/c23.c

  Log Message:
  -----------
  [clang][Interp] Don't abort on float div-by-zero

The result in that case can still be computed, and it's inf.


  Commit: ea2cfcc15b4a0c5e823ed173ac8701d1ba6081eb
      https://github.com/llvm/llvm-project/commit/ea2cfcc15b4a0c5e823ed173ac8701d1ba6081eb
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/lib/Lower/CMakeLists.txt
    A flang/lib/Lower/OpenMP/ClauseT.h
    A flang/lib/Lower/OpenMP/Clauses.cpp
    A flang/lib/Lower/OpenMP/Clauses.h

  Log Message:
  -----------
  [flang][OpenMP] Implement flexible OpenMP clause representation (#81621)

The new set of classes representing OpenMP classes mimics the contents
of parser::OmpClause, but differs in a few aspects:
- it can be easily created, copied, etc.
- is based on semantics::SomeExpr instead of parser objects.

This set of classes is geared towards a language-agnostic representation
of OpenMP clauses. While the class members are still based on flang's
`parser::OmpClause`, the classes themselves are actually C++ templates
parameterized with types essential to represent necessary information.
The two parameters are
- `IdType`: the type that can represent object's identity (for flang it
will be `semantics::Symbol *`),
- `ExprType`: the type that can represent expressions, arithmetic and
object references (`semantics::MaybeExpr` in flang).

The templates are defined in a namespace `tomp` (to distinguish it from
`omp`).

This patch introduces file "Clauses.cpp", which contains instantiations
of all of the templates for flang. The instantiations are members of
namespace `omp`, and include an all-encompassing variant class
`omp::Clause`, which is the analog of `parser::OmpClause`.
The class `OmpObject` is represented by `omp::Object`, which contains
the symbol associated with the object, and `semantics::MaybeExpr`
representing the designator for the symbol reference. For each specific
clause in the variant `parser::OmpClause`, there exists a `make`
function that will generate the corresponding `omp::Clause` from it. The
intent was to use the make functions as variant visitors. The creation
of a clause instance would then follow the pattern:
```
omp::Clause clause = std::visit([](auto &&s) { return make(s, semaCtx); }, parserClause.u);
```

If a new clause `foo` is added in the future, then:
- a new template `tomp::FooT` representing the clause needs to be added
to ClauseT.h,
- a new instance needs to be created in flang, this can be as simple as
`using Foo = tomp::FooT<...>`,
- a new make function needs to be implemented to create object of class
Foo from `parser::OmpClause::Foo`.

This patch only introduces the new classes, they are not yet used
anywhere.

[Clause representation 1/6]


  Commit: 65c0143296e3d8aafe819cbae4a48a3d53f8e7b3
      https://github.com/llvm/llvm-project/commit/65c0143296e3d8aafe819cbae4a48a3d53f8e7b3
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/InterpBuiltin.cpp
    A clang/test/AST/Interp/ms.cpp

  Log Message:
  -----------
  [clang][Interp] Fix rotate builtins with differently-typed arguments

We were assuming (and asserting) that both arguments have the same
type, but at least for the ms versions, that's not always the case.


  Commit: 23323e2837d3282c194df6239a7f1a5494c17907
      https://github.com/llvm/llvm-project/commit/23323e2837d3282c194df6239a7f1a5494c17907
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll

  Log Message:
  -----------
  [TargetLowering][RISCV] Propagate fastmath flags for the vector operations emitted in expandVecReduce. (#85164)

We used the fastmath flags for any scalar ops created, but not vector.


  Commit: 8481fb1698a4a54b3965a1654046df736a57e144
      https://github.com/llvm/llvm-project/commit/8481fb1698a4a54b3965a1654046df736a57e144
  Author: Zahi Moudallal <zahi at openai.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
    M mlir/test/Target/LLVMIR/rocdl.mlir

  Log Message:
  -----------
  [MLIR][ROCDL] Fix BallotOp LLVM translation and add doc (#85116)

This modifies the return type of the intrinsic call to handle 32 and 64
bits
properly and document the MLIR operation.


  Commit: 92a09c0165b87032e1bd05020a78ed845cf35661
      https://github.com/llvm/llvm-project/commit/92a09c0165b87032e1bd05020a78ed845cf35661
  Author: Sam McCall <sam.mccall at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/Features.def
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/Type.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Sema/SemaAttr.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/Sema/nullability.c
    M clang/test/SemaCXX/nullability.cpp

  Log Message:
  -----------
  [clang][nullability] allow _Nonnull etc on nullable class types (#82705)

This enables clang and external nullability checkers to make use of
these annotations on nullable C++ class types like unique_ptr.

These types are recognized by the presence of the _Nullable attribute.
Nullable standard library types implicitly receive this attribute.

Existing static warnings for raw pointers are extended to smart
pointers:

- nullptr used as return value or argument for non-null functions
  (`-Wnonnull`)
- assigning or initializing nonnull variables with nullable values
  (`-Wnullable-to-nonnull-conversion`)

It doesn't implicitly add these attributes based on the assume_nonnull
pragma, nor warn on missing attributes where the pragma would apply
them.
I'm not confident that the pragma's current behavior will work well for
C++ (where type-based metaprogramming is much more common than C/ObjC).
We'd like to revisit this once we have more implementation experience.

Support can be detected as `__has_feature(nullability_on_classes)`.
This is needed for back-compatibility, as previously clang would issue a
hard error when _Nullable appears on a smart pointer.

UBSan's `-fsanitize=nullability` will not check smart-pointer types.
It can be made to do so by synthesizing calls to `operator bool`, but
that's left for future work.

Discussion:
https://discourse.llvm.org/t/rfc-allowing-nonnull-etc-on-smart-pointers/77201/26


  Commit: 6588ac3017df0095b160510f56dcb3e4c32a09f0
      https://github.com/llvm/llvm-project/commit/6588ac3017df0095b160510f56dcb3e4c32a09f0
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachineCombiner.cpp
    M llvm/test/CodeGen/RISCV/umulo-128-legalisation-lowering.ll
    M llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll

  Log Message:
  -----------
  [MachineCombiner] Don't ignore PHI depths (#82025)

The depths of the Root and the NewRoot are to be compared in
MachineCombiner::improvesCriticalPathLen(), and while the call to
BlockTrace.getInstrCycles(*Root) includes the Depth of a PHI, for some
reason PHI nodes have been ignored in getOperandDef(). 

This patch removes the special handling of PHIs in getOperandDef() so that
Root and NewRoot get a fair comparison. This does not affect loop headers
as MachineTraceMetrics handles that case by ignoring incoming PHI edges.


  Commit: 0b0798b7024843db462ac2fa903c94308d6654eb
      https://github.com/llvm/llvm-project/commit/0b0798b7024843db462ac2fa903c94308d6654eb
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M .github/CODEOWNERS

  Log Message:
  -----------
  [NFC] Subscribe myself to changes to {lib,test}/AST/Interp/


  Commit: 797994da3c3b0ff40201ac0045740370d2c39cbb
      https://github.com/llvm/llvm-project/commit/797994da3c3b0ff40201ac0045740370d2c39cbb
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/test/AST/Interp/complex.c

  Log Message:
  -----------
  [clang][Interp] Strip _Atomic from _Complex types

... when doing binary operations on them.


  Commit: 52557bce73f64df5da13d42dd97b57fbd4ab1b12
      https://github.com/llvm/llvm-project/commit/52557bce73f64df5da13d42dd97b57fbd4ab1b12
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
    A lldb/test/API/macosx/tbi-honored/Makefile
    A lldb/test/API/macosx/tbi-honored/TestTBIHonored.py
    A lldb/test/API/macosx/tbi-honored/main.c

  Log Message:
  -----------
  [lldb] [Mach-O] ProcessMachCore needs to strip TBI data from addrs (#84998)

Darwin AArch64 application processors are run with Top Byte Ignore mode
enabled so metadata may be stored in the top byte, it needs to be
ignored when reading/writing memory. David Spickett handled this already
in the base class Process::ReadMemory but ProcessMachCore overrides that
method (to avoid the memory cache) and did not pick up the same change.
I add a test case that creates a pointer with metadata in the top byte
and dereferences it with a live process and with a corefile.

rdar://123784501


  Commit: 6479218932117ab36cba578bb458ee7c0fb4bf0a
      https://github.com/llvm/llvm-project/commit/6479218932117ab36cba578bb458ee7c0fb4bf0a
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/Clauses.h

  Log Message:
  -----------
  Fix -Werror build

In file included from ../llvm-project/flang/lib/Lower/OpenMP/Clauses.cpp:9:
../llvm-project/flang/lib/Lower/OpenMP/Clauses.h:195:17: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
  195 |   return Clause{id, specific, source};
      |                 ^~~~~~~~~~~~
      |                 {           }


  Commit: 58a20a0b96a29686d78d3431c85ee378bf51e98d
      https://github.com/llvm/llvm-project/commit/58a20a0b96a29686d78d3431c85ee378bf51e98d
  Author: Florian Mayer <fmayer at google.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/MemoryTaggingSupport.h
    M llvm/lib/Target/AArch64/AArch64StackTagging.cpp
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Utils/MemoryTaggingSupport.cpp
    M llvm/test/CodeGen/AArch64/stack-tagging-initializer-merge.ll
    M llvm/test/CodeGen/AArch64/stack-tagging-stack-coloring.ll
    M llvm/test/CodeGen/AArch64/stack-tagging-untag-placement.ll

  Log Message:
  -----------
  [MTE] fix bug that prevented stack coloring with MTE (#84422)


  Commit: d7f71a330d42ae8ac9048a03bb4816d07038dca6
      https://github.com/llvm/llvm-project/commit/d7f71a330d42ae8ac9048a03bb4816d07038dca6
  Author: Ingo Müller <ingomueller at google.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/test/mlir-opt/split-markers.mlir

  Log Message:
  -----------
  [mlir] Fix RUN command introduced in 516ccce7fa (#84765) (NFC)

There were two problems:
* The `%s` argument to `FileCheck` was repeated.
* A single dash for `-check-prefix` was used but we need two dashes.


  Commit: 22eb8000d22efe1bf06518e84af84d34ff6375de
      https://github.com/llvm/llvm-project/commit/22eb8000d22efe1bf06518e84af84d34ff6375de
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/include/flang/Optimizer/CodeGen/CodeGen.h
    M flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp

  Log Message:
  -----------
  [flang][NFC] Expose patterns from PreCGRewrite pass (#85156)

Expose patterns so they can be reused in other passes.


  Commit: 0adccd1a7fd8e30650f76bd33471de28b7939455
      https://github.com/llvm/llvm-project/commit/0adccd1a7fd8e30650f76bd33471de28b7939455
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M lldb/include/lldb/Target/Language.h
    M lldb/source/Breakpoint/BreakpointResolver.cpp
    M lldb/source/Core/Debugger.cpp
    M lldb/source/Target/Language.cpp
    M lldb/source/Target/TargetProperties.td

  Log Message:
  -----------
  [lldb] Allow languages to filter breakpoints set by line (#83908)

Some languages may create artificial functions that have no real user
code, even though there is line table information for them. One such
case is with coroutine code that receives the CoroSplitter
transformation in LLVM IR. That code transformation creates many
different Functions, cloning one Instruction into many Instructions in
many different Functions and copying the associated debug locations.

It would be difficult to make that pass delete debug locations of cloned
instructions in a language agnostic way (is it even possible?), but LLDB
can ignore certain locations by querying its Language APIs and having it
decide based on, for example, mangling information.


  Commit: 0f252e7bd838d201bad89cda5b0e40a1fdeb96ca
      https://github.com/llvm/llvm-project/commit/0f252e7bd838d201bad89cda5b0e40a1fdeb96ca
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp

  Log Message:
  -----------
  [ORC][MachO] Allow multiple LC_BUILD_VERSION commands.

No testcase: I'm still thinking about the best way to test this.


  Commit: 400518526849b8e03400449502a2da67db40157c
      https://github.com/llvm/llvm-project/commit/400518526849b8e03400449502a2da67db40157c
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M libcxx/utils/ci/docker-compose.yml

  Log Message:
  -----------
  [libc++][CI] Updates the version number of the latest release.


  Commit: 5a77bdc3e7d60c1724054d09a7dc7c67fb58ea9a
      https://github.com/llvm/llvm-project/commit/5a77bdc3e7d60c1724054d09a7dc7c67fb58ea9a
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/Clauses.cpp

  Log Message:
  -----------
  Fix NDEBUG build: guard call to `dump` with #if/#endif


  Commit: 8fe3e70e810b409dce36f6d415e86f0f9b1cf22d
      https://github.com/llvm/llvm-project/commit/8fe3e70e810b409dce36f6d415e86f0f9b1cf22d
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M lld/ELF/Writer.cpp
    M lld/test/ELF/linkerscript/discard-section.s

  Log Message:
  -----------
  [ELF] Eliminate symbols demoted due to /DISCARD/ discarded sections (#85167)

#69295 demoted Defined symbols relative to discarded sections.
If such a symbol is unreferenced, the desired behavior is to
eliminate it from .symtab just like --gc-sections discarded
definitions.
Linux kernel's CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y configuration expects
that the unreferenced `unused` is not emitted to .symtab
(https://github.com/ClangBuiltLinux/linux/issues/2006).

For relocations referencing demoted symbols, the symbol index restores
to 0 like older lld (`R_X86_64_64 0` in `discard-section.s`).

Fix #85048


  Commit: 63d53ee3b07e3b13e176eb60d8c02dea365c5ddb
      https://github.com/llvm/llvm-project/commit/63d53ee3b07e3b13e176eb60d8c02dea365c5ddb
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/include/clang/Driver/ToolChain.h
    M clang/lib/Driver/ToolChain.cpp
    M clang/test/Driver/clang-g-opts.c

  Log Message:
  -----------
  Revert "[Driver] Default riscv*- triples to -fdebug-default-version=4" (#84119)

This reverts commit bbc0f99f3bc96f1db16f649fc21dd18e5b0918f6
(https://reviews.llvm.org/D157663).

With this change, `-g` for the next major release 19.1 will generate
R_RISCV_SET_ULEB128/R_RISCV_SUB_ULEB128 relocations, which require
lld>=18 or binutils>=2.41.
binutils 2.41 is relatively new, but GCC has been producing
R_RISCV_SET_ULEB128/R_RISCV_SUB_ULEB128 for some time now.


  Commit: 5afb937d8a30445642ccaf33866ee4cdd0713222
      https://github.com/llvm/llvm-project/commit/5afb937d8a30445642ccaf33866ee4cdd0713222
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M libcxx/include/fstream
    A libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/setbuf.pass.cpp

  Log Message:
  -----------
  [libc++] Implements filebuf unbuffered. (#76629)

When calling setbuf(nullptr, 0) before performing file operations it
should set the file to unbuffered mode. Currently the code avoids
buffering internally, but the underlying stream still can buffer.

This is addressed by disabling the buffering of the underlying stream.

Fixes: https://github.com/llvm/llvm-project/issues/60509


  Commit: f2d02ce04fe679c7cc806722a3c4a303f970f95f
      https://github.com/llvm/llvm-project/commit/f2d02ce04fe679c7cc806722a3c4a303f970f95f
  Author: Hans Wennborg <hans at chromium.org>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/test/Instrumentation/InstrProfiling/Coro/coro-split-musttail6.ll
    M llvm/test/Instrumentation/InstrProfiling/Coro/coro-split-musttail7.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail6.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail7.ll

  Log Message:
  -----------
  [Coroutines] Remove some stale FIXMEs (NFC)

The calls are already musttail.


  Commit: 76400d2979c92cc0393628dea50e26374d559775
      https://github.com/llvm/llvm-project/commit/76400d2979c92cc0393628dea50e26374d559775
  Author: Heejin Ahn <aheejin at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h

  Log Message:
  -----------
  [WebAssembly] Move getLibcallSignature into WebAssembly namespace (NFC) (#85171)

These are Wasm only functions so they are better be within `WebAssembly`
namespace rather than the `llvm` namespace which includes the whole
LLVM.

Also this removes `extern` keywords which are not strictly necessary.


  Commit: 611c62b30d160375b46b7afedc04965ee6f67d1a
      https://github.com/llvm/llvm-project/commit/611c62b30d160375b46b7afedc04965ee6f67d1a
  Author: Ulrich Weigand <ulrich.weigand at de.ibm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M openmp/libomptarget/plugins-nextgen/common/include/GlobalHandler.h
    M openmp/libomptarget/plugins-nextgen/common/include/Utils/ELF.h
    M openmp/libomptarget/plugins-nextgen/common/src/GlobalHandler.cpp
    M openmp/libomptarget/plugins-nextgen/common/src/Utils/ELF.cpp
    M openmp/libomptarget/plugins-nextgen/cuda/src/rtl.cpp

  Log Message:
  -----------
  [libomptarget] Support BE ELF files in plugins-nextgen (#85246)

Code in plugins-nextgen reading ELF files is currently hard-coded to
assume a 64-bit little-endian ELF format. Unfortunately, this assumption
is even embedded in the interface between GlobalHandler and Utils/ELF
routines, which use ELF64LE types.

To fix this, I've refactored the interface to use generic types, in
particular by using (a unique_ptr to) ObjectFile instead of
ELF64LEObjectFile, and ELFSymbolRef instead of ELF64LE::Sym.

This allows properly templating over multiple ELF format variants inside
Utils/ELF; specifically, this patch adds support for 64-bit big-endian
ELF files in addition to 64-bit little-endian files.


  Commit: f795d1a8b1d1e51d2bc815d5bbed8099b37da0b7
      https://github.com/llvm/llvm-project/commit/f795d1a8b1d1e51d2bc815d5bbed8099b37da0b7
  Author: Paschalis Mpeis <paschalis.mpeis at arm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/AArch64/slp-frem.ll

  Log Message:
  -----------
  [AArch64][LV][SLP] Vectorizers use call cost for vectorized frem  (#82488)

getArithmeticInstrCost is used by both LoopVectorizer and SLPVectorizer
to compute the cost of frem, which becomes a call cost on AArch64 when
TLI has a vector library function.

Add tests that do SLP vectorization for code that contains 2x double and
4x float frem instructions.


  Commit: 5cf8cf3ac80e1edce72bc4120b75a31ca609a82c
      https://github.com/llvm/llvm-project/commit/5cf8cf3ac80e1edce72bc4120b75a31ca609a82c
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/Sema/SemaOpenMP.cpp

  Log Message:
  -----------
  [clang][OpenMP] Fix directive in ActOnOpenMPTargetParallelForSimdDire… (#85217)

…ctive

The function `ActOnOpenMPTargetParallelForSimdDirective` gets the number
of capture levels for OMPD_target_parallel_for, whereas the intended
directive is OMPD_target_parallel_for_simd.


  Commit: d92d2e2b66ab14ad8f41c7af617a18166b2d54ae
      https://github.com/llvm/llvm-project/commit/d92d2e2b66ab14ad8f41c7af617a18166b2d54ae
  Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp

  Log Message:
  -----------
  [AMDGPU] Remove trailing whitespaces in SIRegisterInfo.cpp. NFC. (#85269)


  Commit: 15788e8dd38ffaa4336eda4c03079b6ea4d7df6d
      https://github.com/llvm/llvm-project/commit/15788e8dd38ffaa4336eda4c03079b6ea4d7df6d
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/module/__fortran_builtins.f90
    A flang/test/Lower/Intrinsics/c_ptr_eq_ne.f90

  Log Message:
  -----------
  [flang] Lower c_ptr_eq/ne for iso_c_binding (#85135)

Comparing c_ptr type for equality or inequality is raising an error. 

```
not yet implemented: intrinsic module procedure: c_ptr_eq
```
or this one for inequality
```
not yet implemented: intrinsic module procedure: c_ptr_ne
```

This patch adds a lowering for them and fix the `__fortran_builtins.f90`
module for inequality.


  Commit: 4e232cab0debff5dbb1906ae6b73c3d9b6cea7cd
      https://github.com/llvm/llvm-project/commit/4e232cab0debff5dbb1906ae6b73c3d9b6cea7cd
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Support/APInt.cpp

  Log Message:
  -----------
  [APInt] Implement average functions without sign/zero-extension. NFC. (#85212)

Removing the extension to FullWidth should make them much more efficient
in the 64-bit case, because 65-bit APInts use a separate allocation for
their bits.


  Commit: 4c8714efc50eaefc59a0003f6aa44f666feb0140
      https://github.com/llvm/llvm-project/commit/4c8714efc50eaefc59a0003f6aa44f666feb0140
  Author: Ulrich Weigand <ulrich.weigand at de.ibm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M openmp/libomptarget/plugins-nextgen/common/include/GlobalHandler.h
    M openmp/libomptarget/plugins-nextgen/common/include/Utils/ELF.h
    M openmp/libomptarget/plugins-nextgen/common/src/GlobalHandler.cpp
    M openmp/libomptarget/plugins-nextgen/common/src/Utils/ELF.cpp
    M openmp/libomptarget/plugins-nextgen/cuda/src/rtl.cpp

  Log Message:
  -----------
  Revert "[libomptarget] Support BE ELF files in plugins-nextgen (#85246)"

This reverts commit 611c62b30d160375b46b7afedc04965ee6f67d1a.


  Commit: 2c80a9accb18f3eeb1e0c1bd09a980fb2f2dc2d5
      https://github.com/llvm/llvm-project/commit/2c80a9accb18f3eeb1e0c1bd09a980fb2f2dc2d5
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp

  Log Message:
  -----------
  [ORC][MachO] Pluralize member name.

This member switched from an optional to a vector in 0f252e7bd83.


  Commit: 59ab86bb2f135c42ab100416f1a7ada7c12c1d50
      https://github.com/llvm/llvm-project/commit/59ab86bb2f135c42ab100416f1a7ada7c12c1d50
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
    M bolt/lib/Target/X86/X86MCPlusBuilder.cpp

  Log Message:
  -----------
  [BOLT] Clear operands when creating new instructions. NFCI (#85191)

Reset operand list whenever we create a new instruction via a parameter
passed by reference. Most functions were already doing this, but there
are several places missing the reset. Potentially, if we don not clear
the list it could lead to invalid instruction operands. But the existing
code is unaffected.


  Commit: 4b5b7eca0e5e4e10acb42a70cb0af8300a3b2dfc
      https://github.com/llvm/llvm-project/commit/4b5b7eca0e5e4e10acb42a70cb0af8300a3b2dfc
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M cross-project-tests/debuginfo-tests/dexter/dex/debugger/Debuggers.py
    A cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio2022.py
    M cross-project-tests/debuginfo-tests/dexter/feature_tests/subtools/list-debuggers/list-debuggers.test

  Log Message:
  -----------
  [Dexter] Add VisualStudio2022 support to Dexter (#85248)

Dexter currently supports Visual Studio 2015/2017/2019, but not 2022;
this patch adds support for 2022.


  Commit: 4f873730d6ac1a8496cdef939cc451f178a864ee
      https://github.com/llvm/llvm-project/commit/4f873730d6ac1a8496cdef939cc451f178a864ee
  Author: Thorsten Schütt <schuett at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    A llvm/test/CodeGen/AArch64/extract-vector-elt.ll

  Log Message:
  -----------
  precommit test


  Commit: b058b7e6280a732f6fcbc582f8b6511a36fb96e8
      https://github.com/llvm/llvm-project/commit/b058b7e6280a732f6fcbc582f8b6511a36fb96e8
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/test/InstallAPI/basic.test
    M clang/tools/clang-installapi/Options.cpp
    M clang/tools/clang-installapi/Options.h

  Log Message:
  -----------
  [InstallAPI] capture compatibility versions (#85261)


  Commit: 8e3c0a299f7eb8019f70420bb9d5362731ba13fe
      https://github.com/llvm/llvm-project/commit/8e3c0a299f7eb8019f70420bb9d5362731ba13fe
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/module/__fortran_builtins.f90
    R flang/test/Lower/Intrinsics/c_ptr_eq_ne.f90

  Log Message:
  -----------
  Revert "[flang] Lower c_ptr_eq/ne for iso_c_binding" (#85293)

Reverts llvm/llvm-project#85135

There is an issue with module file generation in flang build.


  Commit: cabfac6a1d5346fad2e55bafd3841e75fd9421e6
      https://github.com/llvm/llvm-project/commit/cabfac6a1d5346fad2e55bafd3841e75fd9421e6
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M .github/CODEOWNERS
    M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
    M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/Features.def
    M clang/include/clang/Driver/ToolChain.h
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/InterpBuiltin.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/Driver/ToolChain.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Sema/SemaAttr.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaType.cpp
    A clang/test/AST/Interp/c23.c
    M clang/test/AST/Interp/complex.c
    A clang/test/AST/Interp/ms.cpp
    M clang/test/Driver/clang-g-opts.c
    M clang/test/InstallAPI/basic.test
    M clang/test/Sema/nullability.c
    M clang/test/SemaCXX/nullability.cpp
    M clang/tools/clang-installapi/Options.cpp
    M clang/tools/clang-installapi/Options.h
    M cross-project-tests/debuginfo-tests/dexter/dex/debugger/Debuggers.py
    A cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio2022.py
    M cross-project-tests/debuginfo-tests/dexter/feature_tests/subtools/list-debuggers/list-debuggers.test
    M flang/include/flang/Optimizer/CodeGen/CodeGen.h
    M flang/lib/Lower/CMakeLists.txt
    A flang/lib/Lower/OpenMP/ClauseT.h
    A flang/lib/Lower/OpenMP/Clauses.cpp
    A flang/lib/Lower/OpenMP/Clauses.h
    M flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp
    M libcxx/include/fstream
    A libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/setbuf.pass.cpp
    M libcxx/utils/ci/docker-compose.yml
    M lld/ELF/Writer.cpp
    M lld/test/ELF/linkerscript/discard-section.s
    M lldb/cmake/caches/Apple-lldb-Linux.cmake
    M lldb/include/lldb/Target/Language.h
    M lldb/source/Breakpoint/BreakpointResolver.cpp
    M lldb/source/Core/Debugger.cpp
    M lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
    M lldb/source/Target/Language.cpp
    M lldb/source/Target/TargetProperties.td
    A lldb/test/API/macosx/tbi-honored/Makefile
    A lldb/test/API/macosx/tbi-honored/TestTBIHonored.py
    A lldb/test/API/macosx/tbi-honored/main.c
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/include/llvm/Transforms/Utils/MemoryTaggingSupport.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/CodeGen/MachineCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
    M llvm/lib/Support/APInt.cpp
    M llvm/lib/Target/AArch64/AArch64StackTagging.cpp
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Utils/MemoryTaggingSupport.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/CodeGen/AArch64/extract-vector-elt.ll
    M llvm/test/CodeGen/AArch64/stack-tagging-initializer-merge.ll
    M llvm/test/CodeGen/AArch64/stack-tagging-stack-coloring.ll
    M llvm/test/CodeGen/AArch64/stack-tagging-untag-placement.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll
    M llvm/test/CodeGen/RISCV/umulo-128-legalisation-lowering.ll
    M llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll
    M llvm/test/Instrumentation/InstrProfiling/Coro/coro-split-musttail6.ll
    M llvm/test/Instrumentation/InstrProfiling/Coro/coro-split-musttail7.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail6.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail7.ll
    A llvm/test/Transforms/SLPVectorizer/AArch64/slp-frem.ll
    M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
    M mlir/test/Target/LLVMIR/rocdl.mlir
    M mlir/test/mlir-opt/split-markers.mlir
    M openmp/runtime/src/z_Linux_util.cpp

  Log Message:
  -----------
  Rebase, aggregate some common code

Created using spr 1.3.5


Compare: https://github.com/llvm/llvm-project/compare/7fe93347ef62...cabfac6a1d53

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list