FailedChanges

Summary

  1. Add pass to strip debug info from MIR (details)
  2. [libunwind] Clean up __arm64__ (details)
  3. [gn build] Port a79b2fc44bf (details)
  4. [ORC] Expand the OrcV2 C API bindings. (details)
  5. [ORC] Add C API support for adding object files to an LLJIT instance. (details)
  6. Clean up usages of asserting vector getters in Type (details)
  7. [llvm][Codegen] Make `getVectorTypeBreakdownMVT` work with scalable types. (details)
  8. [AArch64][GlobalISel] CallLowering: Don't generate new copies each time we need (details)
  9. [PowerPC] Don't assert on SELECT_CC with i1 type (details)
  10. [X86] Improve min/max reduction costs. (details)
  11. [clangd] Set up machinery for gtests of ClangdLSPServer. (details)
  12. [gn build] Port 1229245df7c (details)
  13. [ORC] Require JITDylib to be specified when adding IR and objects in the C API. (details)
  14. [DomTree] Replace ChildrenGetter with GraphTraits over GraphDiff. (details)
  15. [PowerPC][Future] Fix for 6c4b40def77622a5cf62a219ef4af63dc876e144 (details)
  16. [TLI] Per-function fveclib for math library used for vectorization (details)
  17. Make BitVector::operator== return false for different-sized vectors. (details)
  18. Update empty() call with namespace to clear ambiguity. (details)
  19. [WebAssembly] Use dummy debug info in Emscripten SjLj (details)
  20. [LoopLoadElim] Fix crash by always checking simplify form (details)
  21. [OpenMP] Put old APIs back and added new _async series for backward compatibility (details)
  22. [OpenMP] Allow <math.h> to go first in C++-mode in target regions (details)
  23. Re-land [Codegen/Statepoint] Allow usage of registers for non gc deopt values. (details)
  24. [PowerPC] Bail out of redundant LI elimination on an implicit kill (details)
  25. [gn build] Port 4275eb13315 (details)
  26. [libc] Change minimum cmake requirement. (details)
  27. llvm-dwarfdump: Return non-zero on error (details)
  28. Rename OptimalLayout to OptimizedStructLayout at Chris's request. (details)
  29. [PowerPC] Update alignment for ReuseLoadInfo in LowerFP_TO_INTForReuse (details)
  30. [PowerPC][UpdateTestChecks] Remove the extra # when scrubbing loop comments (details)
  31. Revert "[DomTree] Replace ChildrenGetter with GraphTraits over GraphDiff." (details)
  32. [MLIR] Introduce an op trait that defines a new scope for auto allocation (details)
  33. [lldb/Reproducers] Fix typo introduced when disabling register failing tests (details)
  34. Move CFGDiff.h from IR to Support (details)
  35. Remove extra whitespace. NFC. (details)
  36. Fix `-Wextra` warning. NFC. (details)
  37. [MLIR][NFC] applyPatternsGreedily -> applyPatternsAndFoldGreedily (details)
  38. [DomTree] Replace ChildrenGetter with GraphTraits over GraphDiff. (details)
  39. [MLIR] Support for taskwait and taskyield operations, and translating the same to LLVM IR (details)
  40. Revert "[DomTree] Replace ChildrenGetter with GraphTraits over GraphDiff." (details)
Commit a79b2fc44bfd5b5c856ce7b62f40c991afd9a532 by daniel_l_sanders
Add pass to strip debug info from MIR

Summary:
Removes:
* All LLVM-IR level debug info using StripDebugInfo()
* All debugify metadata
* 'Debug Info Version' module flag
* All (valid*) DEBUG_VALUE MachineInstrs
* All DebugLocs from MachineInstrs

This is a more complete solution than the previous MIRPrinter
option that just causes it to neglect to print debug-locations.

* The qualifier 'valid' is used here because AArch64 emits
  an invalid one and tests depend on it

Reviewers: vsk, aprantl, bogner

