SuccessChanges

Summary

  1. [X86] Add chain in ISel for x86_tdpbssd_internal intrinsic. (details)
  2. [lldb] "target create" shouldn't save target if the command failed (details)
  3. [lldb] Modernize TargetList for-loops, NFC (details)
  4. [lldb] Make CommandInterpreter's execution context the same as debugger's one. (details)
Commit e52bc1d2bba794bfb004d35a395a2e3a8e69f9cb by yuanke.luo
[X86] Add chain in ISel for x86_tdpbssd_internal intrinsic.
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
Commit 2634ec6ce9007f2406545ca28b4c72961f1e8f67 by Tatyana Krasnukha
[lldb] "target create" shouldn't save target if the command failed

TargetList::CreateTarget automatically adds created target to the list, however,
CommandObjectTargetCreate does some additional preparation after creating a target
and which can fail. The command should remove created target if it failed. Since
the function has many ways to return, scope guard does this work safely.

Changes to the TargetList make target adding and selection more transparent.

Other changes remove unnecessary SetSelectedTarget after CreateTarget.

Differential Revision: https://reviews.llvm.org/D93052
The file was modifiedlldb/source/Commands/CommandObjectTarget.cpp
The file was modifiedlldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
The file was modifiedlldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
The file was modifiedlldb/source/Target/Platform.cpp
The file was modifiedlldb/source/Target/TargetList.cpp
The file was modifiedlldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
The file was modifiedlldb/unittests/Thread/ThreadTest.cpp
The file was modifiedlldb/include/lldb/Target/TargetList.h
The file was modifiedlldb/source/API/SBDebugger.cpp
The file was modifiedlldb/unittests/Process/ProcessEventDataTest.cpp
The file was modifiedlldb/source/Target/TraceSessionFileParser.cpp
The file was modifiedlldb/source/Commands/CommandObjectProcess.cpp
Commit 7832d7e95ace589b2275bafe701ccb377a16b1b2 by Tatyana Krasnukha
[lldb] Modernize TargetList for-loops, NFC

Replace loops with standard algorithms or range-based loops.
The file was modifiedlldb/source/Target/TargetList.cpp
Commit a01b26fb51c710a3a8ef88cc83b0701461f5b9ab by Tatyana Krasnukha
[lldb] Make CommandInterpreter's execution context the same as debugger's one.

Currently, the interpreter's context is not updated until a command is executed.
This has resulted in the behavior of SB-interface functions and some commands
depends on previous user actions. The interpreter's context can stay uninitialized,
point to a currently selected target, or point to one of previously selected targets.

This patch removes any usages of CommandInterpreter::UpdateExecutionContext.
CommandInterpreter::HandleCommand* functions still may override context temporarily,
but now they always restore it before exiting. CommandInterpreter saves overriden
contexts to the stack, that makes nesting commands possible.

Added test reproduces one of the issues. Without this fix, the last assertion fails
because interpreter's execution context is empty until running "target list", so,
the value of the global property was updated instead of process's local instance.

Differential Revision: https://reviews.llvm.org/D92164
The file was modifiedlldb/source/Commands/CommandObjectRegexCommand.cpp
The file was modifiedlldb/source/Commands/CommandObjectExpression.cpp
The file was modifiedlldb/source/Interpreter/CommandInterpreter.cpp
The file was modifiedlldb/source/Commands/CommandObjectWatchpointCommand.cpp
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
The file was modifiedlldb/include/lldb/Interpreter/CommandInterpreter.h
The file was modifiedlldb/source/Commands/CommandObjectSettings.cpp
The file was modifiedlldb/source/Breakpoint/BreakpointOptions.cpp
The file was modifiedlldb/source/Commands/CommandObjectProcess.cpp
The file was modifiedlldb/source/Target/Target.cpp
The file was addedlldb/test/API/python_api/debugger/main.cpp
The file was modifiedlldb/test/API/python_api/debugger/TestDebuggerAPI.py
The file was modifiedlldb/source/API/SBCommandInterpreter.cpp
The file was modifiedlldb/source/Commands/CommandObjectCommands.cpp
The file was addedlldb/test/API/python_api/debugger/Makefile