- Sep 03, 2020
-
-
Med Ismail Bennani authored
Previously, before loading the REPL language-specific init file, lldb checked the selected target language in which case it returned an unknown language type with the REPL target. Instead, the patch calls `Language::GetLanguagesSupportingREPLs` and look for the first element of that set. In case lldb was not configured with a REPL language, then, it will just stop sourcing the REPL init file and fallback to the original logic (continuing with the default init file). rdar://65836048 Differential Revision: https://reviews.llvm.org/D87076 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Raphael Isemann authored
`image dump symtab` seems to output the symbols in whatever order they appear in the DenseMap that is used to filter out symbols with non-unique addresses. As DenseMap is a hash map this order can change at any time so the output of this command is pretty unstable. This also causes the `Breakpad/symtab.test` to fail with enabled reverse iteration (which reverses the DenseMap order to find issues like this). This patch makes the DenseMap a std::vector and uses a separate DenseSet to do the address filtering. The output order is now dependent on the order in which the symbols are read (which should be deterministic). It might also avoid a bit of work as all the work for creating the Symbol constructor parameters is only done when we can actually emplace a new Symbol. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D87036
-
Martin Storsjö authored
-
Martin Storsjö authored
Add support in llvm-readobj for displaying them and support in the asm parsser, AArch64TargetStreamer and MCWin64EH for emitting them. The directives for the remaining basic opcodes have names that match the opcode in the documentation. The directives for custom stack cases, that are named MSFT_OP_TRAP_FRAME, MSFT_OP_MACHINE_FRAME, MSFT_OP_CONTEXT and MSFT_OP_CLEAR_UNWOUND_TO_CALL, are given matching assembler directive names that fit into the rest of the opcode naming; .seh_trap_frame, .seh_context, .seh_clear_unwound_to_call The opcode MSFT_OP_MACHINE_FRAME is mapped to the existing opecode enum UOP_PushMachFrame that is used on x86_64, and also uses the corresponding existing x86_64 directive name .seh_pushframe. Differential Revision: https://reviews.llvm.org/D86889
-
Raphael Isemann authored
The test only checks the exit code that the debug server sends back, but not the following explanation which is different for debugserver and lldb-server.
-
Raphael Isemann authored
Commit 3a29393b removes the cmath/math.h includes from the DataTypes.h header to speed up parsing. However the DataTypes.h header was using this header to get the macro `HUGE_VAL` for its own `HUGE_VALF` macro definition. Now the macro instead just expands into a plain `HUGE_VAL` token which leads to compiler errors unless `math.h` was previously included by the including source file. It also leads to compiler warnings with enabled module builds which point out this inconsistency. The correct way to fix this seems to be to just remove HUGE_VALF from the header. llvm-c is not referencing that macro from what I can see and users probably should just include the math headers if they need it (or define it on their own for really old C versions). Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D83761
-
Raphael Isemann authored
If our process terminates due to an unhandled signal, we are supposed to get the signal code via WTERMSIG. However, we instead try to get the exit status via WEXITSTATUS which just ends up always calculating signal code 0 (at least on the macOS implementation where it just shifts the signal code bits away and we're left with only 0 bits). The exit status calculation on the LLDB side also seems a bit off as it claims an exit status that is just the signal code (instead of for example 128 + signal code), but that will be another patch. Reviewed By: jasonmolenda Differential Revision: https://reviews.llvm.org/D86336
-
Amara Emerson authored
Differential Revision: https://reviews.llvm.org/D87074
-
Christian Sigg authored
This is the first bit from D73546. Primarily setting up the corresponding test. Will add more pretty printers in a separate revision. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D86937
-
Mehdi Amini authored
This is allowing to build an OpPassManager from a StringRef instead of an Identifier, which enables building pipelines without an MLIRContext. An identifier is still cached on-demand on the OpPassManager for efficiency during the IR traversal.
-
Jakub Lichman authored
Sizes of tiles (subviews) are bigger by 1 than they should. Let's consider 1D convolution without batches or channels. Furthermore let m iterate over the output and n over the kernel then input is accessed with m + n. In tiling subview sizes for convolutions are computed by applying requested tile size together with kernel size to the above mentioned expression thus let's say for tile size of 2 the subview size is 2 + size(n), which is bigger by one than it should since we move kernel only once. The problem behind it is that range is not turned into closed interval before the composition. This commit fixes the problem by turning ranges first into closed intervals by substracting 1 and after the composition back to half open by adding 1. Differential Revision: https://reviews.llvm.org/D86638
-
Jonas Devlieghere authored
Add a reproducer verifier that catches: - Missing or invalid home directory - Missing or invalid working directory - Missing or invalid module/symbol paths - Missing files from the VFS The verifier is enabled by default during replay, but can be skipped by passing --reproducer-no-verify. Differential revision: https://reviews.llvm.org/D86497
-
Jonas Devlieghere authored
When compiling an Objective-C++ file, __has_feature(cxx_exceptions) will return true with -fno-exceptions but without -fno-objc-exceptions. This was causing LLVM_ENABLE_EXCEPTIONS to be defined for a subset of files.
-
Arthur Eubanks authored
This reverts commit 883399c8.
-
Arthur Eubanks authored
This also changes -lint from an analysis to a pass. It's similar to -verify, and that is a normal pass, and lives in llvm/IR. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D87057
-
Jonas Devlieghere authored
Treat the home directory like the current working directory and always capture both in the VFS.
-
Craig Topper authored
[CodeGenPrepare][X86] Teach optimizeGatherScatterInst to turn a splat pointer into GEP with scalar base and 0 index This helps SelectionDAGBuilder recognize the splat can be used as a uniform base. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D86371
-
Craig Topper authored
We recently added support for -mtune. This patch adds /tune: so we can specify the tune CPU from clang-cl. MSVC doesn't support this but icc does. Differential Revision: https://reviews.llvm.org/D86820
-
Artur Bialas authored
Added support to OpSubgroupBlockReadINTEL and OpSubgroupBlockWriteINTEL Differential Revision: https://reviews.llvm.org/D86876
-
Jordan Rupprecht authored
This is currently causing msan warnings in the API tests when run under msan, e.g. `commands/gui/basic/TestGuiBasic.py`. Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D86825
-
Greg McGary authored
-
Sunil Srivastava authored
Differential Revision: https://reviews.llvm.org/D86907
-
Jinsong Ji authored
With runtimes-build, we lost map config for llvm-lit, so we can NOT run lit from source dir anymore. All the subdir target like: ninja check-llvm-codegen-powerpc will fail too. We will get some cfg error like: File "../lvm-project/llvm/test/lit.cfg.py", line 21, in <module> config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell) AttributeError: 'NoneType' object has no attribute 'use_lit_shell' This is reset of map config in llvm-lit rebuild. We already have llvm-lit in runtimes-build, so don't build it. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D87002 -
Eli Friedman authored
Differential Revision: https://reviews.llvm.org/D86989
-
Xing GUO authored
When llvm-dwarfdump encounters no null terminated strings, we should warn user about it rather than ignore it and print nothing. Before this patch, when llvm-dwarfdump dumps a .debug_str section whose content is "abc", it prints: ``` .debug_str contents: ``` After this patch: ``` .debug_str contents: warning: no null terminated string at offset 0x0 ``` Reviewed By: jhenderson, MaskRay Differential Revision: https://reviews.llvm.org/D86998
-
Fangrui Song authored
-
Walter Erquinigo authored
Revert de6caf87 and 51128b67 (https://reviews.llvm.org/D84974) The tests seem to be timing out in all linux bots. Need further analysis. Revert "run in terminal" This reverts commit de6caf87.
-
Mehdi Amini authored
-
Diego Caballero authored
This patch adds basic support for vectorization of uniform values to SuperVectorizer. For now, only invariant values to the target vector loops are considered uniform. This enables the vectorization of loops that use function arguments and external definitions to the vector loops. We could extend uniform support in the future if we implement some kind of divergence analysis algorithm. Reviewed By: nicolasvasilache, aartbik Differential Revision: https://reviews.llvm.org/D86756
-
Louis Dionne authored
-
Nemanja Ivanovic authored
The test case in https://bugs.llvm.org/show_bug.cgi?id=47373 exposed two bugs in the PPC back end. The first one was fixed in commit 27714075 but the test case had to be added without -verify-machineinstrs due to the second bug. This commit fixes the use-after-kill that is left behind by the PPC MI peephole optimization.
-
Walter Erquinigo authored
Failure found in http://lab.llvm.org:8011/builders/lldb-x86_64-debian/builds/16855 The issue is a header not being included
-
Huihui Zhang authored
First, shuffle cost for scalable type is not known for scalable type; Second, we cannot reason if the narrowed shuffle mask for scalable type is a splat or not. E.g., Bitcast splat vector from type <vscale x 4 x i32> to <vscale x 8 x i16> will involve narrowing shuffle mask <vscale x 4 x i32> zeroinitializer to <vscale x 8 x i32> with element sequence of <0, 1, 0, 1, ...>, which cannot be reasoned if it's a valid splat or not. Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D86995
-
Geoffrey Martin-Noble authored
This patch changes errors in `SmallVector::grow` that are independent of memory capacity to be reported using report_fatal_error or std::length_error instead of report_bad_alloc_error, which falsely signals an OOM. It also cleans up a few related things: - makes report_bad_alloc_error to print the failure reason passed to it. - fixes the documentation to indicate that report_bad_alloc_error calls `abort()` not "an assertion" - uses a consistent name for the size/capacity argument to `grow` and `grow_pod` Reviewed By: mehdi_amini, MaskRay Differential Revision: https://reviews.llvm.org/D86892
-
Mehdi Amini authored
This allows to defers the check for traits to the execution instead of forcing it on the pipeline creation. In particular, this is making our pipeline creation tolerant to dialects not being loaded in the context yet. Reviewed By: rriddle, GMNGeoffrey Differential Revision: https://reviews.llvm.org/D86915
-
Diego Caballero authored
Make use of affine memory op interfaces in AffineLoopInvariantCodeMotion so that it can also work on affine.vector_load and affine.vector_store ops. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D86986
-
Hongtao Yu authored
For ThinLTO importing we don't need to import all the fields of the DICompileUnit, such as enums, macros, retained types lists. The importation of those fields were previously disabled by setting their value map entries to nullptr. Unfortunately a metadata node can be shared by multiple metadata operands. Setting the map entry to nullptr might result in not importing other metadata unexpectedly. The issue is fixed by explicitly setting the original DICompileUnit fields (still a copy of the source module metadata) to null. Reviewed By: wenlei, dblaikie Differential Revision: https://reviews.llvm.org/D86675
-
Walter Erquinigo authored
-
Kostya Kortchinsky authored
I had left this as a TODO, but it turns out it wasn't complicated. By specifying `MAP_RESIZABLE`, it allows us to keep the VMO which we can then use for release purposes. `releasePagesToOS` also had to be called the "proper" way, as Fuchsia requires the `Offset` field to be correct. This has no impact on non-Fuchsia platforms. Differential Revision: https://reviews.llvm.org/D86800
-
Adrian Prantl authored
cache for implicit modules. The ModuleManager's use of FileEntry nodes as the keys for its map of loaded modules is less than ideal. Uniqueness for FileEntry nodes is maintained by FileManager, which in turn uses inode numbers on hosts that support that. When coupled with the module cache's proclivity for turning over and deleting stale PCMs, this means entries for different module files can wind up reusing the same underlying inode. When this happens, subsequent accesses to the Modules map will disagree on the ModuleFile associated with a given file. In general, it is not sufficient to resolve this conundrum with a type like FileEntryRef that stores the name of the FileEntry node on first access because of path canonicalization issues. However, the paths constructed for implicit module builds are fully under Clang's control. We *can*, therefore, rely on their structure being consistent across operating systems and across subsequent accesses to the Modules map. To mitigate the effects of inode reuse, perform an extra name check when implicit modules are returned from the cache. This has the effect of forcing reused FileEntry nodes to stomp over existing-but-stale entries in the cache, which simulates a miss - exactly the desired behavior. rdar://48443680 Patch by Robert Widmann! Differential Revision: https://reviews.llvm.org/D86823
-