Subscribers: mgorny, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77747
The file was addedllvm/test/CodeGen/Generic/MIRStripDebug/all.mir
The file was addedllvm/test/CodeGen/Generic/MIRStripDebug/multiple-moduleflags.mir
The file was modifiedllvm/lib/CodeGen/CodeGen.cpp
The file was addedllvm/lib/CodeGen/MachineStripDebug.cpp
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was modifiedllvm/test/CodeGen/Generic/MIRDebugify/locations.mir
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/include/llvm/CodeGen/Passes.h
Commit f3d460ce5874e4dd12b8cf8b227de4cec43a685c by maskray
[libunwind] Clean up __arm64__

`__aarch64__` is defined for the target (since the beginning of arm64 support: clang 3.5).
`__arm64__` is only defined for the Darwin OS on AArch64.

`defined(__aarch64__) || defined(__arm64__)` can be simplied as `defined(__aarch64__)`

Darwin AArch64 uses %% as the assembly separator (see AArch64MCAsmInfo.cpp).
Make the intention explicit in src/assembly.h

With this change, the libunwind code base has no reference of `__arm64__`/`__arm64`.

Reviewed By: #libunwind, ldionne, mstorsjo

Differential Revision: https://reviews.llvm.org/D77829
The file was modifiedlibunwind/src/assembly.h
The file was modifiedlibunwind/src/UnwindRegistersSave.S
The file was modifiedlibunwind/src/UnwindRegistersRestore.S
The file was modifiedlibunwind/src/Unwind_AppleExtras.cpp
The file was modifiedlibunwind/src/config.h
Commit 372cc5741eb66a7328576a0d12dbd7c7418b71ba by llvmgnsyncbot
[gn build] Port a79b2fc44bf
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
Commit 1cd8493e69ba37f68e6e9a03b8c6b24cb5f15fa4 by Lang Hames
[ORC] Expand the OrcV2 C API bindings.

Adds basic support for LLJITBuilder and DynamicLibrarySearchGenerator. This
allows C API clients to configure LLJIT to expose process symbols to JIT'd
code. An example of this is added in
llvm/examples/OrcV2CBindingsReflectProcessSymbols.
The file was removedllvm/examples/OrcV2Examples/BasicOrcV2CBindings/CMakeLists.txt
The file was modifiedllvm/examples/OrcV2Examples/CMakeLists.txt
The file was addedllvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage/OrcV2CBindingsBasicUsage.c
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
The file was removedllvm/examples/OrcV2Examples/BasicOrcV2CBindings/BasicOrcV2CBindings.c
The file was addedllvm/examples/OrcV2Examples/OrcV2CBindingsReflectProcessSymbols/OrcV2CBindingsReflectProcessSymbols.c
The file was modifiedllvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
The file was addedllvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage/CMakeLists.txt
The file was addedllvm/examples/OrcV2Examples/OrcV2CBindingsReflectProcessSymbols/CMakeLists.txt
The file was modifiedllvm/include/llvm-c/Orc.h
Commit 0d5f15f7000928273aea305d6cff7ac7c1aa352f by Lang Hames
[ORC] Add C API support for adding object files to an LLJIT instance.
The file was modifiedllvm/include/llvm-c/Orc.h
The file was addedllvm/examples/OrcV2Examples/OrcV2CBindingsAddObjectFile/CMakeLists.txt
The file was modifiedllvm/examples/OrcV2Examples/CMakeLists.txt
The file was modifiedllvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
The file was addedllvm/examples/OrcV2Examples/OrcV2CBindingsAddObjectFile/OrcV2CBindingsAddObjectFile.c
Commit 9f87d951fccfc21239af3ac981a6cc7941da3f93 by ctetreau
Clean up usages of asserting vector getters in Type

Summary:
Remove usages of asserting vector getters in Type in preparation for the
VectorType refactor. The existence of these functions complicates the
refactor while adding little value.

