SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [BitcodeReader] datalayout must be specified before it is queried. (details)
  2. [SVE] Remove usages of VectorType::getNumElements() from SystemZ (details)
  3. [lld] Add archive file support to Mach-O backend (details)
  4. Infer alignment of unmarked loads in IR/bitcode parsing. (details)
  5. [lldb/Test] Skip test using files to synchronize. (details)
  6. [lldb] Update stop info override callback comment. (details)
  7. [WebAssembly] Added Debug Fixup pass (details)
  8. LoadInst should store Align, not MaybeAlign. (details)
  9. [mlir][Affine] Introduce affine.vector_load and affine.vector_store (details)
  10. [MLIR] Add symbol map to mlir ExecutionEngine (details)
Commit 44ecaabc0729fb75fcfec1d46a6bef6bc7c9e1e1 by efriedma
[BitcodeReader] datalayout must be specified before it is queried.

This isn't really a new invariant; it effectively already existed due to
existing DataLayout queries.  But this makes it explicit.

This is technically not backward-compatible with the existing bitcode
reader, but it's backward-compatible with the output of the bitcode
writer, which is what matters in practice.

No testcase because I don't know a good way to write one: there are no
existing tools that can generate a bitcode file that would trigger the
error.

Split off from D78403.

Differential Revision: https://reviews.llvm.org/D79900
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp
Commit 920ff806d4e9fd74f8c546a82e71d930e9b61003 by ctetreau
[SVE] Remove usages of VectorType::getNumElements() from SystemZ

Reviewers: efriedma, david-arm, c-rhodes, jnspaulsson

Reviewed By: david-arm

Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79824
The file was modifiedllvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
Commit 2b920ae78c1d3fd36aeb7e77ca8de18a36b92344 by jezng
[lld] Add archive file support to Mach-O backend

With this change, basic archive files can be linked together. Input
section discovery has been refactored into a function since archive
files lazily resolve their symbols / the object files containing those
symbols.

Reviewed By: int3, smeenai

Differential Revision: https://reviews.llvm.org/D78342
The file was modifiedlld/MachO/InputFiles.h
The file was modifiedlld/MachO/Symbols.h
The file was modifiedlld/MachO/SymbolTable.h
The file was addedlld/test/MachO/invalid/bad-archive.s
The file was addedlld/test/MachO/symbol-order.s
The file was addedlld/test/MachO/invalid/archive-no-index.s
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/SymbolTable.cpp
The file was modifiedlld/MachO/Symbols.cpp
The file was addedlld/test/MachO/archive.s
Commit 4532a50899b1748a64320abce7a69ac10b801a34 by efriedma
Infer alignment of unmarked loads in IR/bitcode parsing.

For IR generated by a compiler, this is really simple: you just take the
datalayout from the beginning of the file, and apply it to all the IR
later in the file. For optimization testcases that don't care about the
datalayout, this is also really simple: we just use the default
datalayout.

The complexity here comes from the fact that some LLVM tools allow
overriding the datalayout: some tools have an explicit flag for this,
some tools will infer a datalayout based on the code generation target.
Supporting this properly required plumbing through a bunch of new
machinery: we want to allow overriding the datalayout after the
datalayout is parsed from the file, but before we use any information
from it. Therefore, IR/bitcode parsing now has a callback to allow tools
to compute the datalayout at the appropriate time.

Not sure if I covered all the LLVM tools that want to use the callback.
(clang? lli? Misc IR manipulation tools like llvm-link?). But this is at
least enough for all the LLVM regression tests, and IR without a
datalayout is not something frontends should generate.

This change had some sort of weird effects for certain CodeGen
regression tests: if the datalayout is overridden with a datalayout with
a different program or stack address space, we now parse IR based on the
overridden datalayout, instead of the one written in the file (or the
default one, if none is specified). This broke a few AVR tests, and one
AMDGPU test.

Outside the CodeGen tests I mentioned, the test changes are all just
fixing CHECK lines and moving around datalayout lines in weird places.

