Changes

Summary

  1. [lld][ELF] Support adrp+ldr GOT optimization for AArch64 (details)
  2. [RISCV] Isel (sra (sext_inreg X, i16), C) -> (srai (slli X, (XLen-16), (XLen-16) + C). (details)
  3. [lldb] Require x86 support for dwo-relative-path test (details)
  4. [lldb] Check for arm64 in TestDisassembleRawData (details)
  5. [lldb] Guard libstdc++ specific 'frame var' test (details)
  6. [lldb] Remove reproducer instrumentation (details)
  7. [lldb] Skip TestVSCode_coreFile if no x86 target support (details)
  8. [libc] Re-enable thrd_test. (details)
  9. [CSKY] Lower leaf DAG node such as global symbol, frame address and jumptable, etc. (details)
  10. [lldb] Skip TestTargetXMLArch if no support for x86 target (details)
  11. [lldb] Remove LLDB_RECORD_RESULT macro (details)
  12. [SchedModels][CortexA55] Fix scheduling of FP loads (details)
  13. Fix exported MLIR_TABLEGEN_EXE (details)
  14. [RISCV] Generalize (srl (and X, 0xffff), C) -> (srli (slli X, (XLen-16), (XLen-16) + C) optimization. (details)
Commit 8acc3b4ab0c76b9c2a54182e31a02f90ebb96329 by ashaposhnikov
[lld][ELF] Support adrp+ldr GOT optimization for AArch64

This diff adds first bits to support relocation relaxations for AArch64
discussed on https://github.com/ARM-software/abi-aa/pull/106.
In particular, the case of

adrp x0, :got: symbol
ldr x0, [x0, :got_lo12: symbol]

is handled.

Test plan: make check-all

Differential revision: https://reviews.llvm.org/D112063
The file was addedlld/test/ELF/aarch64-adrp-ldr-got-symbols.s
The file was modifiedlld/ELF/Arch/AArch64.cpp
The file was modifiedlld/ELF/Target.h
The file was modifiedlld/ELF/InputSection.cpp
The file was addedlld/test/ELF/aarch64-adrp-ldr-got.s
Commit 296e8cae5cdaaf292df00453d15fbd5858d6ea0c by craig.topper
[RISCV] Isel (sra (sext_inreg X, i16), C) -> (srai (slli X, (XLen-16), (XLen-16) + C).

Similar for (sra (sext_inreg X, i8), C).

With Zbb, sext_inreg of i8 and i16 are legal for sext.b and sext.h.
This transform makes the Zbb codegen the same as without Zbb. The
shifts are more compressible. This also exposes an opportunity for
CSE with another slli in the i16 sdiv by constant codegen.
The file was modifiedllvm/test/CodeGen/RISCV/rv32zbb-zbp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rv64zbb-zbp.ll
The file was modifiedllvm/test/CodeGen/RISCV/div-by-constant.ll
Commit 268a42d6976d571da2edcefea36f1d77e252d5bc by davelee.com
[lldb] Require x86 support for dwo-relative-path test
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/dwo-relative-path.s
Commit aad27a890754fe13bd57a99a838307fee81496ee by davelee.com
[lldb] Check for arm64 in TestDisassembleRawData

This test checks for `aarch64` but the lit config could also contain `arm64`.
This change adds `arm64` to make the test pass in all cases.

Differential Revision: https://reviews.llvm.org/D116912
The file was modifiedlldb/test/API/python_api/disassemble-raw-data/TestDisassembleRawData.py
Commit 4a8549354c1b77ce830e488ceefa05dfb4bc9325 by davelee.com
[lldb] Guard libstdc++ specific 'frame var' test

While working on D116788 (properly error out of `frame var`), this libstdc++
specific `frame var` invocation was found in the tests. This test is in the
generic directory, but has this one case that requires libstdc++. The fix here
is to put the one `expect()` inside of a condition that checks for libstdc++.

Differential Revision: https://reviews.llvm.org/D116901
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/list/TestDataFormatterGenericList.py
Commit d51402ac6b802dbc17402135067d302853b34252 by Jonas Devlieghere
[lldb] Remove reproducer instrumentation

This patch removes most of the reproducer instrumentation. It keeps
around the LLDB_RECORD_* macros for logging. See [1] for more details.

[1] https://lists.llvm.org/pipermail/lldb-dev/2021-September/017045.html

Differential revision: https://reviews.llvm.org/D116847
The file was modifiedlldb/source/API/SBCommunication.cpp
The file was modifiedlldb/source/API/SBInstruction.cpp
The file was modifiedlldb/source/API/SBCommandInterpreterRunOptions.cpp
The file was modifiedlldb/source/API/SBEvent.cpp
The file was modifiedlldb/include/lldb/Utility/ReproducerInstrumentation.h
The file was modifiedlldb/source/API/SBSourceManager.cpp
The file was modifiedlldb/source/API/SBExecutionContext.cpp
The file was modifiedlldb/source/API/SBType.cpp
The file was modifiedlldb/source/API/SBWatchpoint.cpp
The file was modifiedlldb/source/API/SBAttachInfo.cpp
The file was modifiedlldb/source/API/SBFileSpec.cpp
The file was modifiedlldb/source/API/SBTypeEnumMember.cpp
The file was modifiedlldb/source/API/SBProcessInfo.cpp
The file was modifiedlldb/source/API/SBTypeCategory.cpp
The file was modifiedlldb/source/API/SBExpressionOptions.cpp
The file was modifiedlldb/source/API/SBFunction.cpp
The file was modifiedlldb/source/API/SBValueList.cpp
The file was modifiedlldb/source/API/SBEnvironment.cpp
The file was modifiedlldb/source/API/SBStream.cpp
The file was modifiedlldb/source/API/SBLanguageRuntime.cpp
The file was modifiedlldb/source/API/SBHostOS.cpp
The file was modifiedlldb/source/API/SBDeclaration.cpp
The file was modifiedlldb/source/API/SBThreadPlan.cpp
The file was removedlldb/unittests/Utility/ReproducerInstrumentationTest.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
The file was modifiedlldb/source/API/SBLaunchInfo.cpp
The file was modifiedlldb/source/API/SBTypeFormat.cpp
The file was modifiedlldb/source/API/SBModuleSpec.cpp
The file was modifiedlldb/source/API/SBPlatform.cpp
The file was modifiedlldb/source/API/SBThreadCollection.cpp
The file was modifiedlldb/source/API/SBSymbol.cpp
The file was modifiedlldb/source/API/SBFrame.cpp
The file was modifiedlldb/source/API/SBMemoryRegionInfoList.cpp
The file was modifiedlldb/source/API/SBProcess.cpp
The file was modifiedlldb/source/API/SBSymbolContextList.cpp
The file was modifiedlldb/source/API/SBQueueItem.cpp
The file was modifiedlldb/source/API/SBSection.cpp
The file was modifiedlldb/source/API/SBTarget.cpp
The file was modifiedlldb/source/API/SBMemoryRegionInfo.cpp
The file was removedlldb/source/API/SBReproducerPrivate.h
The file was modifiedlldb/source/API/SBSymbolContext.cpp
The file was modifiedlldb/source/API/SBDebugger.cpp
The file was modifiedlldb/source/API/SBModule.cpp
The file was modifiedlldb/source/API/SBReproducer.cpp
The file was modifiedlldb/source/API/SBUnixSignals.cpp
The file was modifiedlldb/source/API/SBThread.cpp
The file was modifiedlldb/source/API/SBData.cpp
The file was modifiedlldb/source/API/SBAddress.cpp
The file was modifiedlldb/source/API/SBBreakpointName.cpp
The file was modifiedlldb/source/API/SBStringList.cpp
The file was modifiedlldb/source/API/SBLineEntry.cpp
The file was modifiedlldb/source/Utility/ReproducerInstrumentation.cpp
The file was modifiedlldb/source/API/SBBlock.cpp
The file was modifiedlldb/source/API/SBTypeFilter.cpp
The file was modifiedlldb/source/API/SBQueue.cpp
The file was modifiedlldb/source/API/SBValue.cpp
The file was modifiedlldb/source/API/SBStructuredData.cpp
The file was modifiedlldb/source/API/SBBreakpointLocation.cpp
The file was modifiedlldb/source/API/SBFile.cpp
The file was modifiedlldb/source/API/SBTypeSynthetic.cpp
The file was modifiedlldb/source/API/SBVariablesOptions.cpp
The file was modifiedlldb/source/API/SBTrace.cpp
The file was modifiedlldb/source/API/SBCommandInterpreter.cpp
The file was modifiedlldb/source/API/SBTypeSummary.cpp
The file was modifiedlldb/source/API/SBBreakpoint.cpp
The file was modifiedlldb/source/API/SBError.cpp
The file was modifiedlldb/unittests/Utility/CMakeLists.txt
The file was modifiedlldb/source/API/SBInstructionList.cpp
The file was modifiedlldb/source/API/SBCommandReturnObject.cpp
The file was modifiedlldb/source/API/SBFileSpecList.cpp
The file was modifiedlldb/source/API/SBTypeNameSpecifier.cpp
The file was modifiedlldb/source/API/SBBroadcaster.cpp
The file was modifiedlldb/source/API/SBListener.cpp
The file was modifiedlldb/source/API/SBCompileUnit.cpp
Commit ed3a4a4948dedd264732105e910405138c9c0f3b by davelee.com
[lldb] Skip TestVSCode_coreFile if no x86 target support
The file was modifiedlldb/test/API/tools/lldb-vscode/coreFile/TestVSCode_coreFile.py
Commit cd4deef28e4361af19cd5a208ef51a5f0b26ee61 by sivachandra
[libc] Re-enable thrd_test.

Other threads related tests have been using the API that is tested here
without any problems. The main reason for disabling the test has also been
fixed many months ago.
The file was modifiedlibc/test/src/threads/CMakeLists.txt
Commit 8ddc81692952c3743939c23f66b3b58db0d4edca by zixuan.wu
[CSKY] Lower leaf DAG node such as global symbol, frame address and jumptable, etc.

Lower global symbols such as call/external symbol.
Lower other leaf DAG node such as frame address/block address/jumptable/vastart.

Normally some leaf symbols need reside in constant pool as ABI prefers, and are addressed by
lrw or jsri instructions.

Every symbol in constant pool is lowered with one entry in target constant pool. The
entry has different type corresponding to different leaf node such as blockaddress,
jumptable, or global value.
The file was addedllvm/test/CodeGen/CSKY/call.ll
The file was modifiedllvm/lib/Target/CSKY/CSKYISelLowering.cpp
The file was modifiedllvm/lib/Target/CSKY/CSKYISelLowering.h
The file was modifiedllvm/lib/Target/CSKY/CSKYInstrInfo.h
The file was addedllvm/lib/Target/CSKY/CSKYConstantPoolValue.h
The file was modifiedllvm/lib/Target/CSKY/CSKYInstrInfo.cpp
The file was modifiedllvm/lib/Target/CSKY/CSKYISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/CSKY/CSKYInstrInfo.td
The file was addedllvm/test/CodeGen/CSKY/switch.ll
The file was modifiedllvm/lib/Target/CSKY/CSKYAsmPrinter.h
The file was modifiedllvm/lib/Target/CSKY/CSKYAsmPrinter.cpp
The file was modifiedllvm/lib/Target/CSKY/CMakeLists.txt
The file was addedllvm/lib/Target/CSKY/CSKYConstantPoolValue.cpp
The file was addedllvm/test/CodeGen/CSKY/frameaddr-returnaddr.ll
The file was addedllvm/test/CodeGen/CSKY/indirectbr.ll
Commit c4cdf865698eae06affbf762baf38e6ca95b4785 by davelee.com
[lldb] Skip TestTargetXMLArch if no support for x86 target

If LLVM is configured without X86 as one of its TARGETS_TO_BUILD, then lldb
will crash when using X86 disassembler (which it does while running `image
show-unwind`).
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestTargetXMLArch.py
Commit d232abc33b707d2da8ca4e4c84d8287ce0e1a47a by Jonas Devlieghere
[lldb] Remove LLDB_RECORD_RESULT macro
The file was modifiedlldb/source/API/SBStringList.cpp
The file was modifiedlldb/source/API/SBTarget.cpp
The file was modifiedlldb/source/API/SBFunction.cpp
The file was modifiedlldb/source/API/SBSymbolContextList.cpp
The file was modifiedlldb/source/API/SBCommunication.cpp
The file was modifiedlldb/source/API/SBListener.cpp
The file was modifiedlldb/source/API/SBProcessInfo.cpp
The file was modifiedlldb/source/API/SBSection.cpp
The file was modifiedlldb/include/lldb/Utility/ReproducerInstrumentation.h
The file was modifiedlldb/source/API/SBFileSpecList.cpp
The file was modifiedlldb/source/API/SBVariablesOptions.cpp
The file was modifiedlldb/source/API/SBWatchpoint.cpp
The file was modifiedlldb/source/API/SBFrame.cpp
The file was modifiedlldb/source/API/SBValueList.cpp
The file was modifiedlldb/source/API/SBUnixSignals.cpp
The file was modifiedlldb/source/API/SBThreadCollection.cpp
The file was modifiedlldb/source/API/SBTypeEnumMember.cpp
The file was modifiedlldb/source/API/SBEnvironment.cpp
The file was modifiedlldb/source/API/SBFileSpec.cpp
The file was modifiedlldb/source/API/SBBreakpointLocation.cpp
The file was modifiedlldb/source/API/SBCompileUnit.cpp
The file was modifiedlldb/source/API/SBSourceManager.cpp
The file was modifiedlldb/source/API/SBAddress.cpp
The file was modifiedlldb/source/API/SBModuleSpec.cpp
The file was modifiedlldb/source/API/SBCommandInterpreter.cpp
The file was modifiedlldb/source/API/SBInstruction.cpp
The file was modifiedlldb/source/API/SBInstructionList.cpp
The file was modifiedlldb/source/API/SBPlatform.cpp
The file was modifiedlldb/source/API/SBQueue.cpp
The file was modifiedlldb/source/API/SBData.cpp
The file was modifiedlldb/source/API/SBThread.cpp
The file was modifiedlldb/source/API/SBTypeFilter.cpp
The file was modifiedlldb/source/API/SBExpressionOptions.cpp
The file was modifiedlldb/source/API/SBExecutionContext.cpp
The file was modifiedlldb/source/API/SBSymbolContext.cpp
The file was modifiedlldb/source/API/SBLaunchInfo.cpp
The file was modifiedlldb/source/API/SBLineEntry.cpp
The file was modifiedlldb/source/API/SBStructuredData.cpp
The file was modifiedlldb/source/API/SBBroadcaster.cpp
The file was modifiedlldb/source/API/SBSymbol.cpp
The file was modifiedlldb/source/API/SBTrace.cpp
The file was modifiedlldb/source/API/SBHostOS.cpp
The file was modifiedlldb/source/API/SBTypeSynthetic.cpp
The file was modifiedlldb/source/API/SBModule.cpp
The file was modifiedlldb/source/API/SBBlock.cpp
The file was modifiedlldb/source/API/SBMemoryRegionInfo.cpp
The file was modifiedlldb/source/API/SBThreadPlan.cpp
The file was modifiedlldb/source/API/SBError.cpp
The file was modifiedlldb/source/API/SBMemoryRegionInfoList.cpp
The file was modifiedlldb/source/API/SBType.cpp
The file was modifiedlldb/source/API/SBCommandReturnObject.cpp
The file was modifiedlldb/source/API/SBBreakpoint.cpp
The file was modifiedlldb/source/API/SBValue.cpp
The file was modifiedlldb/source/API/SBTypeCategory.cpp
The file was modifiedlldb/source/API/SBDebugger.cpp
The file was modifiedlldb/source/API/SBDeclaration.cpp
The file was modifiedlldb/source/API/SBTypeFormat.cpp
The file was modifiedlldb/source/API/SBTypeSummary.cpp
The file was modifiedlldb/source/API/SBCommandInterpreterRunOptions.cpp
The file was modifiedlldb/source/API/SBFile.cpp
The file was modifiedlldb/source/API/SBProcess.cpp
The file was modifiedlldb/source/API/SBQueueItem.cpp
The file was modifiedlldb/source/API/SBBreakpointName.cpp
The file was modifiedlldb/source/API/SBEvent.cpp
The file was modifiedlldb/source/API/SBAttachInfo.cpp
The file was modifiedlldb/source/API/SBTypeNameSpecifier.cpp
Commit 34a91d7748d47367ed520cb96313aae31026b01a by kosov.pavel
[SchedModels][CortexA55] Fix scheduling of FP loads

Patch fixes scheduling of FP load instructions with pre/post increment adding WriteAdr for address operand.

Reviewed By: dmgreen

Differential Revision: https://reviews.llvm.org/D116361

OS Laboratory. Huawei Russian Research Institute. Saint-Petersburg
The file was modifiedllvm/test/tools/llvm-mca/AArch64/Cortex/A55-basic-instructions.s
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedA55.td
The file was modifiedllvm/test/tools/llvm-mca/AArch64/Cortex/A55-load-readadv.s
Commit 3523876873b25bbb8225fed45e4db79e7d250a4f by stephen.neuendorffer
Fix exported MLIR_TABLEGEN_EXE

LLVM_OPTIMIZED_TABLEGEN results in MLIR_TABLEGEN_EXE pointing to
an absolute path in the build directory.  This doesn't work
when exporting to an install directory.  This patch fixes the exported
information for an install directory to refer to the installed
mlir-tblgen.  (Note that this is probably a debug version if
LLVM_OPTIMIZED_TABLEGEN is set)
The file was modifiedmlir/cmake/modules/CMakeLists.txt
The file was modifiedmlir/cmake/modules/MLIRConfig.cmake.in
Commit b645bcd98a11c7857cdee51202c64d15b9a4f90d by craig.topper
[RISCV] Generalize (srl (and X, 0xffff), C) -> (srli (slli X, (XLen-16), (XLen-16) + C) optimization.

This can be generalized to (srl (and X, C2), C) ->
(srli (slli X, (XLen-C3), (XLen-C3) + C). Where C2 is a mask with
C3 trailing ones.

This can avoid constant materialization for C2. This is beneficial
even when C2 can be selected to ANDI because the SLLI can become
C.SLLI, but C.ANDI cannot cover all the immediates of ANDI.

This also enables CSE in some cases of i8 sdiv by constant codegen.
The file was modifiedllvm/test/CodeGen/RISCV/rv32zbb-zbp.ll
The file was modifiedllvm/test/CodeGen/RISCV/rv64zbb.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/RISCV/alu8.ll
The file was modifiedllvm/test/CodeGen/RISCV/srem-seteq-illegal-types.ll
The file was modifiedllvm/test/CodeGen/RISCV/div-by-constant.ll
The file was modifiedllvm/test/CodeGen/RISCV/div.ll
The file was modifiedllvm/test/CodeGen/RISCV/bswap-ctlz-cttz-ctpop.ll
The file was modifiedllvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll
The file was modifiedllvm/test/CodeGen/RISCV/rv64zbb-zbp.ll