Reviewers: mcrosier, efriedma, sdesmalen

Reviewed By: efriedma

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77269
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit c846d2682b6d2433ed6e6896d98441f20e478b3b by francesco.petrogalli
[llvm][Codegen] Make `getVectorTypeBreakdownMVT` work with scalable types.

Reviewers: efriedma, andwar, sdesmalen

Reviewed By: efriedma

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77434
The file was modifiedllvm/include/llvm/Support/TypeSize.h
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
Commit e99169f1c2fc4f30b35dbb0caac41b9daa10da2f by Amara Emerson
[AArch64][GlobalISel] CallLowering: Don't generate new copies each time we need
to store to a stack location for outgoing args.

During call arg lowering we shouldn't be modifying SP so cache the SP copy
vreg for subsequent uses.

Gives a 0.2% geomean code size improvement on CTMark.

Differential Revision: https://reviews.llvm.org/D77838
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/irtranslator-exceptions.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/call-translator-cse.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/call-translator-ios.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64CallLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/call-translator.ll
Commit 5fe2809447398dd53ef6179e8c551356600296fc by nemanja.i.ibm
[PowerPC] Don't assert on SELECT_CC with i1 type

When we try to select a SELECT_CC on Power9, we check if it can be matched to a
SETB instruction. In that function, we assert that the output type is i32/i64.
This is unnecessary as it is perfectly reasonable to have an i1 SELECT_CC.
Change that from an assert to an early exit condition.
Fixes: https://bugs.llvm.org/show_bug.cgi?id=45448
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
The file was addedllvm/test/CodeGen/PowerPC/pr45448.ll
Commit 5625e6ab3788a788662f48dc7f5119defb43f08d by craig.topper
[X86] Improve min/max reduction costs.

This is similar to what I recently did for getArithmeticReductionCost.

I'm trying to account for the narrowing from 512->256->128 as we go.

I've also added a new helper method getMinMaxCost that tries to
handle the cases where we have native min/max instructions and
fall back to cmp+select when we don't.

Differential Revision: https://reviews.llvm.org/D76634
The file was modifiedllvm/test/Analysis/CostModel/X86/reduce-umax.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/reduce-smin.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/reduce-umin.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/reduce-fmax.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/reduce-fmin.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/reduce-smax.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.h
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/vectorize-reorder-reuse.ll
Commit 1229245df7c7323fa916054bf20edc01b3606dd2 by sam.mccall
[clangd] Set up machinery for gtests of ClangdLSPServer.

Summary:
This is going to be needed to test e.g. diagnostics regeneration on
didSave where files changed on disk. Coordinating such changes is too
hard in lit tests.

Reviewers: kadircet

Subscribers: mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D77766
The file was modifiedclang-tools-extra/clangd/unittests/CMakeLists.txt
The file was addedclang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp
The file was addedclang-tools-extra/clangd/unittests/LSPClient.h
The file was addedclang-tools-extra/clangd/unittests/LSPClient.cpp
Commit 0bcf2d8864a33d6ef03703553c6d568819a44f7e by llvmgnsyncbot
[gn build] Port 1229245df7c
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn
Commit 37bcf2df01cfa47e4509a5d225a23e2ca95005e6 by Lang Hames
[ORC] Require JITDylib to be specified when adding IR and objects in the C API.
The file was modifiedllvm/include/llvm-c/Orc.h
The file was modifiedllvm/examples/OrcV2Examples/OrcV2CBindingsAddObjectFile/OrcV2CBindingsAddObjectFile.c
The file was modifiedllvm/examples/OrcV2Examples/OrcV2CBindingsReflectProcessSymbols/OrcV2CBindingsReflectProcessSymbols.c
The file was modifiedllvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
The file was modifiedllvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage/OrcV2CBindingsBasicUsage.c
Commit a90374988e4eb8c50d91e11f4e61cdbd5debb235 by asbirlea
[DomTree] Replace ChildrenGetter with GraphTraits over GraphDiff.

