Changes

Summary

  1. Revert "[NFC] Use ArgListEntry indirect types more in ISel lowering" (details)
  2. Revert "[TargetLowering] Only inspect attributes in the arguments for ArgListEntry" (details)
  3. [SafeStack] Use proper API to get stack guard (details)
  4. [NFCI] Move DEBUG_TYPE definition below #includes (details)
  5. [DAGCombine] Poison-prove scalarizeExtractedVectorLoad. (details)
  6. [InstCombine] fix miscompile from vector select substitution (details)
  7. [VectorCombine] Add tests with noundef index for load scalarization. (details)
  8. Revert "[clang-tidy] Simplify static assert check" (details)
  9. [clang][AVR] Add avr-libc/include to clang system include paths (details)
  10. [mlir] StandardToLLVM: option to disable AllocOp lowering (details)
  11. [LoopDeletion] Add more tests with infinite sub-loops & mustprogress. (details)
  12. [AVR] Improve inline assembly (details)
  13. [ARM] Guard against loop variant gather ptr operands (details)
  14. [ORC-RT] Add OrcRTCWrapperFunctionResult. (details)
  15. [ORC-RT] Add common.h -- Logging, casting and remote dispatch utilities. (details)
  16. [CSE] Make domInfo a stored property, cut use of DominanceInfo::hasDominanceInfo. NFC. (details)
  17. [lldb] Fix typos. NFC. (details)
  18. [AVR][NFC] Refactor 8-bit & 16-bit shifts (details)
Commit 3a6f12f9156bcebf38965d96007bd942024c75be by aeubanks
Revert "[NFC] Use ArgListEntry indirect types more in ISel lowering"

This reverts commit bc7d15c61da78864b35e3c114294d6e4db645611.

Dependent change is to be reverted.
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
Commit 71cca4f728d7421e40ec9aec0816313391fe9b59 by aeubanks
Revert "[TargetLowering] Only inspect attributes in the arguments for ArgListEntry"

This reverts commit 1c7f32334d4becc725b9025fd32291a0e5729acd.

Some code still needs to properly set parameter ABI attributes, see
D101806.
The file was removedllvm/test/CodeGen/X86/mismatched-byval.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/docs/ReleaseNotes.rst
Commit 056733d0195b28fb1c5a7952b2adc10013edf19c by pzheng
[SafeStack] Use proper API to get stack guard

Using the proper API automatically sets `__stack_chk_guard` to `dso_local` if
`Reloc::Static`. This wasn't strictly necessary until recently when dso_local was
no longer implied by `TargetMachine::shouldAssumeDSOLocal` for
`__stack_chk_guard`. By using the proper API, we can avoid generating unnecessary
GOT relocations.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D102646
The file was modifiedllvm/test/Transforms/SafeStack/X86/abi_ssp.ll
The file was modifiedllvm/lib/CodeGen/SafeStack.cpp
The file was modifiedllvm/test/Transforms/SafeStack/X86/ssp.ll
Commit 71acce68daf4987529bf08d81a9c5d396536d7c4 by chenmindong1
[NFCI] Move DEBUG_TYPE definition below #includes

When you try to define a new DEBUG_TYPE in a header file, DEBUG_TYPE
definition defined around the #includes in files include it could
result in redefinition warnings even compile errors.

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D102594
The file was modifiedllvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonBranchRelaxation.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp
The file was modifiedllvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.h
The file was modifiedllvm/lib/Target/ARC/ARCBranchFinalize.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonConstPropagation.cpp
The file was modifiedllvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
The file was modifiedllvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
The file was modifiedllvm/utils/TableGen/DFAEmitter.cpp
The file was modifiedllvm/lib/Transforms/Scalar/Float2Int.cpp
The file was modifiedllvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonGenMux.cpp
The file was modifiedllvm/lib/Analysis/AssumeBundleQueries.cpp
The file was modifiedllvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp
The file was modifiedllvm/utils/TableGen/DFAPacketizerEmitter.cpp
The file was modifiedllvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
The file was modifiedllvm/lib/Target/M68k/M68kRegisterInfo.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonSplitDouble.cpp
The file was modifiedllvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp
Commit 126f90b252509486eab5bfbe06894805b26c8da2 by flo
[DAGCombine] Poison-prove scalarizeExtractedVectorLoad.

