[all-commits] [llvm/llvm-project] 77d131: Add the ability for Script based commands to speci...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Wed Jul 3 14:30:09 PDT 2024


  Branch: refs/heads/users/arsenm/amdgpu-globalisel-legalize-atomicrmw-fadd-fmin-fmax
  Home:   https://github.com/llvm/llvm-project
  Commit: 77d131eddb6ca9060c844fae9cb78779fa70c8f0
      https://github.com/llvm/llvm-project/commit/77d131eddb6ca9060c844fae9cb78779fa70c8f0
  Author: jimingham <jingham at apple.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M lldb/bindings/python/python-wrapper.swig
    M lldb/docs/use/python-reference.rst
    M lldb/examples/python/cmdtemplate.py
    M lldb/include/lldb/Interpreter/CommandObject.h
    M lldb/include/lldb/Interpreter/ScriptInterpreter.h
    M lldb/source/Commands/CommandObjectCommands.cpp
    M lldb/source/Commands/CommandObjectThread.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
    M lldb/test/API/commands/command/script/add/TestAddParsedCommand.py
    M lldb/test/API/commands/command/script/add/test_commands.py
    M lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp

  Log Message:
  -----------
  Add the ability for Script based commands to specify their "repeat command" (#94823)

Among other things, returning an empty string as the repeat command
disables auto-repeat, which can be useful for state-changing commands.

There's one remaining refinement to this setup, which is that for parsed
script commands, it should be possible to change an option value, or add
a new option value that wasn't originally specified, then ask lldb "make
this back into a command string". That would make doing fancy things
with repeat commands easier.

That capability isn't present in the lldb_private side either, however.
So that's for a next iteration.

I haven't added this to the docs on adding commands yet. I wanted to
make sure this was an acceptable approach before I spend the time to do
that.


  Commit: 845dee36ba4161df153ba05009cea615e20eda5a
      https://github.com/llvm/llvm-project/commit/845dee36ba4161df153ba05009cea615e20eda5a
  Author: jimingham <jingham at apple.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M lldb/source/API/SBThread.cpp
    M lldb/test/API/python_api/thread/TestThreadAPI.py
    M lldb/test/API/python_api/thread/main.cpp

  Log Message:
  -----------
  SBThread::StepInstruction shouldn't discard other plans (#97493)

This was just a typo, none of the external execution control functions
should discard other plans. In particular, it means if you stop in a
hand-called function and step an instruction, the function call thread
plan gets unshipped, popping all the function call frames.

I also added a test that asserts the correct behavior. I tested all the
stepping operations even though only StepInstruction was wrong.


  Commit: 9e6b46a9846cf5051c2aaef361af0fe1a76c856e
      https://github.com/llvm/llvm-project/commit/9e6b46a9846cf5051c2aaef361af0fe1a76c856e
  Author: David Truby <david.truby at arm.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.h
    M clang/lib/Driver/ToolChains/Flang.cpp
    M flang/include/flang/Frontend/CodeGenOptions.h
    M flang/lib/Frontend/CodeGenOptions.cpp
    M flang/lib/Frontend/CompilerInstance.cpp
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    A flang/test/Driver/large-data-threshold.f90
    A flang/test/Driver/mcmodel.f90
    A flang/test/Lower/large-data-threshold.f90
    A flang/test/Lower/mcmodel.f90

  Log Message:
  -----------
  [flang] Implement -mcmodel flag (#95411)

This patch implements the -mcmodel flag from clang, allowing the Code
Model to be changed for the LLVM module. The same set of mcmodel
flags are accepted as in clang and the same Code Model attributes are
added to the LLVM module for those flags.

Also add `-mlarge-data-threshold` for x86-64, which is automatically set
by the shared command-line code (see below). This is also added as an 
attribute into the LLVM module and on the target machine.

A function is created for `addMCModel` that is copied out of clang's
argument handling so that it can be shared with flang.

---------

Co-authored-by: Mats Petersson <mats.petersson at arm.com>


  Commit: a0176533766201eca58b20a11e42ab30c73d1b1b
      https://github.com/llvm/llvm-project/commit/a0176533766201eca58b20a11e42ab30c73d1b1b
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp

  Log Message:
  -----------
  [lldb][DataFormatter][NFC] Factor out MapIterator logic into separate helper (#97544)

This patch factors all the logic for advancing the `MapIterator` out of
`GetChildAtIndex`. This, in my opinion, helps readability, and will be
useful for upcoming cleanups in this area.

While here, some drive-by changes:
* added a couple of clarification comments
* fixed a variable name typo
* turned the `return lldb::ValueObjectSP()` into `return nullptr`
* added an assertion to make sure we keep the iterator cache in a valid
state


  Commit: d4f3d24e7f016440083a785ded818b8fb410b7d8
      https://github.com/llvm/llvm-project/commit/d4f3d24e7f016440083a785ded818b8fb410b7d8
  Author: Hansang Bae <hansang.bae at intel.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M openmp/runtime/src/include/omp-tools.h.var

  Log Message:
  -----------
  [OpenMP] Add ompt_start_tool declaration in omp-tools.h (#97099)

The function ompt_start_tool is a globally-visible C function according
to the specification.


  Commit: c0d1d0405cb9f55ec12dfb0cec9c5639d3b357d8
      https://github.com/llvm/llvm-project/commit/c0d1d0405cb9f55ec12dfb0cec9c5639d3b357d8
  Author: Kirill <pyasetskiyr at gmail.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M utils/bazel/examples/submodule/WORKSPACE

  Log Message:
  -----------
  [bazel] Update WORKSPACE file in examples (#97613)


  Commit: c940317d023e6790fc20152f354487571d0e3087
      https://github.com/llvm/llvm-project/commit/c940317d023e6790fc20152f354487571d0e3087
  Author: Thurston Dang <thurston at google.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    A llvm/test/Instrumentation/MemorySanitizer/vector-track-origins-neon.ll
    A llvm/test/Instrumentation/MemorySanitizer/vector-track-origins-struct.ll

  Log Message:
  -----------
  [msan] Add test cases for vector shadow track origins bug (#97611)

These test cases demonstrate a bug in MSan (vector shadow is not always
converted to scalar before zext) that will shortly be fixed in
https://github.com/llvm/llvm-project/pull/96722

The bug is not architecture-specific; we provide both x86 and Arm NEON
test cases.

Since the test cases will crash the compiler (unless it is a release
build), they are marked as UNSUPPORTED.

The buggy codepath is nested inside 'if
(instrumentWithCalls(ConvertedShadow)'. To keep the test cases small, we
set -msan-instrumentation-with-call-threshold=0, though we have observed
this bug in the real world with default settings.


  Commit: 96c18a2769a48436e01ccc59154b8de9fe305e22
      https://github.com/llvm/llvm-project/commit/96c18a2769a48436e01ccc59154b8de9fe305e22
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/SLPVectorizer/X86/entries-different-vf.ll

  Log Message:
  -----------
  [SLP][NFC]Make instructions non-foldable, NFC


  Commit: d54802092de3d92c4ecd331801970b0d84fecc25
      https://github.com/llvm/llvm-project/commit/d54802092de3d92c4ecd331801970b0d84fecc25
  Author: Alexis Engelke <engelke at in.tum.de>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/include/llvm/MC/MCSectionELF.h
    M llvm/lib/MC/ELFObjectWriter.cpp

  Log Message:
  -----------
  [MC][ELF] Eliminate some hash maps from ELFObjectWriter (#97421)

Remove some maps. Mostly cleanup, only a slight performance win.

- Replace SectionIndexMap with layout order: The section layout order is
only used in MachO, so we can repurpose the field as section table
index.
- Store section offsets in MCSectionELF: No need for a map, and
especially not a std::map. Direct access to the underlying (and easily
modifyable) data structure is always faster.
- Improve storage of groups: There's no point in having a DenseMap, the
number of sections and groups are reasonably small to use vectors.


  Commit: 4eecf3c650ea53aa00cae2fe983f95ee6ec6705a
      https://github.com/llvm/llvm-project/commit/4eecf3c650ea53aa00cae2fe983f95ee6ec6705a
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/scalarization-overhead.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reused-extractelements.ll

  Log Message:
  -----------
  [SLP]Reorder buildvector/reduction vectorization and fuse the loops.

Currently SLP vectorizer tries at first to find reduction nodes, and
then vectorize buildvector sequences. Need to try to vectorize wide
buildvector sequences at first and only then try to vectorize
reductions, and then smaller buildvector sequences.

Reviewers: RKSimon

Reviewed By: RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/96943


  Commit: 97dc50882cbc63d7098e95f73f242185c75c226b
      https://github.com/llvm/llvm-project/commit/97dc50882cbc63d7098e95f73f242185c75c226b
  Author: Shaw Young <58664393+shawbyoung at users.noreply.github.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M bolt/docs/CommandLineArgumentReference.md
    M bolt/include/bolt/Profile/YAMLProfileReader.h
    M bolt/lib/Profile/YAMLProfileReader.cpp
    A bolt/test/X86/name-similarity-function-matching.test

  Log Message:
  -----------
  [BOLT] Match functions with name similarity (#95884)

A mapping - from namespace to associated binary functions - is used to
match function profiles to binary based on the
'--name-similarity-function-matching-threshold' flag set edit distance
threshold. The flag is set to 0 (exact name matching) by default as it is
expensive, requiring the processing of all BFs.

Test Plan: Added name-similarity-function-matching.test. On a binary
with 5M functions, rewrite passes took ~520s without the flag and
~2018s with the flag set to 20.


  Commit: c156d421851d175805309a83bf703ad304955847
      https://github.com/llvm/llvm-project/commit/c156d421851d175805309a83bf703ad304955847
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M clang/test/Driver/riscv-arch.c
    M llvm/lib/TargetParser/RISCVISAInfo.cpp

  Log Message:
  -----------
  [RISCV] Remove SeenExtMap from RISCVISAInfo::parseArchString. (#97506)

Use the Exts map directly instead of adding to a temporary MapVector
first.

There are a couple functional change from this.
-If an unknown extension is duplicated, we will now print an error for
it being unknown instead of an error for it being duplicated. 
-If an unknown extension is followed by an underscore with no extension after
it, we will error for the unknown extension instead of the dangling
underscore.

These don't seem like serious changes to me. I've updated tests
accordingly.


  Commit: edbc0e30a9e587cee1189be023b9385adc2f239a
      https://github.com/llvm/llvm-project/commit/edbc0e30a9e587cee1189be023b9385adc2f239a
  Author: srcarroll <50210727+srcarroll at users.noreply.github.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
    M mlir/include/mlir/Dialect/SCF/Utils/Utils.h
    M mlir/include/mlir/Interfaces/LoopLikeInterface.h
    M mlir/lib/Dialect/SCF/IR/SCF.cpp
    M mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp
    M mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp
    M mlir/lib/Dialect/SCF/Utils/Utils.cpp
    M mlir/lib/Interfaces/LoopLikeInterface.cpp
    M mlir/test/Dialect/SCF/transform-loop-fuse-sibling.mlir

  Log Message:
  -----------
  [mlir][loops] Reland Refactor LoopFuseSiblingOp and support parallel fusion #94391 (#97607)

The refactor had a bug where the fused loop was inserted in an incorrect
location. This patch fixes the bug and relands the original PR
https://github.com/llvm/llvm-project/pull/94391.

This patch refactors code related to LoopFuseSiblingOp transform in
attempt to reduce duplicate common code. The aim is to refactor as much
as possible to a functions on LoopLikeOpInterfaces, but this is still a
work in progress. A full refactor will require more additions to the
LoopLikeOpInterface.

In addition, scf.parallel fusion support has been added.


  Commit: d5f5dc9dcca427a290a9f454046113afdb6a68ff
      https://github.com/llvm/llvm-project/commit/d5f5dc9dcca427a290a9f454046113afdb6a68ff
  Author: vporpo <vporpodas at google.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    M llvm/include/llvm/SandboxIR/SandboxIRValues.def
    M llvm/lib/SandboxIR/SandboxIR.cpp
    M llvm/unittests/SandboxIR/SandboxIRTest.cpp

  Log Message:
  -----------
  [SandboxIR] More boilerplate: Function, Argument, Constant, Instruction, OpaqueInst (#97343)

A very basic implementation of sandboxir::
`Fuction`
`Argument`
`Constant`
`Instruction`
`OpaqueInst`


  Commit: bbd52dd44ceee80e3b6ba6a9b2bd8ee9a9713833
      https://github.com/llvm/llvm-project/commit/bbd52dd44ceee80e3b6ba6a9b2bd8ee9a9713833
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add-ssat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add-usat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fix.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl-rot.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr-rot.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-mul.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-smax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-smin.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-ssat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-usat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-umax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-umin.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-ashr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-lshr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-shl.ll

  Log Message:
  -----------
  [SLP]Remove operands upon marking instruction for deletion.

If the instruction is marked for deletion, better to drop all its
operands and mark them for deletion too (if allowed). It allows to have
more vectorizable patterns and generate less useless extractelement
instructions.

Reviewers: RKSimon

Reviewed By: RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/97409


  Commit: 7aa906dda56ea6843004f1d52eb13860341ca5e5
      https://github.com/llvm/llvm-project/commit/7aa906dda56ea6843004f1d52eb13860341ca5e5
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/lib/TargetParser/RISCVISAInfo.cpp

  Log Message:
  -----------
  [RISCV] Merge the Arch and Exts variables in RISCVISAInfo::parseArchString. NFC


  Commit: c02e8f762a410e55581866c43636efcd6504c1bd
      https://github.com/llvm/llvm-project/commit/c02e8f762a410e55581866c43636efcd6504c1bd
  Author: Ilia Sergachev <1894984+sergachev at users.noreply.github.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/SplitModule.h
    M llvm/lib/Transforms/Utils/SplitModule.cpp
    A llvm/test/tools/llvm-split/name-hash-based-distribution.ll
    A llvm/test/tools/llvm-split/round-robin.ll
    M llvm/tools/llvm-split/llvm-split.cpp

  Log Message:
  -----------
  [llvm][transforms] Add a new algorithm to SplitModule (#95941)

The new round-robin algorithm overrides the hash-based distribution of
functions to modules. It achieves a more even number of functions per
module when the number of functions is close to the number of requested
modules. It's not in use by default and is available under a new flag.


  Commit: 7002ecb4c6dba2050b321699e0e17eb890c3ca2c
      https://github.com/llvm/llvm-project/commit/7002ecb4c6dba2050b321699e0e17eb890c3ca2c
  Author: Thurston Dang <thurston at google.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/test/Instrumentation/MemorySanitizer/vector-track-origins-neon.ll
    M llvm/test/Instrumentation/MemorySanitizer/vector-track-origins-struct.ll

  Log Message:
  -----------
      [msan] Convert vector shadow to scalar before zext (#96722)

zext does not allow converting vector shadow to scalar, so we must
manually convert it prior to calling zext in materializeOneCheck, for
which the 'ConvertedShadow' parameter isn't actually guaranteed to be
scalar (1). Note that it is safe/no-op to call convertShadowToScalar on
a shadow that is already scalar.

In contrast, the storeOrigin function already converts the (potentially
vector) shadow to scalar; we add a comment to note why it is load
bearing.

(1) In materializeInstructionChecks():
"// Disable combining in some cases. TrackOrigins checks each shadow to
pick
 // correct origin.
 bool Combine = !MS.TrackOrigins;
 ...
       if (!Combine) {
        materializeOneCheck(IRB, ConvertedShadow, ShadowData.Origin);
        continue;
      }"


  Commit: a1bc606b5fb9a91eb16fc0c012aa785323788c90
      https://github.com/llvm/llvm-project/commit/a1bc606b5fb9a91eb16fc0c012aa785323788c90
  Author: agozillon <Andrew.Gozillon at amd.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M flang/lib/Optimizer/Transforms/StackReclaim.cpp
    M flang/test/Transforms/stack-reclaime.fir

  Log Message:
  -----------
  [Flang][Transform] Modify stack reclaim pass to use allocation address space when generating intrinsics (#96836)

This PR aims to factor in the allocation address space provided by an
architectures data layout when generating the intrinsic instructions,
this allows them to be lowered later with the address spaces in tow.
This aligns the intrinsic creation with the LLVM IRBuilder's
https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/IR/IRBuilder.h#L1053

This is also necessary for the below example to compile for OpenMP AMD
GPU and not ICE the compiler in ISEL as AMD's stackrestore and stacksave
are expected to have the appropriate allocation address space for AMD
GPU.

program main
    integer(4), allocatable :: test
    allocate(test)

!$omp target map(tofrom:test)
    do i = 1, 10
      test = test + 50
    end do
!$omp end target

  deallocate(test)
end program

The PR also fixes the issue I opened a while ago which hits the same
error when compiling for AMDGPU:
https://github.com/llvm/llvm-project/issues/82368

Although, you have to have the appropriate GPU LIBC and Fortran offload
runtime (both compiled for AMDGPU) added to the linker for the command
or it will reach another ISEL error and ICE weirdly. But with the
pre-requisites it works fine with this PR.


  Commit: a379b2260fc3bada0c11a6a1cd7891a1a6e1fb99
      https://github.com/llvm/llvm-project/commit/a379b2260fc3bada0c11a6a1cd7891a1a6e1fb99
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/lib/IR/DIBuilder.cpp
    M llvm/lib/IR/LegacyPassManager.cpp

  Log Message:
  -----------
  [IR] Use range-based for loops (NFC) (#97575)


  Commit: 92f4001906a18fca29929a333e61fdd662a9b0bd
      https://github.com/llvm/llvm-project/commit/92f4001906a18fca29929a333e61fdd662a9b0bd
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  Log Message:
  -----------
  [Transforms] Use range-based for loops (NFC) (#97576)


  Commit: fd524d4df797d3c25a1f50b03b1d8ffcbbdd87af
      https://github.com/llvm/llvm-project/commit/fd524d4df797d3c25a1f50b03b1d8ffcbbdd87af
  Author: shawbyoung <shawbyoung at gmail.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M bolt/lib/Profile/CMakeLists.txt

  Log Message:
  -----------
  [BOLT] Add Demangle to Profile link components

Added Demangle to Profile link components to fix shared build.


  Commit: 873c3f7e7813223906d3ebf5acb4359a8b5726bc
      https://github.com/llvm/llvm-project/commit/873c3f7e7813223906d3ebf5acb4359a8b5726bc
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add-ssat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add-usat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fix.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl-rot.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr-rot.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-mul.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-smax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-smin.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-ssat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-usat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-umax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-umin.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-ashr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-lshr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-shl.ll

  Log Message:
  -----------
  Revert "[SLP]Remove operands upon marking instruction for deletion."

This reverts commit bbd52dd44ceee80e3b6ba6a9b2bd8ee9a9713833 to fix
a crash revealed in https://lab.llvm.org/buildbot/#/builders/4/builds/505


  Commit: af784a5c13328aa4a8ce622260563b459856a8d4
      https://github.com/llvm/llvm-project/commit/af784a5c13328aa4a8ce622260563b459856a8d4
  Author: Mingming Liu <mingmingl at google.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/FunctionImport.h
    M llvm/lib/LTO/LTO.cpp
    M llvm/lib/Transforms/IPO/FunctionImport.cpp
    M llvm/test/ThinLTO/X86/funcimport-stats.ll
    M llvm/test/Transforms/FunctionImport/funcimport.ll

  Log Message:
  -----------
  [ThinLTO] Use a set rather than a map to track exported ValueInfos. (#97360)

https://github.com/llvm/llvm-project/pull/95482 is a reland of
https://github.com/llvm/llvm-project/pull/88024.
https://github.com/llvm/llvm-project/pull/95482 keeps indexing memory
usage reasonable by using unordered_map and doesn't make other changes
to originally reviewed code.

While discussing possible ways to minimize indexing memory usage, Teresa
asked whether I need `ExportSetTy` as a map or a set is sufficient. This
PR implements the idea. It uses a set rather than a map to track exposed
ValueInfos.

Currently, `ExportLists` has two use cases, and neither needs to track a
ValueInfo's import/export status. So using a set is sufficient and
correct.
1) In both in-process and distributed ThinLTO, it's used to decide if a
function or global variable is visible [1] from another module after importing
creates additional cross-module references.
     * If a cross-module call edge is seen today, the callee must be visible
       to another module without keeping track of its export status already.
       For instance, this [2] is how callees of direct calls get exported.
2) For in-process ThinLTO [3], it's used to compute lto cache key.
     * The cache key computation already hashes [4] 'ImportList' , and 'ExportList' is
        determined by 'ImportList'. So it's fine to not track 'import type' for export list.

[1] https://github.com/llvm/llvm-project/blob/66cd8ec4c08252ebc73c82e4883a8da247ed146b/llvm/lib/LTO/LTO.cpp#L1815-L1819
[2] https://github.com/llvm/llvm-project/blob/66cd8ec4c08252ebc73c82e4883a8da247ed146b/llvm/lib/LTO/LTO.cpp#L1783-L1794
[3] https://github.com/llvm/llvm-project/blob/66cd8ec4c08252ebc73c82e4883a8da247ed146b/llvm/lib/LTO/LTO.cpp#L1494-L1496
[4] https://github.com/llvm/llvm-project/blob/b76100e220591fab2bf0a4917b216439f7aa4b09/llvm/lib/LTO/LTO.cpp#L194-L222


  Commit: a3c5c83273358a85a4e02f5f76379b1a276e7714
      https://github.com/llvm/llvm-project/commit/a3c5c83273358a85a4e02f5f76379b1a276e7714
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  Log Message:
  -----------
  [DAGCombiner] Remove unneeded getValueType() calls in visitMULHS/MULHU. NFC

We have an existing VT variable that should match N0.getValueType.


  Commit: b5864988b3230324f5426036f45aab43d20a5b94
      https://github.com/llvm/llvm-project/commit/b5864988b3230324f5426036f45aab43d20a5b94
  Author: Mats Petersson <mats.petersson at arm.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M flang/test/Lower/mcmodel.f90

  Log Message:
  -----------
  [flang] Fix failing test (#97634)

Add requires line to not test when the target architecture isn't
supported.

Technically we could make it a bit less restrictive, but want green
builds.


  Commit: 04a1a3482ce3ee00b5bbec1ce852e58410e4b6ad
      https://github.com/llvm/llvm-project/commit/04a1a3482ce3ee00b5bbec1ce852e58410e4b6ad
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Driver/Options.td
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    A clang/test/Driver/crel.c
    A clang/test/Misc/cc1as-crel.s
    M clang/tools/driver/cc1as_main.cpp

  Log Message:
  -----------
  [Driver] Add -Wa, options --crel and --allow-experimental-crel

The two options are discussed in a few comments around
https://github.com/llvm/llvm-project/pull/91280#issuecomment-2099344079

* -Wa,--crel: error "-Wa,--allow-experimental-crel must be specified to use -Wa,--crel..."
* -Wa,--allow-experimental-crel: no-op
* -Wa,--crel,--allow-experimental-crel: enable CREL in the integrated assembler (#91280)

MIPS's little-endian n64 ABI messed up the `r_info` field in
relocations. While this could be fixed with CREL, my intention is to
avoid complication in assembler/linker. The implementation simply
doesn't allow CREL for MIPS.

Link: https://discourse.llvm.org/t/rfc-crel-a-compact-relocation-format-for-elf/77600

Pull Request: https://github.com/llvm/llvm-project/pull/97378


  Commit: 4c63672ca706c708de1e49bb29d026a705daa0d2
      https://github.com/llvm/llvm-project/commit/4c63672ca706c708de1e49bb29d026a705daa0d2
  Author: Hansang Bae <hansang.bae at intel.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M openmp/libompd/test/ompt_plugin.h

  Log Message:
  -----------
  [OpenMP] Fix use of ompt_start_tool in ompd test. (#97616)


  Commit: e391239045c128251758a1f17e4b5be5677f6d59
      https://github.com/llvm/llvm-project/commit/e391239045c128251758a1f17e4b5be5677f6d59
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M bolt/docs/CommandLineArgumentReference.md
    M bolt/include/bolt/Profile/YAMLProfileReader.h
    M bolt/lib/Profile/CMakeLists.txt
    M bolt/lib/Profile/YAMLProfileReader.cpp
    A bolt/test/X86/name-similarity-function-matching.test
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Driver/Options.td
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.h
    M clang/lib/Driver/ToolChains/Flang.cpp
    A clang/test/Driver/crel.c
    M clang/test/Driver/riscv-arch.c
    A clang/test/Misc/cc1as-crel.s
    M clang/tools/driver/cc1as_main.cpp
    M flang/include/flang/Frontend/CodeGenOptions.h
    M flang/lib/Frontend/CodeGenOptions.cpp
    M flang/lib/Frontend/CompilerInstance.cpp
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Optimizer/Transforms/StackReclaim.cpp
    A flang/test/Driver/large-data-threshold.f90
    A flang/test/Driver/mcmodel.f90
    A flang/test/Lower/large-data-threshold.f90
    A flang/test/Lower/mcmodel.f90
    M flang/test/Transforms/stack-reclaime.fir
    M lldb/bindings/python/python-wrapper.swig
    M lldb/docs/use/python-reference.rst
    M lldb/examples/python/cmdtemplate.py
    M lldb/include/lldb/Interpreter/CommandObject.h
    M lldb/include/lldb/Interpreter/ScriptInterpreter.h
    M lldb/source/API/SBThread.cpp
    M lldb/source/Commands/CommandObjectCommands.cpp
    M lldb/source/Commands/CommandObjectThread.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
    M lldb/test/API/commands/command/script/add/TestAddParsedCommand.py
    M lldb/test/API/commands/command/script/add/test_commands.py
    M lldb/test/API/python_api/thread/TestThreadAPI.py
    M lldb/test/API/python_api/thread/main.cpp
    M lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp
    M llvm/include/llvm/MC/MCSectionELF.h
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    M llvm/include/llvm/SandboxIR/SandboxIRValues.def
    M llvm/include/llvm/Transforms/IPO/FunctionImport.h
    M llvm/include/llvm/Transforms/Utils/SplitModule.h
    M llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/IR/DIBuilder.cpp
    M llvm/lib/IR/LegacyPassManager.cpp
    M llvm/lib/LTO/LTO.cpp
    M llvm/lib/MC/ELFObjectWriter.cpp
    M llvm/lib/SandboxIR/SandboxIR.cpp
    M llvm/lib/TargetParser/RISCVISAInfo.cpp
    M llvm/lib/Transforms/IPO/FunctionImport.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/lib/Transforms/Utils/SplitModule.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Instrumentation/MemorySanitizer/vector-track-origins-neon.ll
    A llvm/test/Instrumentation/MemorySanitizer/vector-track-origins-struct.ll
    M llvm/test/ThinLTO/X86/funcimport-stats.ll
    M llvm/test/Transforms/FunctionImport/funcimport.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/scalarization-overhead.ll
    M llvm/test/Transforms/SLPVectorizer/X86/entries-different-vf.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reused-extractelements.ll
    A llvm/test/tools/llvm-split/name-hash-based-distribution.ll
    A llvm/test/tools/llvm-split/round-robin.ll
    M llvm/tools/llvm-split/llvm-split.cpp
    M llvm/unittests/SandboxIR/SandboxIRTest.cpp
    M mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
    M mlir/include/mlir/Dialect/SCF/Utils/Utils.h
    M mlir/include/mlir/Interfaces/LoopLikeInterface.h
    M mlir/lib/Dialect/SCF/IR/SCF.cpp
    M mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp
    M mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp
    M mlir/lib/Dialect/SCF/Utils/Utils.cpp
    M mlir/lib/Interfaces/LoopLikeInterface.cpp
    M mlir/test/Dialect/SCF/transform-loop-fuse-sibling.mlir
    M openmp/libompd/test/ompt_plugin.h
    M openmp/runtime/src/include/omp-tools.h.var
    M utils/bazel/examples/submodule/WORKSPACE

  Log Message:
  -----------
  Merge branch 'main' into users/arsenm/amdgpu-globalisel-legalize-atomicrmw-fadd-fmin-fmax


Compare: https://github.com/llvm/llvm-project/compare/bd255734665d...e391239045c1

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