Summary:
This replaces the ChildrenGetter inside the DominatorTree with
GraphTraits over a GraphDiff object, an object which encapsulated the
view of the previous CFG.
This also simplifies the extentions in clang which use DominatorTree, as
GraphDiff also filters nullptrs.

Reviewers: kuhar, dblaikie, NutshellySima

Subscribers: hiraditya, cfe-commits, llvm-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D77341
The file was modifiedllvm/include/llvm/Support/GenericDomTree.h
The file was modifiedllvm/lib/IR/Dominators.cpp
The file was modifiedllvm/include/llvm/IR/Dominators.h
The file was modifiedclang/include/clang/Analysis/Analyses/Dominators.h
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
The file was modifiedllvm/include/llvm/IR/CFGDiff.h
Commit 5b18b6e9a84d985c0a907009fb71de7c1943bc88 by stefanp
[PowerPC][Future] Fix for 6c4b40def77622a5cf62a219ef4af63dc876e144

This is a fix for the previous patch 6c4b40def77622a5cf62a219ef4af63dc876e144.
In some cases it may be possible to have the compiler produce st_other=1 without
the compiler using mcpu=future which should not be the case. This patch adds a
guard to make sure that if we are using st_other=1 then we are also compiling
for future CPU.
The file was modifiedllvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
Commit 60c642e74be6af86906d9f3d982728be7bd4329f by aktoon
[TLI] Per-function fveclib for math library used for vectorization

Summary:
Encode `-fveclib` setting as per-function attribute so it can threaded through to LTO backends. Accordingly per-function TLI now reads
the attributes and select available vector function list based on that. Now we also populate function list for all supported vector
libraries for the shared per-module `TargetLibraryInfoImpl`, so each function can select its available vector list independently but without
duplicating the vector function lists. Inlining between incompatbile vectlib attributed is also prohibited now.

Subscribers: hiraditya, dexonsmith, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D77632
The file was addedclang/test/CodeGen/libcalls-veclib.c
The file was addedllvm/test/Transforms/Inline/veclib-compat.ll
The file was modifiedllvm/lib/Analysis/TargetLibraryInfo.cpp
The file was modifiedllvm/test/Transforms/Inline/inline-no-builtin-compatible.ll
The file was modifiedllvm/include/llvm/Analysis/TargetLibraryInfo.h
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedllvm/lib/Analysis/InlineCost.cpp
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
Commit 27f1895f53d435ad0cafe6396f5eb680f95e95c7 by llvm-project
Make BitVector::operator== return false for different-sized vectors.

This behaviour is in line with SmallBitVector and other vector-like
types.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D77027
The file was modifiedllvm/include/llvm/ADT/BitVector.h
The file was modifiedllvm/unittests/ADT/BitVectorTest.cpp
Commit 5da1671bf82306b7fa8dca48f495896c2b29e909 by asbirlea
Update empty() call with namespace to clear ambiguity.
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
Commit b647de99254ca047748eded14b9d302912294bec by aheejin
[WebAssembly] Use dummy debug info in Emscripten SjLj

Summary:
D74269 added debug info to newly created instructions, including calls
to `malloc` and `free`, by taking debug info from existing instructions
around, whose debug info may or may not be empty.

But there are cases debug info is required by the IR verifier: when both
the caller and the callee functions have DISubprograms, meaning we
already have declarations to `malloc` or `free` with a DISubprogram
attached, newly created calls to `malloc` and `free` should have
non-empty debug info. This patch creates a non-empty dummy debug info in
this case to those calls to make the IR verifier pass.

Fixes https://bugs.llvm.org/show_bug.cgi?id=45461.

Reviewers: dschuff

Subscribers: aprantl, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77784
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
The file was modifiedllvm/test/CodeGen/WebAssembly/lower-em-sjlj.ll
The file was addedllvm/test/CodeGen/WebAssembly/lower-em-sjlj-debuginfo.ll
Commit 4e8782302691518b084ab3d57ebbbd140fbe9a14 by mkazantsev
[LoopLoadElim] Fix crash by always checking simplify form

