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


  1. [libunwind] [Windows] Add a log message if EnumProcessModules fails (details)
  2. [clangd] Add parameter renaming to define-inline code action (details)
  3. [MustExecute] Silence clang warning about unused captured 'this' (details)
  4. [Diagnostics] Warn for std::is_constant_evaluated in constexpr mode (details)
  5. [llvm-readelf/llvm-readobj] - Improve dumping of broken versioning (details)
  6. Revert "[SLP] Vectorize jumbled stores." (details)
  7. [LLDB] [PECOFF] Don't crash in ReadImageDataByRVA for addresses out of (details)
  8. [LLDB] [Windows] Remove a TODO which probably won't be implemented (details)
  9. [LLDB] [PECOFF] Fix error handling for executables that (details)
  10. [LLDB] [Windows] Fix Windows-specific race condition in LLDB for session (details)
  11. [yaml2obj/obj2yaml] - Add support for SHT_GNU_HASH section. (details)
  12. [lldb/lit] Introduce %clang_host substitutions (details)
  13. [cfi] Add flag to always generate .debug_frame (details)
  14. [lldb] Fix offset intersection bug between MPX and AVX registers (details)
  15. [Test] Add a unit test exposing lack of SCEV invalidation in LICM during (details)
  16. minidump: Add an "arm64" constant (details)
  17. minidump: Create memory regions from the sections of loaded modules (details)
  18. [LICM] Invalidate SCEV upon instruction hoisting (details)
  19. [X86][SSE] Convert computeZeroableShuffleElements to emit KnownUndef and (details)
  20. Make flang driver stuff work on macOS (details)
  21. gn build: (manually) merge b32bae6f760 (details)
  22. [clang][analyzer] Using CallDescription in StreamChecker. (details)
