- Jan 15, 2022
-
-
Peter Klausler authored
Internal writes to character arrays should not blank-fill records (elements) past the last one that was written to. Differential Revision: https://reviews.llvm.org/D117342
-
Owen Pan authored
See the style examples at: https://llvm.org/docs/CodingStandards.html#don-t-use-braces-on-simple-single-statement-bodies-of-if-else-loop-statements Differential Revision: https://reviews.llvm.org/D116316
-
James Y Knight authored
EHTerminateScope is used to implement C++ noexcept semantics. Per C++ [except.terminate], it is implemented-defined whether no, some, or all cleanups are run prior to terminatation. Therefore, the code to run cleanups on the way towards termination is unnecessary, and may be omitted. After this change, we will still run some cleanups: any cleanups in a function called from the noexcept function will continue to run, while those in the noexcept function itself will not. Differential Revision: https://reviews.llvm.org/D113620
-
James Y Knight authored
-
Heejin Ahn authored
In the process of rewriting `alloca`s and `phi`s that use them, the SROA pass can try to insert a non-PHI instruction by calling `getFirstInsertionPt()`, which is not possible in a catchswitch BB. This CL makes we bail out on these cases. Reviewed By: dschuff Differential Revision: https://reviews.llvm.org/D117168
-
Kostya Kortchinsky authored
In C++20 compound assignment to volatile (here `LocalData[I]++`) is deprecated, so `mutex_test.cpp` fails to compile. Simply changing it to `LocalData[I] = LocalData[I] + 1` fixes it. Differential Revision: https://reviews.llvm.org/D117359
-
Peter Klausler authored
After an ENDFILE statement, a WRITE is an error without a prior BACKSPACE. Also fix the return value for the case of formatted integer input with no input digits to be false (exposed by new test). Differential Revision: https://reviews.llvm.org/D117346
-
Bryce Wilson authored
This reverts commit 1f2cfc4f.
-
Vitaly Buka authored
Depends on D117274 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D117275
-
Muhammad Omair Javaid authored
TestIOHandlerPythonREPLSigint.py is running falky on AArch64/Linux buildbot failing randomly. Skipping it for AArch64/Linux as well.
-
Peter Klausler authored
Very old (pre-'77 standard) codes would use arrays initialized with Hollerith literals, typically in DATA, as modifiable formats. Differential Revision: https://reviews.llvm.org/D117344
-
Vladislav Khmelevsky authored
The DW_FORM_addr form of highPC address is written in absolute addres, the data form is written in offset-from-low pc format. Due to the large test binary the test is prepared separately in https://github.com/rafaelauler/bolt-tests/pull/8 Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei Reviewed By: ayermolo Differential Revision: https://reviews.llvm.org/D117217
-
Roman Lebedev authored
-
Aaron Puchert authored
This is consistent with the behavior of Doxygen, and allows users to write strings with C escapes or document input/output formats containing special characters (@ or \) without escaping them, which might be confusing. For example, if a function wants to document its expected input format as "user@host" it doesn't have to write user\@host instead, which would look right in the documentation but confusing in the code. Now users can just use double quotes (which they might do anyway). This fixes a lot of false positives of -Wdocumentation-unknown-command, but it could also fix issues with -Wdocumentation if the text triggers an actual command. Reviewed By: gribozavr2 Differential Revision: https://reviews.llvm.org/D116190
-
Aaron Puchert authored
Inspection of the first character can just be handled by the loop as well, it does exactly the same thing. Dereferencing the pointer a second time shouldn't be an issue: the middle end can eliminate that second read as it's separated from the first only by a pure function call. Reviewed By: gribozavr2 Differential Revision: https://reviews.llvm.org/D116186
-
Michael Jones authored
strdup needs either scudo enabled or fullbuild disabled, this properly adds the second condition Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D117138
-
Congzhe Cao authored
Currently loop interchange only supports loops with one inner loop induction variable. This patch adds support for transformation with more than one inner loop induction variables. The induction PHIs and induction increment instructions are moved/duplicated properly to the new outer header and the new outer latch, respectively. Reviewed By: bmahjour Differential Revision: https://reviews.llvm.org/D114917
-
Vitaly Buka authored
Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D117274
-
James Y Knight authored
-
Eugene Zhulenev authored
`getNumRegionInvocations` was originally added for the async reference counting, but turned out to be not useful, and currently is not used anywhere (couldn't find any uses in public github repos). Removing dead code. Reviewed By: Mogball, mehdi_amini Differential Revision: https://reviews.llvm.org/D117347
-
Fangrui Song authored
Tail merge is slow and of low value. With regular string deduplication, we can just use the return value of StringTableBuilder::add. There is no noticeable performance increase because without deduplication `__cstring` is quite small (7.6MiB for chromium_framework). Reviewed By: #lld-macho, Jez Ng Differential Revision: https://reviews.llvm.org/D117273
-
serge-sans-paille authored
Namely __builtin_alloca __builtin_alloca_with_align __builtin_call_with_static_chain __builtin_expect __builtin_expect_with_probablity __builtin_prefetch Differential Revision: https://reviews.llvm.org/D117296
-
Nadav Rotem authored
This commit optimizes the code sequence: icmp-XXX (ashr-exact (X, C_1), C_2). Instcombine already implements this optimization for sgt, and this patch adds support to additional predicates. The transformation is legal for all predicates if the 'exact' flag is set, and to SGE, UGE, SLT, ULT when the exact flag is not present. This pattern is found in the std::vector bounds checks code of the at() method. Alive2 proof: https://alive2.llvm.org/ce/z/JT_WL8 Differential Revision: https://reviews.llvm.org/D117252
-
Marek Kurdej authored
Fixes https://github.com/llvm/llvm-project/issues/24784. With config: ``` AllowShortFunctionsOnASingleLine: Inline NamespaceIndentation: All ``` The code: ``` namespace Test { void f() { return; } } ``` was incorrectly formatted to: ``` namespace Test { void f() { return; } } ``` since the function `f` was considered being inside a class/struct/record. That's because the check was simplistic and only checked for a non-zero indentation level of the line starting `f`. Reviewed By: MyDeveloperDay, HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D117142
-
Craig Topper authored
This seems to be a leftover from a long time ago when there was an ISD::VBIT_CONVERT and a MVT::Vector. It looks like in those days the vector type was carried in a VTSDNode. As far as I know, these days ComputeValueTypes would have already assigned "Result" the same type we're getting from TLI.getValueType here. Thus the BITCAST is always a NOP. Verified by adding an assert and running check-llvm. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D117335
-
Arthur O'Dwyer authored
Merge nasty_macros.h into the new test. Differential Revision: https://reviews.llvm.org/D116957
-
Marek Kurdej authored
[clang-format] Fix CompactNamespaces corner case when AllowShortLambdasOnASingleLine/BraceWrapping.BeforeLambdaBody are set In clang-format 12, `CompactNamespaces` misformatted the code when `AllowShortLambdasOnASingleLine` is set to false and `BraceWrapping.BeforeLambdaBody` is true. Input: ``` namespace out { namespace in { } } // namespace out::in ``` Expected output: ``` namespace out { namespace in { }} // namespace out::in ``` Output from v12: ``` namespace out { namespace in { } } // namespace out::in ``` Config triggering the issue: ``` --- AllowShortLambdasOnASingleLine: None BraceWrapping: BeforeLambdaBody : true BreakBeforeBraces: Custom CompactNamespaces: true ... ``` Seems there's a corner case when `AllowShortLambdasOnASingleLine` is false, and `BraceWrapping.BeforeLambdaBody` is true, that causes CompactNamespaces to stop working. The cause was a misannotation of `{` opening brace after `namespace` as a lambda opening brace. The regression was probably introduced with [this commit](https://github.com/llvm/llvm-project/commit/fa0118e6e588fe303b08e7e06ba28ac1f8d50c68). Originally contributed by Ahmed Mahdy (@aybassiouny). Thank you! Reviewed By: Wawha, HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D99031 -
Arthur O'Dwyer authored
Differential Revision: https://reviews.llvm.org/D117324
-
Arthur O'Dwyer authored
-
Arthur O'Dwyer authored
-
Bryce Wilson authored
Allocation functions should be marked with onlyAccessesInaccessibleMemory (when that is correct for the given function) which is checked elsewhere so this check is no longer needed. Differential Revision: https://reviews.llvm.org/D117180
-
Louis Dionne authored
-
Casey Carter authored
To silence modular build error https://reviews.llvm.org/harbormaster/unit/view/1854595/
-
fourdim authored
This patch supported the R_RISCV_BRANCH relocation. Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D116573
-
Ellis Hoag authored
Existing code tended to assume that counters had type `uint64_t` and computed size from the number of counters. Fix this code to directly compute the counters size in number of bytes where possible. When the number of counters is needed, use `__llvm_profile_counter_entry_size()` or `getCounterTypeSize()`. In a later diff these functions will depend on the profile mode. Change the meaning of `DataSize` and `CountersSize` to make them more clear. * `DataSize` (`CountersSize`) - the size of the data (counter) section in bytes. * `NumData` (`NumCounters`) - the number of data (counter) entries. Reviewed By: kyulee Differential Revision: https://reviews.llvm.org/D116179
-
Jessica Paquette authored
After e734e828, it is possible to end up in a situation where an `indirectbr` is fed by a cast, which is in turn fed by an operation which only produces integers. `indirectbr` expects a block address, however these operations can't produce that. There were several asserts in `computeValueKnownInPredecessorsImpl` which check that we're not looking for a block address if we're walking through something which can never produce one. Since it's now possible to hit these asserts, this changes them into actual checks which return false if `Preference` is not `WantInteger`. This adds a testcase which verifies that we don't crash anymore in these situations. Differential Revision: https://reviews.llvm.org/D99814
-
Mike Rice authored
Use ASTContext::getTypeDeclType() to get type of omp_interop_t since TypeDecl::getTypeForDecl() may return null if TypeForDecl is not setup yet. Handle functions where the function type is under an AttributedType. Differential Revision: https://reviews.llvm.org/D117172
-
V Donaldson authored
Add additional "CFI" types for Fortran REAL and COMPLEX kinds 2, 3, 10, 16 to allow their use in Fortran descriptors.
-
Florian Hahn authored
This reverts the revert commit 073c27b5. A reduced test case has been added in 5e4966cb and the code has been updated to handle the case where getInductionOpcode returns BinaryOpsEnd. In this case, the original code was always using Instruction::Add. Do the same in the patch. Note this commit may slightly change the value naming, because it now also assigns the 'induction' name in the floating point case.
-
Nadav Rotem authored
This commit adds new tests that check the patterns that D117252 will fix. As requested by @spatel. Differential Revision: https://reviews.llvm.org/D117338
-