Loop simplify form should always be checked because logic of
propagateStoredValueToLoadUsers relies on it (in particular, it
requires preheader).

Reviewed By: Fedor Sergeev, Florian Hahn
Differential Revision: https://reviews.llvm.org/D77775
The file was modifiedllvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
The file was modifiedllvm/test/Transforms/LoopLoadElim/new-pm-preheader-problem.ll
Commit 03ff643d2e9ebbf319d71b3a17d2ed0320a6a25b by tianshilei1992
[OpenMP] Put old APIs back and added new _async series for backward compatibility

Summary: According to comments on bi-weekly meeting, this patch put back old APIs and added new `_async` series

Reviewers: jdoerfert

Reviewed By: jdoerfert

Subscribers: yaxunl, guansong, openmp-commits

Tags: #openmp

Differential Revision: https://reviews.llvm.org/D77822
The file was modifiedopenmp/libomptarget/src/private.h
The file was modifiedopenmp/libomptarget/plugins/cuda/src/rtl.cpp
The file was modifiedopenmp/libomptarget/src/omptarget.cpp
The file was modifiedopenmp/libomptarget/plugins/exports
The file was modifiedopenmp/libomptarget/src/interface.cpp
The file was modifiedopenmp/libomptarget/src/rtl.h
The file was modifiedopenmp/libomptarget/src/device.h
The file was modifiedopenmp/libomptarget/plugins/generic-elf-64bit/src/rtl.cpp
The file was modifiedopenmp/libomptarget/src/rtl.cpp
The file was modifiedopenmp/libomptarget/src/device.cpp
The file was modifiedopenmp/libomptarget/include/omptargetplugin.h
Commit 17d83342235f01d4b110dc5d4664fe96f6597f11 by johannes
[OpenMP] Allow <math.h> to go first in C++-mode in target regions

If we are in C++ mode and include <math.h> (not <cmath>) first, we still
need to make sure <cmath> is read first. The problem otherwise is that
we haven't seen the declarations of the math.h functions when the system
math.h includes our cmath overlay. However, our cmath overlay, or better
the underlying overlay, e.g. CUDA, uses the math.h functions. Since we
haven't declared them yet we get errors. CUDA avoids this by eagerly
declaring all math functions (in the __device__ space) but we cannot do
this. Instead we break the dependence by forcing cmath to go first.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D77774
The file was modifiedclang/test/Headers/nvptx_device_math_sincos.cpp
The file was modifiedclang/test/Headers/Inputs/include/math.h
The file was modifiedclang/lib/Headers/openmp_wrappers/math.h
Commit 4275eb13315fbc59b8976667b774de2a1510fc36 by serguei.katkov
Re-land [Codegen/Statepoint] Allow usage of registers for non gc deopt values.

The change introduces the usage of physical registers for non-gc deopt values.
This require runtime support to know how to take a value from register.
By default usage is off and can be switched on by option.

The change also introduces additional fix-up patch which forces the spilling
of caller saved registers (clobbered after the call) and re-writes statepoint
to use spill slots instead of caller saved registers.

Reviewers: reames, danstrushin
Reviewed By: dantrushin
Subscribers: mgorny, hiraditya, mgrang, llvm-commits
Differential Revision: https://reviews.llvm.org/D77797
The file was addedllvm/test/CodeGen/X86/statepoint-regs.ll
The file was modifiedllvm/include/llvm/CodeGen/Passes.h
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/lib/CodeGen/CodeGen.cpp
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was addedllvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/O3-pipeline.ll
The file was modifiedllvm/test/CodeGen/ARM/O3-pipeline.ll
The file was modifiedllvm/test/CodeGen/AArch64/O0-pipeline.ll
The file was modifiedllvm/test/CodeGen/AArch64/O3-pipeline.ll
The file was modifiedllvm/test/CodeGen/X86/O0-pipeline.ll
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
Commit 7f3787c0f2746f7748d642ffc9ce699a295df9e4 by nemanja.i.ibm
[PowerPC] Bail out of redundant LI elimination on an implicit kill