Commit 08c7ff99e13890ed19b864e7ebfea7167eb83842 by martin
[libunwind] [Windows] Add a log message if EnumProcessModules fails
Differential Revision:
The file was modifiedlibunwind/src/AddressSpace.hpp
Commit 71aa3f7b7e43bf7d2a8a38324b1f9f7b12bbbdfc by kadircet
[clangd] Add parameter renaming to define-inline code action
Summary: When moving a function definition to declaration location we
also need to handle renaming of the both function and template
This patch achives that by making sure every parameter name and
dependent type in destination is renamed to their respective name in the
Reviewers: ilya-biryukov
Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision:
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DefineInline.cpp
The file was modifiedclang-tools-extra/clangd/unittests/TweakTests.cpp
Commit c9504954052a7630a6e760006297b5fc73a03e4a by mikael.holmen
[MustExecute] Silence clang warning about unused captured 'this'
New code introduced in fe799c97fa caused clang to complain with
../lib/Analysis/MustExecute.cpp:360:34: error: lambda capture 'this' is
not used [-Werror,-Wunused-lambda-capture]
GetterTy<LoopInfo> LIGetter = [this](const Function &F) {
../lib/Analysis/MustExecute.cpp:365:44: error: lambda capture 'this' is
not used [-Werror,-Wunused-lambda-capture]
GetterTy<PostDominatorTree> PDTGetter = [this](const Function &F) {
                                          ^~~~ 2 errors generated.
The file was modifiedllvm/lib/Analysis/MustExecute.cpp
Commit b06305e44949fb843310d27b139e5064b214a838 by Dávid Bolvanský
[Diagnostics] Warn for std::is_constant_evaluated in constexpr mode
Summary: constexpr int fn1() {
if constexpr (std::is_constant_evaluated()) // condition is always
   return 0;
   return 1;
constexpr int fn2() {
if (std::is_constant_evaluated())
   return 0;
   return 1;
Solves PR42977
Reviewers: rsmith, aaron.ballman
Reviewed By: rsmith
Subscribers: cfe-commits
Tags: #clang
Differential Revision:
The file was addedclang/test/SemaCXX/warn-constant-evaluated-constexpr.cpp
The file was modifiedclang/test/SemaCXX/builtin-is-constant-evaluated.cpp
The file was modifiedclang/include/clang/Basic/
The file was modifiedclang/lib/AST/ExprConstant.cpp
Commit 9d4bbe88915a3a878d8501369f2ce8093a194921 by grimar
[llvm-readelf/llvm-readobj] - Improve dumping of broken versioning
This updates the elf-invalid-versioning.test test case: makes a cleanup,
adds llvm-readobj calls and fixes 2 crash/assert issues I've found (test
cases are provided).
Differential revision:
The file was modifiedllvm/test/tools/llvm-readobj/elf-invalid-versioning.test
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit e65ddcafee547eddb72aa63b1d49f76e46acdd9a by hokein.wu
Revert "[SLP] Vectorize jumbled stores."
This reverts commit 21d498c9c0f32dcab5bc89ac593aa813b533b43a.
This commit causes some crashes on some targets.
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/stores_vectorize.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/store-jumbled.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 7e1a3076419d4d453d71143a1e81409ea1db177c by martin
[LLDB] [PECOFF] Don't crash in ReadImageDataByRVA for addresses out of
This can happen e.g. when unwinding doesn't work perfectly.
Differential Revision:
The file was addedlldb/test/Shell/Minidump/Windows/Inputs/broken-unwind.exe.yaml
The file was addedlldb/test/Shell/Minidump/Windows/broken-unwind.test
The file was modifiedlldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
The file was addedlldb/test/Shell/Minidump/Windows/Inputs/broken-unwind.dmp.yaml
Commit a42967f63c96b30dd6873ceb7b2932eb7cf2cd05 by martin
[LLDB] [Windows] Remove a TODO which probably won't be implemented
Contrary to WoW64 on x86_64, there's no struct similar to WOW64_CONTEXT
defined, for storing and handling the CPU state of an ARM32 process from
an ARM64 process. Thus, making an ARM64 lldb-server able to control
ARM32 processes seems infeasible at the moment.
(The normal CONTEXT struct has a different layout on each architecture.
In addition to this, a WOW64_CONTEXT struct always is defined, that can
store the CPU state of an x86_32 process, to allow handling it from an
x86_64 process. But there's no similar universally available struct for
The file was modifiedlldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp
Commit 3db1d138b1172b5855f35ab74dbf3bf327f517d2 by martin
[LLDB] [PECOFF] Fix error handling for executables that
object::createBinary errors out on
llvm::object::createBinary returns an Expected<>, which requires not
only checking the object for success, but also requires consuming the
Error, if one was set.
Use LLDB_LOG_ERROR for this case, and change an existing similar log
statement to use it as well, to make sure the Error is consumed even if
the log channel is disabled.
Differential Revision:
The file was modifiedlldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
The file was addedlldb/test/Shell/ObjectFile/PECOFF/invalid-export-table.yaml
Commit 403cd574b6d9fbdae1b39fe9d2576b02c7139486 by martin
[LLDB] [Windows] Fix Windows-specific race condition in LLDB for session
This can e.g. happen if the debugged executable exits before the initial
stop, e.g. if it fails to load dependent DLLs.
Add a virtual destructor to ProcessDebugger and let it clean up the
session, and make ProcessWindows::OnExitProcess call
ProcessDebugger::OnExitProcess for shared parts.
Fix suggestion by Adrian McCarthy.
Differential Revision:
The file was modifiedlldb/source/Plugins/Process/Windows/Common/ProcessDebugger.cpp
The file was modifiedlldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
The file was addedlldb/test/Shell/Process/Windows/launch_failure.yaml
The file was modifiedlldb/source/Plugins/Process/Windows/Common/ProcessDebugger.h
Commit a7aee6c47a1b12dd7d579b4f98d7049eb1e987ce by grimar
[yaml2obj/obj2yaml] - Add support for SHT_GNU_HASH section.
This adds parsing and dumping support for GNU hash sections. They are
described nicely here:
Differential revision:
The file was addedllvm/test/tools/obj2yaml/elf-gnu-hash-section.yaml
The file was addedllvm/test/tools/yaml2obj/elf-gnu-hash-section.yaml
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/test/tools/llvm-readobj/elf-section-types.test
The file was modifiedllvm/include/llvm/ObjectYAML/ELFYAML.h
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
Commit 9c739252261ea762d1bbbd8234d93c9038711fcd by pavel
[lldb/lit] Introduce %clang_host substitutions
Summary: This patch addresses an ambiguity in how our existing tests
invoke the compiler. Roughly two thirds of our current "shell" tests
invoke the compiler to build the executables for the host. However,
there is also a significant number of tests which don't build a host
binary (because they don't need to run it) and instead they hardcode a
certain target.
We also have code which adds a bunch of default arguments to the %clang
substitutions. However, most of these arguments only really make sense
for the host compilation. So far, this has worked mostly ok, because the
arguments we were adding were not conflicting with the target-hardcoding
tests (though they did provoke an occasional "argument unused" warning).
However, this started to break down when we wanted to use
target-hardcoding clang-cl tests (D69031) because clang-cl has a
substantially different command line, and it was getting very confused
by some of the arguments we were adding on non-windows hosts.
This patch avoid this problem by creating separate %clang(xx,_cl)_host
substutitions, which are specifically meant to be used for compiling
host binaries. All funny host-specific options are moved there. To
ensure that the regular %clang substitutions are not used for compiling
host binaries (skipping the extra arguments) I employ a little
hac^H^H^Htrick -- I add an invalid --target argument to the %clang
substitution, which means that one has to use an explicit --target in
order for the compilation to succeed.
Reviewers: JDevlieghere, aprantl, mstorsjo, espindola
Subscribers: emaste, arichardson, MaskRay, jfb, lldb-commits
Tags: #lldb
Differential Revision:
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/anon_class_w_and_wo_export_symbols.ll
The file was modifiedlldb/test/Shell/Reproducer/Functionalities/TestStepping.test
The file was modifiedlldb/test/Shell/Register/arm-gp-read.test
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/clang-ast-from-dwarf-unamed-and-anon-structs.cpp
The file was modifiedlldb/test/Shell/ObjectFile/ELF/minidebuginfo-set-and-hit-breakpoint.test
The file was modifiedlldb/test/Shell/Reproducer/Functionalities/TestImageList.test
The file was modifiedlldb/test/Shell/Settings/TestFrameFormatNoColor.test
The file was modifiedlldb/test/Shell/Watchpoint/SetErrorCases.test
The file was modifiedlldb/test/Shell/SymbolFile/target-symbols-add-unwind.test
The file was modifiedlldb/test/Shell/Driver/TestSingleQuote.test
The file was modifiedlldb/test/Shell/Unwind/prefer-debug-over-eh-frame.test
The file was modifiedlldb/test/Shell/Reproducer/Modules/TestModuleCXX.test
The file was modifiedlldb/test/Shell/Process/TestEnvironment.test
The file was modifiedlldb/test/Shell/Register/arm-fp-read.test
The file was modifiedlldb/test/Shell/Register/x86-64-ymm-write.test
The file was modifiedlldb/test/Shell/Register/x86-64-ymm16-write.test
The file was modifiedlldb/test/Shell/Reproducer/TestWorkingDir.test
The file was modifiedlldb/test/Shell/Register/x86-gp-write.test
The file was modifiedlldb/test/Shell/Register/x86-64-xmm16-write.test
The file was modifiedlldb/test/Shell/Register/x86-64-gp-read.test
The file was modifiedlldb/test/Shell/Unwind/eh-frame-small-fde.test
The file was modifiedlldb/test/Shell/Expr/TestIRMemoryMap.test
The file was modifiedlldb/test/Shell/Register/x86-64-ymm16-read.test
The file was modifiedlldb/test/Shell/Register/x86-zmm-write.test
The file was modifiedlldb/test/Shell/ExecControl/StopHook/stop-hook-threads.test
The file was modifiedlldb/test/Shell/Expr/TestIRMemoryMapWindows.test
The file was modifiedlldb/test/Shell/Commands/command-script-import.test
The file was modifiedlldb/test/Shell/Unwind/unwind-plan-dwarf-dump.test
The file was modifiedlldb/test/Shell/Unwind/eh-frame-dwarf-unwind.test
The file was modifiedlldb/test/Shell/Settings/TestFrameFormatColor.test
The file was modifiedlldb/test/Shell/Register/x86-ymm-write.test
The file was modifiedlldb/test/Shell/Reproducer/TestGDBRemoteRepro.test
The file was modifiedlldb/test/Shell/Host/TestCustomShell.test
The file was modifiedlldb/test/Shell/Register/x86-64-zmm-read.test
The file was modifiedlldb/test/Shell/Reproducer/TestFileRepro.test
The file was modifiedlldb/test/Shell/Register/x86-64-gp-write.test
The file was modifiedlldb/test/Shell/Register/x86-64-xmm16-read.test
The file was modifiedlldb/test/Shell/Register/x86-mm-xmm-read.test
The file was modifiedlldb/test/Shell/Register/x86-zmm-read.test
The file was modifiedlldb/test/Shell/Register/x86-ymm-read.test
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/debug-types-expressions.test
The file was modifiedlldb/test/Shell/Unwind/trap_frame_sym_ctx.test
The file was modifiedlldb/test/Shell/Heap/heap-cstr.test
The file was modifiedlldb/test/Shell/Register/aarch64-gp-read.test
The file was modifiedlldb/test/Shell/Reproducer/Functionalities/TestDataFormatter.test
The file was modifiedlldb/test/Shell/Register/x86-64-ymm-read.test
The file was modifiedlldb/test/Shell/Register/aarch64-fp-read.test
The file was modifiedlldb/test/Shell/SymbolFile/PDB/function-level-linking.test
The file was modifiedlldb/test/Shell/helper/
The file was modifiedlldb/test/Shell/Driver/TestTarget.test
The file was modifiedlldb/test/Shell/ExecControl/StopHook/stop-hook.test
The file was modifiedlldb/test/Shell/Reproducer/TestRelativePath.test
The file was modifiedlldb/test/Shell/Register/x86-64-write.test
The file was modifiedlldb/test/Shell/Register/x86-mm-xmm-write.test
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/deterministic-build.cpp
The file was modifiedlldb/test/Shell/Register/x86-64-read.test
The file was modifiedlldb/test/Shell/Register/x86-gp-read.test
The file was modifiedlldb/test/Shell/Reproducer/TestDump.test
The file was modifiedlldb/test/Shell/Reproducer/TestReuseDirectory.test
The file was modifiedlldb/test/Shell/Register/x86-64-zmm-write.test
Commit 92aa0c2dbcb723d102c508f6e7559330b637f912 by david.candler
[cfi] Add flag to always generate .debug_frame
This adds a flag to LLVM and clang to always generate a .debug_frame
section, even if other debug information is not being generated. In
situations where .eh_frame would normally be emitted, both .debug_frame
and .eh_frame will be used.
Differential Revision:
The file was modifiedllvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
The file was modifiedllvm/lib/Target/XCore/XCoreRegisterInfo.cpp
The file was addedclang/test/Driver/fforce-dwarf-frame.c
The file was modifiedllvm/lib/Target/ARC/ARCRegisterInfo.cpp
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
The file was modifiedllvm/lib/CodeGen/CFIInstrInserter.cpp
The file was addedllvm/test/CodeGen/ARM/dwarf-frame.ll
The file was modifiedllvm/include/llvm/Target/TargetOptions.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/lib/CodeGen/MachineFunction.cpp
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.cpp
The file was modifiedclang/include/clang/Driver/
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedllvm/lib/Target/PowerPC/PPCFrameLowering.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
The file was modifiedllvm/include/llvm/CodeGen/
Commit e46c6644db8432584e82ef7ddfc9d0f36543f205 by pavel
[lldb] Fix offset intersection bug between MPX and AVX registers
Summary: This change increases the offset of MPX registers (by 128) so
they do not overlap with the offset associated with AVX registers. That
was causing MPX data in GDBRemoteRegisterContext::m_reg_data to get
Reviewers: labath
Reviewed By: labath
Subscribers: JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision:
The file was addedlldb/packages/Python/lldbsuite/test/commands/register/register/intel_xtended_registers/mpx_offset_intersection/main.cpp
The file was modifiedlldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.h
The file was addedlldb/packages/Python/lldbsuite/test/commands/register/register/intel_xtended_registers/mpx_offset_intersection/Makefile
The file was modifiedlldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h
The file was modifiedlldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.cpp
The file was addedlldb/packages/Python/lldbsuite/test/commands/register/register/intel_xtended_registers/mpx_offset_intersection/
The file was modifiedlldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.h
The file was modifiedlldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
Commit b32bae6f760896b0e285fb6967061e8cd281a8c1 by serguei.katkov
[Test] Add a unit test exposing lack of SCEV invalidation in LICM during
code hoisting. NFC.
This unit test exposes a bug in LICM: when it hoists instructions it
doesn't invalidate SCEV accordingly. Similar test exposing lack of SCEV
invalidation during code sinking will be submitted as a follow-up
Patch Author: Daniil Suchkov Reviewers: mkazantsev, asbirlea, reames
Reviewed By: asbirlea Subscribers: mgorny, javed.absar, llvm-commits
Differential Revision:
The file was modifiedllvm/unittests/Transforms/Scalar/CMakeLists.txt
The file was addedllvm/unittests/Transforms/Scalar/LICMTest.cpp
Commit e9430231accacdb872bc4c82feb9a6a64d57941b by pavel
minidump: Add an "arm64" constant
This is the "official" constant for arm64. We also have another constant
for arm64 (called BP_ARM64), which was used by breakpad while there was
no official constant for arm64 available.
The file was modifiedllvm/unittests/ObjectYAML/MinidumpYAMLTest.cpp
The file was modifiedllvm/lib/ObjectYAML/MinidumpYAML.cpp
The file was modifiedllvm/include/llvm/BinaryFormat/MinidumpConstants.def
Commit 193a7bfb697b5d2adb1c3d37a9d624aa8131ec35 by pavel
minidump: Create memory regions from the sections of loaded modules
Summary: Not all minidumps contain information about memory permissions.
However, it is still important to know which regions of memory contain
potentially executable code. This is particularly important for
unwinding on win32, as the default unwind method there relies on
scanning the stack for things which "look like" code pointers.
This patch enables ProcessMinidump to reconstruct the likely permissions
of memory regions using the sections of loaded object files. It only
does this if we don't have a better source (memory info list stream, or
linux /proc/maps) for this information, and only if the information in
the object files does not conflict with the information in the minidump.
Theoretically that last bit could be improved, since the permissions
obtained from the MemoryList streams is also only a very rough guess,
but it did not seem worthwhile to complicate the implementation because
of that because there will generally be no overlap in practice as the
MemoryList will contain the stack contents and not any module data.
The patch adds a test checking that the module section permissions are
entered into the memory region list, and also a test which demonstrate
that now the unwinder is able to correctly find return addresses even in
minidumps without memory info list streams.
There's one TODO left in this patch, which is that the "memory region"
output does not give any indication about the "don't know" values of
memory region permissions (it just prints them as if they permission bit
was set). I address this in a follow up.
Reviewers: amccarth, clayborg
Subscribers: mgrang, lldb-commits
Differential Revision:
The file was modifiedlldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
The file was addedlldb/test/Shell/Minidump/memory-region-from-module.yaml
The file was addedlldb/test/Shell/SymbolFile/Breakpad/unwind-via-stack-win-no-memory-info.yaml
The file was addedlldb/test/Shell/Minidump/Inputs/basic-elf.yaml
Commit 1eb04d289a6fb4c7cb75f69312a7b949987e7c97 by serguei.katkov
[LICM] Invalidate SCEV upon instruction hoisting
Since SCEV can cache information about location of an instruction, it
should be invalidated when the instruction is moved. There should be
similar bug in code sinking part of LICM, it will be fixed in a
follow-up change.
Patch Author: Daniil Suchkov Reviewers: asbirlea, mkazantsev, reames
Reviewed By: asbirlea Subscribers: hiraditya, javed.absar, llvm-commits
Differential Revision:
The file was modifiedllvm/include/llvm/Transforms/Utils/LoopUtils.h
The file was modifiedllvm/unittests/Transforms/Scalar/LICMTest.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp
Commit a780b94cd1b03c3642a2662ea59dd6cfa7d6b81f by llvm-dev
[X86][SSE] Convert computeZeroableShuffleElements to emit KnownUndef and
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 4b6597f49896529170fde38f5d5fb46d687e0c71 by thakis
Make flang driver stuff work on macOS
6bf55804 added special-case code for TY_PP_Fortran to
ToolChain::LookupTypeForExtension(), but
Darwin::LookupTypeForExtension() overrode that method without calling
the superclass implementation.
Make it call the superclass implementation to fix things.
Differential Revision:
The file was modifiedclang/test/Driver/flang/flang.f90
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp
Commit 7e23f88d7ddf697000c945f6edacd21f424ad749 by thakis
gn build: (manually) merge b32bae6f760
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Transforms/Scalar/
Commit 4980c1333fa44d9676c407922d5482d813faa172 by 1.int32
[clang][analyzer] Using CallDescription in StreamChecker.
Summary: Recognization of function names is done now with the
CallDescription class instead of using IdentifierInfo. This means
function name and argument count is compared too. A new check for
filtering not global-C-functions was added. Test was updated.
Reviewers: Szelethus, NoQ, baloghadamsoftware, Charusso
Reviewed By: Szelethus, NoQ, Charusso
Subscribers: rnkovacs, xazax.hun, baloghadamsoftware, szepet, a.sidorin,
mikhail.ramalho, donat.nagy, Charusso, dkrupp, Szelethus, gamesh411,
Tags: #clang
Differential Revision:
The file was modifiedclang/test/Analysis/stream.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
The file was addedclang/test/Analysis/stream.cpp