Differential Revision: https://reviews.llvm.org/D78403
The file was modifiedllvm/test/Transforms/DeadStoreElimination/simple.ll
The file was modifiedllvm/test/Transforms/SROA/basictest.ll
The file was modifiedllvm/test/Transforms/IRCE/ranges_of_different_types.ll
The file was modifiedpolly/test/ForwardOpTree/forward_load_tripleuse.ll
The file was modifiedllvm/test/Transforms/GVN/range.ll
The file was addedllvm/test/Verifier/unsized-types-alloca.ll
The file was modifiedpolly/test/ForwardOpTree/forward_load_double_write.ll
The file was modifiedllvm/test/CodeGen/AArch64/falkor-hwpf.ll
The file was modifiedllvm/tools/llc/llc.cpp
The file was modifiedllvm/test/Transforms/NewGVN/pr33367.ll
The file was modifiedllvm/test/CodeGen/AVR/rust-avr-bug-95.ll
The file was modifiedpolly/test/ForwardOpTree/forward_into_region_redundant_use.ll
The file was modifiedllvm/test/Transforms/JumpThreading/thread-loads.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/no-wrap-add-exprs.ll
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/lib/CodeGen/MIRParser/MIRParser.cpp
The file was modifiedllvm/test/Transforms/EarlyCSE/invariant.start.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/control-flow.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/load-store-to-memcpy.ll
The file was modifiedllvm/test/Analysis/MustExecute/loop-header.ll
The file was modifiedllvm/test/Transforms/IRCE/pre_post_loops.ll
The file was modifiedllvm/test/Transforms/EarlyCSE/invariant-loads.ll
The file was modifiedllvm/test/Transforms/GVN/invariant.group.ll
The file was modifiedllvm/test/Analysis/TypeBasedAliasAnalysis/sink.ll
The file was modifiedpolly/test/ForwardOpTree/forward_load_fromloop.ll
The file was modifiedllvm/include/llvm/CodeGen/MIRParser/MIRParser.h
The file was modifiedllvm/tools/opt/opt.cpp
The file was addedllvm/test/Verifier/unsized-types-load.ll
The file was modifiedllvm/test/Bitcode/memInstructions.3.2.ll
The file was modifiedllvm/test/CodeGen/AVR/rust-avr-bug-37.ll
The file was modifiedllvm/test/Transforms/RewriteStatepointsForGC/deref-pointers.ll
The file was modifiedllvm/test/Transforms/LoopIdiom/X86/unordered-atomic-memcpy.ll
The file was modifiedpolly/test/ScopInfo/granularity_scalar-indep_ordered-2.ll
The file was modifiedllvm/test/Transforms/IRCE/unsigned_comparisons_ugt.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/invariant-load.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/volatile.ll
The file was modifiedllvm/test/Transforms/MergeFunc/ranges.ll
The file was modifiedllvm/test/Transforms/SCCP/conditions-ranges.ll
The file was modifiedmlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
The file was modifiedllvm/test/Feature/md_on_instruction.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/load-metadata.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/range.ll
The file was modifiedllvm/lib/IRReader/IRReader.cpp
The file was modifiedllvm/test/Transforms/LICM/guards.ll
The file was modifiedpolly/test/ForwardOpTree/forward_hoisted.ll
The file was modifiedllvm/test/Transforms/CodeGenPrepare/X86/invariant.group.ll
The file was modifiedpolly/test/ForwardOpTree/forward_load_differentarray.ll
The file was modifiedllvm/include/llvm/IRReader/IRReader.h
The file was modifiedllvm/test/Transforms/SeparateConstOffsetFromGEP/test-add-sub-separation.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-simple.ll
The file was modifiedpolly/test/ScopInfo/granularity_scalar-indep_noepilogue.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll
The file was modifiedpolly/test/ForwardOpTree/forward_load_memset_before.ll
The file was modifiedllvm/tools/llvm-as/llvm-as.cpp
The file was modifiedllvm/test/Transforms/MergeFunc/ranges-multiple.ll
The file was modifiedllvm/lib/AsmParser/LLParser.h
The file was modifiedllvm/test/CodeGen/ARM/ParallelDSP/squaring.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll
The file was modifiedllvm/test/Transforms/Util/assume-builder.ll
The file was modifiedllvm/test/Transforms/LICM/hoist-deref-load.ll
The file was modifiedllvm/test/Transforms/NewGVN/noalias.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/float-minmax-instruction-flag.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/hoist-with-range.ll
The file was modifiedllvm/include/llvm/AsmParser/Parser.h
The file was modifiedllvm/test/Transforms/IRCE/range_intersect_miscompile.ll
The file was modifiedllvm/include/llvm/Bitcode/BitcodeReader.h
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/non-null.ll
The file was modifiedllvm/test/Analysis/MemoryDependenceAnalysis/InvariantLoad.ll
The file was modifiedllvm/test/LTO/X86/strip-debug-info.ll
The file was modifiedllvm/test/Transforms/GVN/noalias.ll
The file was modifiedllvm/test/Transforms/LoopUnroll/unroll-header-exiting-with-phis.ll
The file was modifiedllvm/lib/AsmParser/Parser.cpp
The file was removedllvm/test/Verifier/unsized-types.ll
The file was modifiedpolly/test/ForwardOpTree/forward_load.ll
The file was modifiedllvm/test/Transforms/EarlyCSE/guards.ll
The file was modifiedpolly/test/ScopInfo/granularity_scalar-indep_epilogue.ll
The file was modifiedllvm/test/Transforms/Reassociate/keep-debug-loc.ll
The file was modifiedllvm/test/CodeGen/AVR/call.ll
The file was modifiedpolly/test/ScopInfo/granularity_scalar-indep.ll
The file was modifiedllvm/test/Transforms/NewGVN/metadata-nonnull.ll
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/schedule_budget.ll
The file was modifiedllvm/test/CodeGen/AVR/icall-func-pointer-correct-addr-space.ll
The file was modifiedllvm/test/Analysis/BasicAA/featuretest.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll
The file was modifiedllvm/test/Transforms/JumpThreading/combine-metadata.ll
The file was modifiedllvm/test/Transforms/NewGVN/range.ll
The file was modifiedpolly/test/ScopInfo/granularity_scalar-indep_ordered.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/invalid-alloca.ll
The file was modifiedpolly/test/ForwardOpTree/forward_phi_load.ll
The file was modifiedllvm/test/Analysis/ValueTracking/deref-bitcast-of-gep.ll
The file was modifiedpolly/test/ForwardOpTree/forward_load_indirect.ll
The file was modifiedpolly/test/ForwardOpTree/forward_load_unrelatedunusual.ll
The file was modifiedllvm/test/Transforms/NewGVN/pr33204.ll
The file was modifiedpolly/test/ScopInfo/granularity_scalar-indep_epilogue_last.ll
The file was addedllvm/test/Verifier/unsized-types-store.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/phi-translate.ll
The file was modifiedllvm/test/Transforms/IRCE/unsigned_comparisons_ult.ll
The file was modifiedllvm/test/Transforms/InterleavedAccess/ARM/interleaved-accesses.ll
The file was modifiedllvm/test/Transforms/DCE/basic-preservation.ll
The file was modifiedllvm/test/Analysis/MemorySSA/invariant-groups.ll
Commit 2d6f4fec07292f1d2f77cbbf5188de3838a70b78 by Jonas Devlieghere
[lldb/Test] Skip test using files to synchronize.