The transformation currently does not differentiate between explicit
and implicit kills. However, it is not valid to later simply clear
an implicit kill flag since the kill could be due to a call or return.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=45374
The file was addedllvm/test/CodeGen/PowerPC/remove-redundant-li-skip-imp-kill.mir
The file was modifiedllvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp
Commit 39caa68ae16289fb51fce19c420ed5b6cf8e2a3f by llvmgnsyncbot
[gn build] Port 4275eb13315
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
Commit be54ea52f1f52daab50d301b4ebf184a593129ef by paulatoth
[libc] Change minimum cmake requirement.

Summary: As per this thread: http://lists.llvm.org/pipermail/llvm-dev/2020-April/140744.html, changed the minimum requirement to reflect the decision made to upgrade to cmake 3.13.4.

Reviewers: sivachandra

Reviewed By: sivachandra

Subscribers: mgorny, tschuett, libc-commits

Tags: #libc-project

Differential Revision: https://reviews.llvm.org/D77781
The file was modifiedlibc/CMakeLists.txt
Commit e0fd87cc64d5102f20219b6bad0e337dc4e6b2d2 by dblaikie
llvm-dwarfdump: Return non-zero on error

Makes it easier to test "this doesn't produce an error" (& indeed makes
that the implied default so we don't accidentally write tests that have
silent/sneaky errors as well as the positive behavior we're testing for)

Though the support for applying relocations is patchy enough that a
bunch of tests treat lack of relocation application as more of a warning
than an error - so rather than me trying to figure out how to add
support for a bunch of relocation types, let's degrade that to a warning
to match the usage (& indeed, it's sort of more of a tool warning anyway
- it's not that the DWARF is wrong, just that the tool can't fully cope
with it - and it's not like the tool won't dump the DWARF, it just won't
follow/render certain relocations - I guess in the most general case it
might try to render an unrelocated value & instead render something
bogus... but mostly seems to be about interesting relocations used in
eh_frame (& honestly it might be nice if we were lazier about doing this
relocation resolution anyway - if you're not dumping eh_frame, should we
really be erroring about the relocations in it?))
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-rnglists.s
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-str-offsets-invalid.s
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-rnglists-dwarf64.s
The file was modifiedllvm/test/DebugInfo/dwarfdump-decompression-corrupt.test
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/lookup.s
The file was modifiedllvm/test/DebugInfo/dwarfdump-decompression-error.test
The file was modifiedllvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-debug-loclists-error-cases2.s
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/debug_aranges-error.s
The file was modifiedllvm/test/tools/llvm-dwarfdump/elf-broken-reloc-target.yaml
Commit 8423a6f36386aabced2a367c0ea53487901d31ca by rjmccall
Rename OptimalLayout to OptimizedStructLayout at Chris's request.
The file was addedllvm/lib/Support/OptimizedStructLayout.cpp
The file was addedllvm/include/llvm/Support/OptimizedStructLayout.h
The file was removedllvm/unittests/Support/OptimalLayoutTest.cpp
The file was modifiedllvm/lib/Support/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn
The file was removedllvm/lib/Support/OptimalLayout.cpp
The file was modifiedllvm/unittests/Support/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
The file was addedllvm/unittests/Support/OptimizedStructLayoutTest.cpp
The file was removedllvm/include/llvm/Support/OptimalLayout.h
Commit b7d5229d789b7cb2747226d528ed016624b11cea by lkail
[PowerPC] Update alignment for ReuseLoadInfo in LowerFP_TO_INTForReuse

In LowerFP_TO_INTForReuse, when emitting `stfiwx`, alignment of 4 is
set for the `MachineMemOperand`, but RLI(ReuseLoadInfo)'s alignment is
not updated for following loads.

It's related to failed alignment check reported in
https://bugs.llvm.org/show_bug.cgi?id=45297

Differential Revision: https://reviews.llvm.org/D77624
The file was modifiedllvm/test/CodeGen/PowerPC/kernel-fp-round.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit 8633ef0f4331b62618deafffd591b7e97eebd096 by shkzhang
[PowerPC][UpdateTestChecks] Remove the extra # when scrubbing loop comments

Summary:
The patch D63957 is to avoid empty string when scrubbing loop comments,
it will replace loop comments to a `#`, that's correct.
But if the line has something else not only loop comments, we will get
a extra `#`.
The patch is to remove the extra `#`.

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D77357
The file was modifiedllvm/test/CodeGen/PowerPC/loop-comment.ll
The file was modifiedllvm/utils/UpdateTestChecks/asm.py
The file was modifiedllvm/test/CodeGen/PowerPC/atomics-regression.ll
The file was modifiedllvm/utils/UpdateTestChecks/common.py
Commit 57d2d48399b63c0ef1dda490fdaf28efbb80c2c0 by joker.eph
Revert "[DomTree] Replace ChildrenGetter with GraphTraits over GraphDiff."

This reverts commit a90374988e4eb8c50d91e11f4e61cdbd5debb235 and 5da1671bf82306b7fa8dca48f495896c2b29e909.

A new dependency is introduced here from Support to IR which seems like
a layering violation. It also breaks the MLIR build at the moment.
The file was modifiedllvm/lib/IR/Dominators.cpp
The file was modifiedllvm/include/llvm/IR/CFGDiff.h
The file was modifiedllvm/include/llvm/IR/Dominators.h
The file was modifiedllvm/include/llvm/Support/GenericDomTree.h
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
The file was modifiedclang/include/clang/Analysis/Analyses/Dominators.h
Commit db054d711518b6527048aa06196e443ff2e1dada by uday
[MLIR] Introduce an op trait that defines a new scope for auto allocation

Introduce a new operation property / trait (AutomaticAllocationScope)
for operations with regions that define a new scope for automatic allocations;
such allocations (typically realized on stack) are automatically freed when
control leaves such ops' regions. std.alloca's are freed at the closest
surrounding op that has this trait. All FunctionLike operations should normally
have this trait.

Differential Revision: https://reviews.llvm.org/D77787
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVStructureOps.td
The file was modifiedmlir/test/IR/invalid-ops.mlir
The file was modifiedmlir/docs/Traits.md
The file was modifiedmlir/include/mlir/IR/OpDefinition.h
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/include/mlir/IR/Function.h
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUOps.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/include/mlir/IR/OpBase.td
Commit a4da4e3292834b5f93f54440f825dd90876d6615 by medismail.bennani
[lldb/Reproducers] Fix typo introduced when disabling register failing tests
The file was modifiedlldb/test/Shell/Register/x86-64-read.test
The file was modifiedlldb/test/Shell/Register/x86-64-ymm-read.test
Commit a838aadae3f20b9644e2ad553d3d558a91fd8fd7 by dblaikie
Move CFGDiff.h from IR to Support

Now that it's generalized to use graph traits, it's no longer dependent
on IR.
The file was modifiedllvm/include/llvm/Analysis/IteratedDominanceFrontier.h
The file was modifiedllvm/include/llvm/module.modulemap
The file was modifiedllvm/include/llvm/Analysis/MemorySSAUpdater.h
The file was removedllvm/include/llvm/IR/CFGDiff.h
The file was addedllvm/include/llvm/Support/CFGDiff.h
Commit 96c4ec8fdbd95048114cf058679bd8fc08ab76b3 by michael.hliao
Remove extra whitespace. NFC.
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
Commit b54b4ecac3e5a340cecfabb41f845ab345945785 by michael.hliao
Fix `-Wextra` warning. NFC.
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
Commit a5b9316b24ce1de54ae3ab7a5254f0219fee12ac by uday
[MLIR][NFC] applyPatternsGreedily -> applyPatternsAndFoldGreedily

Rename mlir::applyPatternsGreedily -> applyPatternsAndFoldGreedily. The
new name is a more accurate description of the method - it performs
both, application of the specified patterns and folding of all ops in
the op's region irrespective of whether any patterns have been supplied.

Differential Revision: https://reviews.llvm.org/D77478
The file was modifiedmlir/test/lib/Transforms/TestLinalgTransforms.cpp
The file was modifiedmlir/lib/Transforms/Canonicalizer.cpp
The file was modifiedmlir/test/lib/Transforms/TestVectorToLoopsConversion.cpp
The file was modifiedmlir/test/lib/Transforms/TestAllReduceLowering.cpp
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp
The file was modifiedmlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp
The file was modifiedmlir/lib/Dialect/Quant/Transforms/ConvertSimQuant.cpp
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
The file was modifiedmlir/test/lib/Dialect/Affine/TestAffineDataCopy.cpp
The file was modifiedmlir/lib/Dialect/Quant/Transforms/ConvertConst.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
The file was modifiedmlir/include/mlir/IR/PatternMatch.h
The file was modifiedmlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp
The file was modifiedmlir/test/lib/Transforms/TestLinalgMatmulToVector.cpp
The file was modifiedmlir/lib/Transforms/Inliner.cpp
The file was modifiedmlir/test/lib/Transforms/TestVectorTransforms.cpp
The file was modifiedmlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
Commit 0445c64998d14b81f0d3a3182011fc5eae47fa71 by joker.eph
[DomTree] Replace ChildrenGetter with GraphTraits over GraphDiff.

This replaces the ChildrenGetter inside the DominatorTree with
GraphTraits over a GraphDiff object, an object which encapsulated the
view of the previous CFG.
This also simplifies the extentions in clang which use DominatorTree, as
GraphDiff also filters nullptrs.

Re-land a90374988e4eb8c50d91e11f4e61cdbd5debb235 after moving CFGDiff.h
to Support.

Differential Revision: https://reviews.llvm.org/D77341
The file was modifiedllvm/include/llvm/Support/GenericDomTree.h
The file was modifiedllvm/lib/IR/Dominators.cpp
The file was modifiedllvm/include/llvm/Support/CFGDiff.h
The file was modifiedclang/include/clang/Analysis/Analyses/Dominators.h
The file was modifiedllvm/include/llvm/IR/Dominators.h
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
Commit 7ecee63e719aea7fe3a6764e535cb865669c2fd5 by joker.eph
[MLIR] Support for taskwait and taskyield operations, and translating the same to LLVM IR

This patch adds support for taskwait and taskyield operations in OpenMP dialect and translation of the these constructs to LLVM IR. The OpenMP IRBuilder is used for this translation.
The patch includes code changes and a testcase modifications.

Differential Revision: https://reviews.llvm.org/D77634
The file was modifiedmlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
The file was modifiedmlir/test/Target/openmp-llvm.mlir
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
The file was modifiedmlir/test/Dialect/OpenMP/ops.mlir
The file was modifiedmlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
Commit bbeeb35c1ffaf7aeb3241bdfcb69bf4708370ac1 by joker.eph
Revert "[DomTree] Replace ChildrenGetter with GraphTraits over GraphDiff."

This reverts commit 0445c64998d14b81f0d3a3182011fc5eae47fa71.

MLIR Build is broken by this change at the moment.
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
The file was modifiedclang/include/clang/Analysis/Analyses/Dominators.h
The file was modifiedllvm/include/llvm/IR/Dominators.h
The file was modifiedllvm/lib/IR/Dominators.cpp
The file was modifiedllvm/include/llvm/Support/CFGDiff.h
The file was modifiedllvm/include/llvm/Support/GenericDomTree.h