extractelement is poison if the index is out-of-bounds, so just
scalarizing the load may introduce an out-of-bounds load, which is UB.

To avoid introducing new UB, we can mask the index so it only contains
valid indices.

Fixes PR50382.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D103077
The file was modifiedllvm/test/CodeGen/SystemZ/vec-extract-02.ll
The file was modifiedllvm/test/CodeGen/X86/vecloadextract.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/AArch64/arm64-indexed-vector-ldst.ll
Commit 7bb8bfa0622b8ee55c3f748004dcf4d83d48cf97 by spatel
[InstCombine] fix miscompile from vector select substitution

This is similar to the fix in c590a9880d7a ( PR49832 ), but
we missed handling the pattern for select of bools (no compare
inst).

We can't substitute a vector value because the equality condition
replacement that we are attempting requires that the condition
is true/false for the entire value. Vector select can be partly
true/false.

I added an assert for vector types, so we shouldn't hit this again.
Fixed formatting while auditing the callers.

https://llvm.org/PR50500
The file was modifiedllvm/test/Transforms/InstCombine/select-safe-bool-transforms.ll
The file was modifiedllvm/include/llvm/Analysis/InstructionSimplify.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit 829978744d244cbf487e86c0cd385989a3e96a39 by flo
[VectorCombine] Add tests with noundef index for load scalarization.
The file was modifiedllvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll
Commit be6b9e8ae71768d2e09ec14619ca4ecfdef553fa by lebedev.ri
Revert "[clang-tidy] Simplify static assert check"

This patch starts to produce a very obvious false-positives,
despite the fact the preexisting tests already cover the pattern.
they clearly don't actually cover it.

https://godbolt.org/z/3zdqvbfxj

This reverts commit 1709bb8c7395418236ec94fe3b9d91fed746452b.
The file was modifiedclang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/misc/StaticAssertCheck.h
Commit c1ee4fb5af49af5911ad7dc7932d975073030ec3 by powerman1st
[clang][AVR] Add avr-libc/include to clang system include paths

Reviewed By: dylanmckay

Differential Revision: https://reviews.llvm.org/D97669
The file was modifiedclang/lib/Driver/ToolChains/AVR.h
The file was modifiedclang/lib/Driver/ToolChains/AVR.cpp
The file was addedclang/test/Driver/Inputs/basic_avr_tree/usr/lib/avr/include/.keep
The file was modifiedclang/test/Driver/avr-toolchain.c
Commit bb542f2a76d4256e98e4bf249b77f5b18163fc24 by ivan.butygin
[mlir] StandardToLLVM: option to disable AllocOp lowering

Differential Revision: https://reviews.llvm.org/D103237
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVMPass.h
Commit 268e24a46af0eb3aceb67cf2aba250aef84aa20a by flo
[LoopDeletion] Add more tests with infinite sub-loops & mustprogress.

A couple of additional tests inspired by PR50511.
The file was modifiedllvm/test/Transforms/LoopDeletion/noop-loops-with-subloops.ll
Commit 86812faa5f9bff64656c162cd1afee6948e02adb by powerman1st
[AVR] Improve inline assembly

Reviewed By: dylanmckay

Differential Revision: https://reviews.llvm.org/D96394
The file was modifiedllvm/lib/Target/AVR/AVRISelLowering.cpp
The file was modifiedllvm/lib/Target/AVR/AVRRegisterInfo.td
The file was addedllvm/test/CodeGen/AVR/inline-asm/inline-asm3.ll
Commit 2176be556b448361a35c01cfedd5d3fd54b3e2b9 by david.green
[ARM] Guard against loop variant gather ptr operands