Files written by the inferior are not captured by the reproducers and
the inferior doesn't actually run during replay.
The file was modifiedlldb/test/API/commands/settings/TestSettings.py
The file was modifiedlldb/test/API/commands/settings/quoting/TestQuoting.py
Commit 5144e48c1497e154961f22a7ac1de36c0d3e3f5d by Jonas Devlieghere
 [lldb] Update stop info override callback comment.

In D31172 GetStopInfoOverrideCallback was moved and renamed.

Differential revision: https://reviews.llvm.org/D79953
The file was modifiedlldb/source/Target/Thread.cpp
Commit 2b7fe0863ac3c076797404f90b49cee696af0564 by aardappel
[WebAssembly] Added Debug Fixup pass

This pass changes debug_value instructions referring to stackified registers into TI_OPERAND_STACK with correct stack depth.
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssembly.h
The file was addedllvm/lib/Target/WebAssembly/WebAssemblyDebugFixup.cpp
The file was addedllvm/test/CodeGen/WebAssembly/stackified-debug.ll
The file was modifiedllvm/lib/Target/WebAssembly/CMakeLists.txt
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
Commit accc6b55450510577f9cfa0b434c97e45ab5d6c6 by efriedma
LoadInst should store Align, not MaybeAlign.

The fact that loads and stores can have the alignment missing is a
constant source of confusion: code that usually works can break down in
rare cases.  So fix the LoadInst API so the alignment is never missing.

To reduce the number of changes required to make this work, IRBuilder
and certain LoadInst constructors will grab the module's datalayout and
compute the alignment automatically.  This is the same alignment
instcombine would eventually apply anyway; we're just doing it earlier.
There's a minor risk that the way we're retrieving the datalayout
could break out-of-tree code, but I don't think that's likely.

This is the last in a series of patches, so most of the necessary
changes have already been merged.

Differential Revision: https://reviews.llvm.org/D77454
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
The file was modifiedllvm/lib/Transforms/Scalar/GVNHoist.cpp
The file was modifiedllvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp
The file was modifiedllvm/include/llvm/IR/Instructions.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
The file was modifiedllvm/lib/IR/Core.cpp
The file was modifiedllvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Commit bc5565f9ea7aa7d3815a3554a0c937c7b48c7dcd by diego.caballero
[mlir][Affine] Introduce affine.vector_load and affine.vector_store

This patch adds `affine.vector_load` and `affine.vector_store` ops to
the Affine dialect and lowers them to `vector.transfer_read` and
`vector.transfer_write`, respectively, in the Vector dialect.

Reviewed By: bondhugula, nicolasvasilache

Differential Revision: https://reviews.llvm.org/D79658
The file was modifiedmlir/include/mlir/Dialect/Affine/IR/AffineOps.td
The file was addedmlir/test/Conversion/AffineToStandard/lower-affine-to-vector.mlir
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/include/mlir/Conversion/AffineToStandard/AffineToStandard.h
The file was modifiedmlir/test/Dialect/Affine/load-store.mlir
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/lib/Dialect/Affine/IR/AffineOps.cpp
The file was modifiedmlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp
The file was modifiedmlir/test/Dialect/Affine/invalid.mlir
Commit 3a11ca7bed03219ce166bd78304bdfdb439aff65 by benny.kra
[MLIR] Add symbol map to mlir ExecutionEngine

Add additional symbol mapping to be able to provide custom symbols to jitted code at runtime.

Differential Revision: https://reviews.llvm.org/D79812
The file was modifiedmlir/lib/ExecutionEngine/ExecutionEngine.cpp
The file was modifiedmlir/include/mlir/ExecutionEngine/ExecutionEngine.h