SuccessChanges

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

Summary

  1. Recommit "[lldb] Don't dissasemble large functions by default" (details)
  2. [DebugInfo] - DWARFDebugFrame: do not call abort() on errors. (details)
  3. [lldb] Fixup command-disassemble-process.yaml test (details)
  4. X86ISelLowering.cpp - remove non-constant EXTRACT_SUBVECTOR/INSERT_SUBVECTOR handling. NFC. (details)
  5. [clang-tidy] Fix assertion in RenamerClangTidyChecks (details)
Commit 8b845ac5edc19524817911d703dd314aac2ca97d by labath
Recommit "[lldb] Don't dissasemble large functions by default"

This recommits f665e80c023 which was reverted in 1cbd1b8f692d for breaking
TestFoundationDisassembly.py. The fix is to use --force in the test to avoid
bailing out on large functions.

I have also doubled the large function limit to 8000 bytes (~~ 2000 insns), as
the foundation library contains a lot of large-ish functions. The intent of this
feature is to prevent accidental disassembling of enormous (multi-megabyte)
"functions", not to get in people's way.

The original commit message follows:

If we have a binary without symbol information (and without
LC_FUNCTION_STARTS, if on a mac), then we have to resort to using
heuristics to determine the function boundaries. However, these don't
always work, and so we can easily end up thinking we have functions
which are several megabytes in size. Attempting to (accidentally)
disassemble these can take a very long time spam the terminal with
thousands of lines of disassembly.

This patch works around that problem by adding a sanity check to the
disassemble command. If we are about to disassemble a function which is
larger than a certain threshold, we will refuse to disassemble such a
function unless the user explicitly specifies the number of instructions
to disassemble, uses start/stop addresses for disassembly, or passes the
(new) --force argument.

The threshold is currently fairly aggressive (4000 bytes ~~ 1000
instructions). If needed, we can increase it, or even make it
configurable.

Differential Revision: https://reviews.llvm.org/D79789
The file was modifiedlldb/test/API/lang/objc/foundation/TestFoundationDisassembly.py
The file was modifiedlldb/source/Commands/CommandObjectDisassemble.h
The file was modifiedlldb/test/Shell/Commands/command-disassemble-process.yaml
The file was modifiedlldb/test/Shell/Commands/Inputs/command-disassemble.lldbinit
The file was modifiedlldb/source/Commands/CommandObjectDisassemble.cpp
The file was modifiedlldb/source/Commands/Options.td
The file was modifiedlldb/test/Shell/Commands/command-disassemble.s
Commit 710d9d66f8e2f8ac148ef9a3d226c6a8e22f15c5 by grimar
[DebugInfo] - DWARFDebugFrame: do not call abort() on errors.

Imagine we have a broken .eh_frame.
Below is a possible sample output of llvm-readelf:

```
...
    entry 2 {
      initial_location: 0x10f5
      address: 0x2080
    }
  }
}
.eh_frame section at offset 0x2028 address 0x2028:
LLVM ERROR: Parsing entry instructions at 0 failed
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.  Program arguments: /home/umb/LLVM/LLVM/llvm-project/build/bin/llvm-readelf -a 1
#0 0x000055f4a2ff5a1a llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/home/umb/LLVM/LLVM/llvm-project/build/bin/llvm-readelf+0x2b9a1a)
...
#15 0x00007fdae5dc209b __libc_start_main /build/glibc-B9XfQf/glibc-2.28/csu/../csu/libc-start.c:342:3
#16 0x000055f4a2db746a _start (/home/umb/LLVM/LLVM/llvm-project/build/bin/llvm-readelf+0x7b46a)
Aborted
```

I.e. it calls abort(), suggests to submit a bug report and exits with the code 134.
This patch changes the logic to propagate errors to callers.
This fixes the behavior for llvm-dwarfdump, llvm-readobj and other possible tools.

Differential revision: https://reviews.llvm.org/D79165
The file was modifiedllvm/test/DebugInfo/X86/eh-frame-cie-id.s
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
The file was modifiedllvm/tools/llvm-readobj/DwarfCFIEHPrinter.h
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/unwind.test
Commit 36b9b1e6171d438105839aac6f333a1c98fda74c by pavel
[lldb] Fixup command-disassemble-process.yaml test

Increase the function size to account for the changed threshold in
8b845ac5edc1.
The file was modifiedlldb/test/Shell/Commands/command-disassemble-process.yaml
Commit 1024e82469b465803e57360c01c5943c679257e0 by llvm-dev
X86ISelLowering.cpp - remove non-constant EXTRACT_SUBVECTOR/INSERT_SUBVECTOR handling. NFC.

Now that D79814 has landed, we can assume that subvector ops use constant, in-range indices.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit aef778d4d38e45fd413e7e95919fbb72cde42488 by n.james93
[clang-tidy] Fix assertion in RenamerClangTidyChecks
The file was modifiedclang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp