- Sep 10, 2021
-
-
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
-
Bjorn Pettersson authored
Make sure we handle some more adaptors etc (such as cgscc and devirt). Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D109542
-
Chris Lattner authored
Motivation: APInt not supporting zero bit values leads to a lot of special cases in various bits of code, particularly when using APInt as a bit vector (where you want to start with zero bits and then concat on more. This is particularly challenging in the CIRCT project, where the absence of zero-bit ConstantOp forces duplication of ops and makes instcombine-like logic far more complicated. Approach: zero bit integers are weird. There are two reasonable approaches: either make it illegal to do general arithmetic on them (e.g. sign extends), or treat them as as implicitly having a zero value. This patch takes the conservative approach, which enables their use in bitvector applications. Differential Revision: https://reviews.llvm.org/D109555
-
Liu, Chen3 authored
This is also a bug. The VK[1/2/4/8/16]PAIR here should be VK[1/2/4/8/16]Pair which has its custom PrintMethod and ParserMatchClass. However we don't have any instructions using vvvv and ModR/M.REG field so this issue is not exposed. Differential Revision: https://reviews.llvm.org/D109564
-
Max Kazantsev authored
Patch by Dmitry Bakunevich!
-
Yonghong Song authored
Previously we have the following binary representation: struct bpf_type { name, info, type } struct btf_tag { __u32 component_idx; } If the tag points to a struct/union/var/func type, we will have kflag = 1, component_idx = 0 if the tag points to struct/union member or func argument, we will have kflag = 0, component_idx = 0, ..., vlen - 1 The above rather makes interface complex to have both kflag and component needed to determine its legality and index. This patch simplifies the interface by removing kflag involvement. component_idx = (u32)-1 : tag pointing to a type component_idx = 0 ... vlen - 1 : tag pointing to a member or argument and kflag is always 0 and there is no need to check. Differential Revision: https://reviews.llvm.org/D109560 -
Zequan Wu authored
Differential Revision: https://reviews.llvm.org/D109554
-
Arthur O'Dwyer authored
The majority of the changes here are whitespace. Also simplify `ThrowingIterator`'s bookkeeping (NFC). Also move some free operators into hidden friends, for sanity's sake. Also `=delete` some more comma operators. Also use `constexpr` in C++20 instead of `TEST_CONSTEXPR_CXX14`. Differential Revision: https://reviews.llvm.org/D103341
-
Jason Molenda authored
Report timeout exceeded and connection lost error messages when sending the initial handshake packet in a gdb remote serial protocol connection, an especially fragile time. Differential Revision: https://reviews.llvm.org/D108888
-
Jason Molenda authored
-
Fangrui Song authored
Buffered diagnostics need ENABLE_VIRTUAL_TERMINAL_PROCESSING after D87272. Do it unconditionally like FileCheck.
-