- Sep 10, 2021
-
-
Michał Górny authored
Create a common GDBPlatformClientTestBase class and move the platform select/connect logic there to reduce duplication. Differential Revision: https://reviews.llvm.org/D109585
-
Anastasia Stulova authored
Update info on OpenCLSupport page to reflect changes committed after release 13 branched.
-
Jan Svoboda authored
In `ToolInvocation::run`, the driver -> cc1 command-line transformation uses `DiagnosticsEngine` that wasn't completely initialized. This patch ensures `ProcessWarningOptions(DiagnosticsEngine&, const DiagnosticOptions &)` is called. Depends on D108982. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D108974
-
Max Kazantsev authored
-
Jan Svoboda authored
In this patch the dependency scanner starts using proper `DiagnosticOptions` parsed from the actual TU command-line in order to mimic what the actual compiler would do. The actual functionality will be enabled and tested in follow-up patches. (This split is necessary to avoid temporary regression.) Depends on D108976. Reviewed By: dexonsmith, arphaman Differential Revision: https://reviews.llvm.org/D108982
-
Stephan Herhut authored
The original version of the bufferization pattern for linalg.generic would manually clone operations within the region to the bufferized clone of the operation. This triggers legality requirements on those operations in the conversion infra. Instead, this now uses the rewriter to inline the region instead, avoiding those legality requirements. Differential Revision: https://reviews.llvm.org/D109581
-
Sjoerd Meijer authored
LoopFlatten wasn't triggering on this motivating case after IV widening: void foo(int *A, int N, int M) { for (int i = 0; i < N; ++i) for (int j = 0; j < M; ++j) f(A[i*M+j]); } The reason was that the old induction phi nodes were getting in the way. These narrow and dead induction phis are not always trivially dead, and having both the narrow and wide IVs confused the analysis and caused it to bail. This adds some extra bookkeeping for these old phis, so we can filter them out when checks on phi nodes are performed. Other clean up passes will get rid of these old phis and increment instructions. As this was one of the motivating examples from the beginning, it was surprising this wasn't triggering from C/C++ code. It looks like the IR and CFG is just slightly different. Differential Revision: https://reviews.llvm.org/D109309 -
Jan Svoboda authored
This patch allows the clients of `ToolInvocation` to provide custom diagnostic options to be used during driver -> cc1 command-line transformation and parsing. Tests covering this functionality are in a follow-up commit. To make this testable, the `DiagnosticsEngine` needs to be properly initialized via `CompilerInstance::createDiagnostics`. Reviewed By: dexonsmith, arphaman Differential Revision: https://reviews.llvm.org/D108976
-
Anastasia Stulova authored
Linked libclcxx GitHub project page in C++ libraries for OpenCL section on OpenCLSupport page. Differential Revision: https://reviews.llvm.org/D109526
-
Anastasia Stulova authored
Update a section of OpenCLSupport page to reflect the latest development in OpenCL 3.0 support for release 13. Differential Revision: https://reviews.llvm.org/D109320
-
Raphael Isemann authored
D101329 introduces the Process:SaveCore function returning a `llvm::Expected<bool>`. That function causes that Clang with -fmodules crashes while compiling LLDB's PythonDataObjects.cpp. With enabled asserts Clang fails because of: Assertion failed: (CachedFieldIndex && "failed to find field in parent") Crash can be reproduced by building via -DLLVM_ENABLE_MODULES=On with Clang 12.0.1 and then building PythonDataObjects.cpp.o . Clang bug is tracked at rdar://82901462 -
Jean Perier authored
When an end of record is met in non advancing IO: - Set IOSTAT if present according to 12.11.4 (5). - Position the file to the next record (12.11.4 (4)). The previous code was only signaling EOR for fixed record length IO. Reading at 12.11.4, I do not find the rational for this condition, so I removed it. It also does not seem the presence of padding should prevent the EOR signaling. The positionning to the next record was block when EOR is signaling in FinishReadingRecord because ErrorHandler.isError() is true in this case. EOR in input is not an error, but I am not confident to modify ErrorHandler.isError() to cover that. However, In FinishReadingRecord, the code should not bail if the error is simply an end of record. I did not check the SIZE requirements here because GetSize runtime is not yet implemented. Differential Revision: https://reviews.llvm.org/D109505
-
Michał Górny authored
We set breakpoint on child_func, so synchronization inside it is too late to guarantee ordering between the parent output and child breakpoint. Split the function in two, and perform synchronization before the breakpoint. Differential Revision: https://reviews.llvm.org/D109591
-
Rosie Sumpter authored
For SVE, when scalarising the PHI instruction the whole vector part is generated as opposed to creating instructions for each lane for fixed- width vectors. However, in some cases the lane values may be needed later (e.g for a load instruction) so we still need to calculate these values to avoid extractelement being called on the vector part. Differential Revision: https://reviews.llvm.org/D109445
-
Serge Bazanski authored
This fixes LanaiTTIImpl::getIntImmCost to return valid costs for i128 (and wider) values. Previously any immediate wider than 64 bits would cause Lanai llc to crash. A regression test is also added that exercises this functionality. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D107091
-
Serge Bazanski authored
D78776 removed is{Call,Branch,UnconditionalBranch} guards in objdump before calling MCInstrAnalysis::evaluateBranch. This is fine for other architectures as they gracefully handle evaluateBranch being called on non-branches. However, the Lanai MCInstrAnalysis implementation didn't and that change caused it to crash. This inserts the same guards back into Lanai's evaluateBranch implementation and adds a smoke test that exercises `llc | objdump` so this kind of regression is hopefully caught next time. Reviewed By: jpienaar, MaskRay Differential Revision: https://reviews.llvm.org/D107593 -
Jan Svoboda authored
-
Cheng Wang authored
The C standard only guarantees the sign of return value. The exact return value is implementation defined. Reviewed By: gchatelet Differential Revision: https://reviews.llvm.org/D109588
-
Jan Svoboda authored
This patch simplifies the dependency scanner API. Depends on D108980. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D108981
-
Matthias Springer authored
Generate an scf.for instead of an scf.if for the partial iteration. This is for consistency reasons: The peeling of linalg.tiled_loop also uses another loop for the partial iteration. Note: Canonicalizations patterns may rewrite partial iterations to scf.if afterwards. Differential Revision: https://reviews.llvm.org/D109568
-
Michał Górny authored
-
Michał Górny authored
Now with an #ifdef for WIN32. Differential Revision: https://reviews.llvm.org/D107840
-
Michał Górny authored
This reverts commit 9e886fbb. It breaks on Windows.
-
Jan Svoboda authored
This patch simplifies the dependency scanner API. Depends on D108979. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D108980
-
Michał Górny authored
Differential Revision: https://reviews.llvm.org/D107840
-
Michał Górny authored
Implement a fallback to getting the file size via vFile:stat packet when the remote server does not implement vFile:size. This makes it possible to query file sizes from remote gdbserver. Note that unlike vFile:size, the fallback will not work if the server is unable to open the file. While at it, add a few tests for the 'platform get-size' command. Differential Revision: https://reviews.llvm.org/D107780
-
David Green authored
Rewrite this test to not rely on volatile stores in a large function, just use separate functions like any other test would.
-
Jan Svoboda authored
The dependency scanner currently uses `ClangTool` to invoke the dependency scanning action. However, `ClangTool` seems to be the wrong level of abstraction. It's intended to be run over a collection of compile commands, which we actively avoid via `SingleCommandCompilationDatabase`. It automatically injects `-fsyntax-only` and other flags, which we avoid by calling `clearArgumentsAdjusters()`. It deduces the resource directory based on the current executable path, which we'd like to change to deducing from `argv[0]`. Internally, `ClangTool` uses `ToolInvocation` which seems to be more in line with what the dependency scanner tries to achieve. This patch switches to directly using `ToolInvocation` instead. NFC. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D108979
-
Alfonso Sánchez-Beato authored
If the number of directories was 6 (equal to the DEBUG_DIRECTORY index), patchDebugDirectory() was run even though the debug directory is actually the 7th entry. Use <= in the comparison to fix that. This fixes https://llvm.org/PR51243 Differential Revision: https://reviews.llvm.org/D106940 Reviewed by: jhenderson
-
Cheng Wang authored
- Replace `move_byte_forward()` with `memcpy`. In `memcpy` implementation, it copies bytes forward from beginning to end. Otherwise, `memmove` unit tests will break. - Make `memmove` unit tests work. Reviewed By: gchatelet Differential Revision: https://reviews.llvm.org/D109316
-
Florian Hahn authored
When passing an empty strides map, there's nothing to replace for replaceSymbolicStrideSCEV and it just returns the SCEV for Ptr. There should be no need to call the function. Reviewed By: SjoerdMeijer Differential Revision: https://reviews.llvm.org/D109462
-
Tobias Gysi authored
Extend the signature of the tile loop nest region builder to take all operand values to use and not just the scf::For iterArgs. This change allows us to pass in all block arguments of TiledLoop and use them directly instead of replacing them after the loop generation. Reviewed By: pifon2a Differential Revision: https://reviews.llvm.org/D109569
-
Petr Hosek authored
`<var> STREQUAL ""` fails when `<var>` is unset which can be the case when using runtimes as top-level build. Use `NOT` instead. Differential Revision: https://reviews.llvm.org/D109570
-
Diana Picus authored
This patch changes how the dependency scanner creates the fake input file when scanning dependencies of a single module (introduced in D109485). The scanner now has its own `InMemoryFilesystem` which sits under the minimizing FS (when that's requested). This makes it possible to drop the duplicate work in `DependencyScanningActions::runInvocation` that sets up the main file ID. Besides that, this patch makes it possible to land D108979, where we drop `ClangTool` entirely. Depends on D109485. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D109498
-
Sjoerd Meijer authored
The MinSize attribute can be attached to both the callee and the caller in the callsite. Function specialisation was already skipped for function declarations (callees) with MinSize. This also skips specialisations for the callsite when it has MinSize set. Differential Revision: https://reviews.llvm.org/D109441
-
Michał Górny authored
Differential Revision: https://reviews.llvm.org/D96766
-
Michał Górny authored
Add synchronization routines to ensure that Subprocess tests output in a predictable order, and all test strings are output before the tests terminate. Differential Revision: https://reviews.llvm.org/D109495
-
Nicolas Vasilache authored
This revision fixes the traversal order of extract_slice during the inplace analysis. It was previously thought that such ops could be analyzed at the very end. This is unfortunately not true as the AliasInfo for dependents of these ops need to be updated. This change allows the aliases introduced by the bufferization of extract_slice to be properly propagated. Differential Revision: https://reviews.llvm.org/D109519
-
Alexey Lapshin authored
DWARFUnit::clearDIEs() uses std::vector::shrink_to_fit() to make capacity of DieArray matched with its size(). The shrink_to_fit() is not binding request to make capacity match with size(). Thus the memory could still be reserved after DWARFUnit::clearDIEs() is called. This patch erases capacity when DWARFUnit::clearDIEs() is requested. So the memory occupied by dies would be freed. Differential Revision: https://reviews.llvm.org/D109499
-
Marius Brehler authored
Switches to adding target specific, private includes instead of adding global includes. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D109494
-