- Sep 22, 2020
-
-
Walter Erquinigo authored
This is the first in a series of patches that will adds a new processor trace plug-in to LLDB. The idea for this first patch to to add the plug-in interface with simple commands for the trace files that can "load" and "dump" the trace information. We can test the functionality and ensure people are happy with the way things are done and how things are organized before moving on to adding more functionality. Processor trace information can be view in a few different ways: - post mortem where a trace is saved off that can be viewed later in the debugger - gathered while a process is running and allow the user to step back in time (with no variables, memory or registers) to see how each thread arrived at where it is currently stopped. This patch attempts to start with the first solution of loading a trace file after the fact. The idea is that we will use a JSON file to load the trace information. JSON allows us to specify information about the trace like: - plug-in name in LLDB - path to trace file - shared library load information so we can re-create a target and symbolicate the information in the trace - any other info that the trace plug-in will need to be able to successfully parse the trace information - cpu type - version info - ??? A new "trace" command was added at the top level of the LLDB commmands: - "trace load" - "trace dump" I did this because if we load trace information we don't need to have a process and we might end up creating a new target for the trace information that will become active. If anyone has any input on where this would be better suited, please let me know. Walter Erquinigo will end up filling in the Intel PT specific plug-in so that it works and is tested once we can agree that the direction of this patch is the correct one, so please feel free to chime in with ideas on comments! Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D85705
-
antonio-cortes-perez authored
Updated file paths and function signatures in section "Adding a new type". Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D88049
-
Krzysztof Parzyszek authored
Extend the handling of memory intrinsics to also include non- target-specific intrinsics, in particular masked loads and stores. Invent "isHandledNonTargetIntrinsic" to distinguish between intrin- sics that should be handled natively from intrinsics that can be passed to TTI. Add code that handles masked loads and stores and update the testcase to reflect the results. Differential Revision: https://reviews.llvm.org/D87340
-
Arthur Eubanks authored
Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D87932
-
Diego Caballero authored
This patch adds a utility based on SuperVectorizer to vectorize an affine loop nest using a given vectorization strategy. This strategy allows targeting specific loops for vectorization instead of relying of the SuperVectorizer analysis to choose the right loops to vectorize. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D85869
-
Arthur Eubanks authored
SimplifyCFG's options should always be overridden by command line flags, but they mistakenly weren't in the default constructor. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D87718
-
Evandro Menezes authored
Scheduling information is of little value when they may disrupt the pipeline. This patch allows omitting the scheduling information for CSR instructions while still setting `SchedMachineModel::CompleteModel`. For specific cases, any scheduling information added will be used by the scheduler. Differential revision: https://reviews.llvm.org/D85366
-
Kazu Hirata authored
-
Jordan Rupprecht authored
A few fixes while trying to figure out why tests are being skipped for arsenm: - We check `$compiler -v`, but `-v` is `--verbose`, not `--version`. Use the long flag name. - We check all lines matching `version ...`, but we should exit early for the first version string we see (which should be the main one). I'm not sure if this is the issue, but perhaps this is causing some users to skip some tests if another "version ..." is showing up later. - Having `\.` in a python string is triggering pylint warnings, because it should be escaped as a regex string, e.g. `r'\.' However, `.` in a character class does not need to be escaped, as it matches only a literal `.` in that context. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D88051
-
Kazu Hirata authored
-
Amara Emerson authored
The vector-immediate cases are handled elsewhere in an earlier commit.
-
Amara Emerson authored
In order to select the immediate forms using the imported patterns, we need to lower them into new G_VASHR/G_VLSHR target generic ops. Add a combine to do this matching build_vector of constant operands. With this, we get selection for free.
-
Jacques Pienaar authored
Sets the content for the section entry pages Hugo side. Differential Revision: https://reviews.llvm.org/D87969
-
Amara Emerson authored
Selection support for these is coming up.
-
Richard Smith authored
performing list-initialization of a char array reference from a braced string literal of a smaller size.
-
- Sep 21, 2020
-
-
Mircea Trofin authored
Differential Revision: https://reviews.llvm.org/D88047
-
shafik authored
[ASTImporter] Modifying ImportDeclContext(...) to ensure that we also handle the case when the FieldDecl is an ArrayType whose ElementType is a RecordDecl When we fixed ImportDeclContext(...) in D71378 to make sure we complete each FieldDecl of a RecordDecl when we are importing the definition we missed the case where a FeildDecl was an ArrayType whose ElementType is a record. This fix was motivated by a codegen crash during LLDB expression parsing. Since we were not importing the definition we were crashing during layout which required all the records be defined. Differential Revision: https://reviews.llvm.org/D86660
-
Martin Storsjö authored
This reverts commit 4d85444b. This commit broke building lldb's NativeProcessProtocolTest.cpp, with errors like these: In file included from include/llvm/Support/Process.h:32:0, from tools/lldb/unittests/Host/NativeProcessProtocolTest.cpp:12: include/llvm/Support/Program.h:39:11: error: reference to ‘pid_t’ is ambiguous typedef pid_t procid_t; /usr/include/sched.h:38:17: note: candidates are: typedef __pid_t pid_t typedef __pid_t pid_t; tools/lldb/include/lldb/lldb-types.h:85:18: note: typedef uint64_t lldb::pid_t typedef uint64_t pid_t;
-
Krzysztof Parzyszek authored
1. Store intrinsic ID in ParseMemoryInst instead of a boolean flag "IsTargetMemInst". This will make it easier to add support for target-independent intrinsics. 2. Extract the complex multiline conditions from EarlyCSE::processNode into a new function "getMatchingValue". Differential Revision: https://reviews.llvm.org/D87691
-
Baptiste Saleil authored
These patterns and type uses were added by mistake by commit 1372e23c
-
Pengxuan Zheng authored
The patch modifies HexagonVectorLoopCarriedReuse pass to make it compatible with both Legacy Pass Manager through HexagonVectorLoopCarriedReuseLegacyPass and with New Pass Manager through HexagonVectorLoopCarriedReusePass. Reviewed By: pzheng Differential Revision: https://reviews.llvm.org/D86955
-
Martin Storsjö authored
If we are going to write handler data (that is written as variable length data following after the unwind info in .xdata), we need to emit the handler data immediately, but for cases where no such info is going to be written, skip emitting it right away. (Unwind info for all remaining functions that hasn't gotten it emitted directly is emitted at the end.) This does slightly change the ordering of sections (triggering a bunch of updates to DebugInfo/COFF tests), but the change should be benign. This also matches GCC's assembly output, which doesn't output .seh_handlerdata unless it actually is needed. For ARM64, the unwind info can be packed into the runtime function entry itself (leaving no data in the .xdata section at all), but that can only be done if there's no follow-on data in the .xdata section. If emission of the unwind info is triggered via EmitWinEHHandlerData (or the .seh_handlerdata directive), which implicitly switches to the .xdata section, there's a chance of the caller wanting to pass further data there, so the packed format can't be used in that case. Differential Revision: https://reviews.llvm.org/D87448
-
Martin Storsjö authored
When cross compiling with clang-cl, clang splits the INCLUDE env variable around semicolons (clang/lib/Driver/ToolChains/MSVC.cpp, MSVCToolChain::AddClangSystemIncludeArgs) and lld splits the LIB variable similarly (lld/COFF/Driver.cpp, LinkerDriver::addLibSearchPaths). Therefore, the consensus for cross compilation with clang-cl and lld-link seems to be to use semicolons, despite path lists normally being separated by colons on unix and EnvPathSeparator being set to that. Therefore, handle the LIB variable similarly in Clang, when handling lib file arguments when driving linking via Clang. This fixes commands like "clang-cl test.c -Fetest.exe kernel32.lib" in a cross compilation setting. Normally, most users call (lld-)link directly, but meson happens to use this command syntax for has_function() tests. Differential Revision: https://reviews.llvm.org/D88002
-
Martin Storsjö authored
GCC 8 changed behaviour wrt this, and made it consistent for cross compilation cases. While it's a change, it's a more sensible behaviour going forward. Differential Revision: https://reviews.llvm.org/D88005
-
Chris Hamilton authored
Added support for GNU named variadic macros in macro expansion for plist generation. Fix for https://bugs.llvm.org/show_bug.cgi?id=44493 Reviewed By: Szelethus Differential Revision: https://reviews.llvm.org/D87942
-
Sanjay Patel authored
We were already using this code pattern right after the loop, so this makes it consistent.
-
Matt Arsenault authored
We no longer treat the frame register like a function argument, so the problem this avoided is no longer relevant.
-
Stephen Neuendorffer authored
-
Matt Arsenault authored
This reverts commit dbd53a1f. Needed lldb test updates
-
Zequan Wu authored
Differential Revision: https://reviews.llvm.org/D84988
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Louis Dionne authored
This allows diagnosing missing substitution issues even when doing availability feature detection in the DSL.
-
Arthur Eubanks authored
This pass is like DeadCodeEliminationPass, but only does one pass through a function instead of iterating on users of eliminated instructions. DeadCodeEliminationPass should be used in all cases. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D87933
-
Roman Lebedev authored
-
Fangrui Song authored
[ELF][test] Delete large temporary files and make some temporary files smaller with two text segments Large files are cumbersome on some filesystems and can more easily trigger ENOSPC. Some tests use two text sections with output section addresses to test branch ranges. Use two text segments to prevent LLD from filling the gap and unnecessarily increasing the output size. With this change, there is no test/ELF temporary file larger than 100MiB. Reviewed By: psmith Differential Revision: https://reviews.llvm.org/D88037
-
Stanislav Mekhanoshin authored
-
Reid Kleckner authored
This updates the C++ ABI argument classification code to use the logic from D72114, fixing an ABI incompatibility with MSVC. Part of PR44395. Differential Revision: https://reviews.llvm.org/D87923
-
jerryyin authored
check-mlir target run tests simultaneously with multiple threads. This caused multiple threads to invoke the `lld::elf::link()` interface at the same time. Since the interface does not have a thread-safe implementation, add a metex to prevent multi-threaded access. I discovered this by looking the the failure stack trace. lld/ELF/symbolTable.cpp, SymbolTable::insert() hit into an assert with related to Epoch Trackers. The root cause is to due to there is no protection around the symMap (update) which is implemented in non-thread safe data structure: denseMap. Differential Revision: https://reviews.llvm.org/D88038
-
Arthur Eubanks authored
Mistakenly removed initialization of `Changed` in https://reviews.llvm.org/D87806.
-