This ensures that the operands of any gather/scatter instructions that
we attempt to push out of the loop are invariant, preventing invalid IR
from being generated.
The file was modifiedllvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-optimisation-deep.ll
Commit 442f2d7bc0bc4f19ce056018231fbed9166c9b08 by Lang Hames
[ORC-RT] Add OrcRTCWrapperFunctionResult.

OrcRTCWrapperFunctionResult is a C struct that can be used to return serialized
results from "wrapper functions" -- functions that deserialize an argument
buffer, call through to an actual implementation function, then serialize and
return the result of that function. Wrapper functions allow calls between ORC
and the ORC Runtime to be written using a single signature,
WrapperFunctionResult(const char *ArgData, size_t ArgSize), and without coupling
either side to a particular transport mechanism (in-memory, TCP, IPC, ... the
actual mechanism will be determined by the TargetProcessControl implementation).

OrcRTCWrapperFunctionResult is designed to allow small serialized buffers to
be returned by value, with larger serialized results stored on the heap. They
also provide an error state to report failures in serialization/deserialization.
The file was addedcompiler-rt/lib/orc/c_api.h
The file was addedcompiler-rt/lib/orc/unittests/c_api_test.cpp
The file was modifiedcompiler-rt/lib/orc/unittests/CMakeLists.txt
The file was modifiedcompiler-rt/lib/orc/CMakeLists.txt
Commit 1ed29f8784ee528f54cd33300ab8420372141283 by Lang Hames
[ORC-RT] Add common.h -- Logging, casting and remote dispatch utilities.
The file was modifiedcompiler-rt/lib/orc/CMakeLists.txt
The file was addedcompiler-rt/lib/orc/common.h
Commit 1e344ce4f3fac4beb5e23e04dc3dd59398125956 by clattner
[CSE] Make domInfo a stored property, cut use of DominanceInfo::hasDominanceInfo. NFC.

CSE is the only client of this API, refactor it a bit to pull the query
internally to make changes to DominanceInfo a bit easier.  This commit
also improves comments a bit.
The file was modifiedmlir/include/mlir/IR/Dominance.h
The file was modifiedmlir/lib/Transforms/CSE.cpp
Commit 36597e4719e9de6d374f7953aad83234d42ca181 by bruce.mitchener
[lldb] Fix typos. NFC.

Differential Revision: https://reviews.llvm.org/D103381
The file was modifiedlldb/examples/python/process_events.py
The file was modifiedlldb/test/API/lang/c/enum_types/TestEnumTypes.py
The file was modifiedlldb/test/API/lang/cpp/covariant-return-types/TestCovariantReturnTypes.py
The file was modifiedlldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
The file was modifiedlldb/docs/use/python-reference.rst
The file was modifiedlldb/include/lldb/Core/Debugger.h
The file was modifiedlldb/docs/design/overview.rst
The file was modifiedlldb/source/Plugins/Process/Utility/LinuxPTraceDefines_arm64sve.h
The file was modifiedlldb/source/API/SBDebugger.cpp
The file was modifiedlldb/unittests/Symbol/TestClangASTImporter.cpp
The file was modifiedlldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
The file was modifiedlldb/source/Core/ValueObject.cpp
The file was modifiedlldb/test/API/commands/expression/call-function/TestCallUserDefinedFunction.py
The file was modifiedlldb/docs/resources/test.rst
The file was modifiedlldb/docs/status/projects.rst
Commit 22668c6e1f36b375944a00495d71e20ee15639fb by powerman1st
[AVR][NFC] Refactor 8-bit & 16-bit shifts

Reviewed By: dylanmckay

Differential Revision: https://reviews.llvm.org/D98335
The file was modifiedllvm/lib/Target/AVR/AVRInstrInfo.td
The file was modifiedllvm/lib/Target/AVR/AVRISelLowering.cpp
The file was modifiedllvm/lib/Target/AVR/AVRISelLowering.h
The file was modifiedllvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp