- Jun 13, 2020
-
-
Louis Dionne authored
Instead of parsing the command each time prior to calling _executeScriptInternal, do it once inside _executeScriptInternal.
-
- Jun 12, 2020
-
-
Huihui Zhang authored
llvm/lib/Target/AArch64/AArch64SLSHardening.cpp:146:5: warning: suggest braces around initialization of subobject [-Wmissing-braces] "__llvm_slsblr_thunk_x0", "__llvm_slsblr_thunk_x1", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ { llvm/lib/Target/AArch64/AArch64SLSHardening.cpp:168:5: warning: suggest braces around initialization of subobject [-Wmissing-braces] AArch64::X0, AArch64::X1, AArch64::X2, AArch64::X3, AArch64::X4, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ { -
Adam Balogh authored
-
Louis Dionne authored
That test is already only enabled if LIBCXX_TEST_GDB_PRETTY_PRINTERS is enabled, which isn't the default. If someone turns on that option on Windows, they should be able to run the test and see whatever failure happens.
-
Jacques Pienaar authored
Summary: Add Adaptor alias alongside OperandAdaptor to make next renaming more mechanical. OperandAdaptor's are no longer just about operands. Considered OpAdaptor too, but then noticed we'd mostly end up with XOp::OpAdaptor which seems redundant. Differential Revision: https://reviews.llvm.org/D81741
-
Matt Arsenault authored
-
Louis Dionne authored
This allows running the scripts directly, without running them through Python.
-
Sam McCall authored
This was originally 658af943 and reverted in 665dbe91. The clang bug this triggered was fixed in 05ed3efc.
-
Raphael Isemann authored
-
Sam McCall authored
Summary: DelayedTemplateParsing is marked as BENIGN_LANGOPT, so we are allowed to use a delayed template in a non-delayed TU. (This is clangd's default configuration on windows: delayed-template-parsing is on for the preamble and forced off for the current file) However today clang fails to parse implicit instantiations in a non-dtp TU of templates defined in a dtp PCH file (and presumably module?). In this case the delayed parser is not registered, so the function is simply marked "delayed" again. We then hit an assert: end of TU template instantiation should not create more late-parsed templates Reviewers: rsmith Subscribers: ilya-biryukov, usaxena95, cfe-commits, kadircet Tags: #clang Differential Revision: https://reviews.llvm.org/D81474
-
Raphael Isemann authored
-
Kai Sasaki authored
Summary: Fix several typos in Toy tutorial chapters. - Chapter 2 - Chapter 5 Differential Revision: https://reviews.llvm.org/D80909
-
Masoud Ataei authored
DAGCombiner optimization for pow(x,0.75) and pow(x,0.25) on double and single precision even in case massv function is asked Here, I am proposing to add an special case for massv powf4/powd2 function (SIMD counterpart of powf/pow function in MASSV library) in MASSV pass to get later optimizations like conversion from pow(x,0.75) and pow(x,0.25) for double and single precision to sequence of sqrt's in the DAGCombiner in vector float case. My reason for doing this is: the optimized pow(x,0.75) and pow(x,0.25) for double and single precision to sequence of sqrt's is faster than powf4/powd2 on P8 and P9. In case MASSV functions is called, and if the exponent of pow is 0.75 or 0.25, we will get the sequence of sqrt's and if exponent is not 0.75 or 0.25 we will get the appropriate MASSV function. Reviewed By: steven.zhang Tags: #LLVM #PowerPC Differential Revision: https://reviews.llvm.org/D80744
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Jacques Pienaar authored
These ops have the same operands and result shapes. Differential Revision: https://reviews.llvm.org/D81664
-
Haojian Wu authored
-
Joel E. Denny authored
In TestRunner.py, D78589 extracts a `_parseKeywords` function from `parseIntegratedTestScript`, which then expects `_parseKeywords` to always return a list of keyword/value pairs. However, the extracted code sometimes returns an unresolved `lit.Test.Result` on a keyword parsing error, which then produces a stack dump instead of the expected diagnostic. This patch fixes that, makes the style of those diagnostics more consistent, and extends the lit test suite to cover them. Reviewed By: ldionne Differential Revision: https://reviews.llvm.org/D81665
-
Marco Elver authored
Refactor redzone size calculation. This will simplify changing the redzone size calculation in future. Note that AddressSanitizer.cpp violates the latest LLVM style guide in various ways due to capitalized function names. Only code related to the change here was changed to adhere to the style guide. No functional change intended. Reviewed By: andreyknvl Tags: #llvm Differential Revision: https://reviews.llvm.org/D81367
-
Haojian Wu authored
Reland https://reviews.llvm.org/D76696 All known crashes have been fixed, another attemption. We have rolled out this to all internal users for a while, didn't see big issues, we consider it is stable enough. Reviewed By: sammccall Subscribers: rsmith, hubert.reinterpretcast, ebevhan, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78350
-
Xing GUO authored
-
Kirstóf Umann authored
The thrilling conclusion to the barrage of patches I uploaded lately! This is a big milestone towards the goal set out in http://lists.llvm.org/pipermail/cfe-dev/2019-August/063070.html. I hope to accompany this with a patch where the a coreModeling package is added, from which package diagnostics aren't allowed either, is an implicit dependency of all checkers, and the core package for the first time can be safely disabled. Differential Revision: https://reviews.llvm.org/D78126
-
Erich Keane authored
As reported in PR46111, implicit instantiation of a deduction guide causes us to have an elaborated type as the parameter, rather than the dependent type. After review and feedback from @rsmith, this patch solves this problem by wrapping the value in an uninstantiated typedef/type-alias that is instantiated when required later. Differential Revision: https://reviews.llvm.org/D80743
-
Kirstóf Umann authored
Checker dependencies were added D54438 to solve a bug where the checker names were incorrectly registered, for example, InnerPointerChecker would incorrectly emit diagnostics under the name MallocChecker, or vice versa [1]. Since the system over the course of about a year matured, our expectations of what a role of a dependency and a dependent checker should be crystallized a bit more -- D77474 and its summary, as well as a variety of patches in the stack demonstrates how we try to keep dependencies to play a purely modeling role. In fact, D78126 outright forbids diagnostics under a dependency checkers name. These dependencies ensured the registration order and enabling only when all dependencies are satisfied. This was a very "strong" contract however, that doesn't fit the dependency added in D79420. As its summary suggests, this relation is directly in between diagnostics, not modeling -- we'd prefer a more specific warning over a general one. To support this, I added a new dependency kind, weak dependencies. These are not as strict of a contract, they only express a preference in registration order. If a weak dependency isn't satisfied, the checker may still be enabled, but if it is, checker registration, and transitively, checker callback evaluation order is ensured. If you are not familiar with the TableGen changes, a rather short description can be found in the summary of D75360. A lengthier one is in D58065. [1] https://www.youtube.com/watch?v=eqKeqHRAhQM Differential Revision: https://reviews.llvm.org/D80905
-
Simon Pilgrim authored
Noticed while trying to cleanup D66004 - if a shuffle operand came from a scalar, we're better off using INSERTPS vs UNPCKLPS as this is more likely to load fold later on. It also matches our existing BUILD_VECTOR lowering. We can extend this to other PINSRB/D/Q/W cases in the future as the need arises.
-
Frederik Gossen authored
Add `NoSideEffect` trait to `shape.to_extent_tensor` and `shape.from_extent_tensor` and defined custom assembly format for the operations. Differential Revision: https://reviews.llvm.org/D81158
-
Florian Hahn authored
This patch adds a new option to CriticalEdgeSplittingOptions to control whether loop-simplify form must be preserved. It is them used by GVN to indicate that loop-simplify form does not have to be preserved. This fixes a crash exposed by 189efe29. If the critical edge we are splitting goes from a block inside a loop to a block outside the loop, splitting the edge will create a new exit block. As a result, the new block will branch to the original exit block, which will add a non-loop predecessor, breaking loop-simplify form. To preserve loop-simplify form, the predecessor blocks of the original exit are split, but that does not work for blocks with indirectbr terminators. If preserving loop-simplify form is requested, bail out , before making any changes. Reviewers: reames, hfinkel, davide, efriedma Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D81582
-
Kirstóf Umann authored
Exactly what it says on the tin! "Strong" dependencies are mentioned in contrast to a new kind of dependency introduced in a followup patch. Differential Revision: https://reviews.llvm.org/D80901
-
Xing GUO authored
This patch addresses comments in [D81450](https://reviews.llvm.org/D81450#inline-748745) Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D81529
-
Alex Bradbury authored
[CodeGen] Increase applicability of ffine-grained-bitfield-accesses for targets with limited native integer widths As pointed out in PR45708, -ffine-grained-bitfield-accesses doesn't trigger in all cases you think it might for RISC-V. The logic in CGRecordLowering::accumulateBitFields checks OffsetInRecord is a legal integer according to the datalayout. RISC targets will typically only have the native width as a legal integer type so this check will fail for OffsetInRecord of 8 or 16 when you would expect the transformation is still worthwhile. This patch changes the logic to check for an OffsetInRecord of a at least 1 byte, that fits in a legal integer, and is a power of 2. We would prefer to query whether native load/store operations are available, but I don't believe that is possible. Differential Revision: https://reviews.llvm.org/D79155
-
Raphael Isemann authored
This file didn't build with enabled modules.
-
Florian Hahn authored
getOrCreateTripCount is used to generate code for the outer loop, but it requires a computable backedge taken counts. Check that in the VPlan native path. Reviewers: Ayal, gilr, rengolin, sguggill Reviewed By: sguggill Differential Revision: https://reviews.llvm.org/D81088
-
Sebastian Neubauer authored
Add G16 feature for GFX10 and support A16 and G16 in GlobalISel. Differential Revision: https://reviews.llvm.org/D76836
-
Georgii Rymar authored
`PubName` and `PubType` are optional fields since D80722. They are defined as: Optional<PubSection> PubNames; Optional<PubSection> PubTypes; And initialized in the following way: IO.mapOptional("debug_pubnames", DWARF.PubNames); IO.mapOptional("debug_pubtypes", DWARF.PubTypes); But problem is that because of the issue in `YAMLTraits.cpp`, when there are no `debug_pubnames`/`debug_pubtypes` keys in a YAML description, they are not initialized to `Optional::None` as the code expects, but they are initialized to default `PubSection()` instances. Because of this, the `if` condition in the following code is always true: if (Obj.DWARF.PubNames) Err = DWARFYAML::emitPubSection(OS, *Obj.DWARF.PubNames, Obj.IsLittleEndian); What means `emitPubSection` is always called and it writes few values. This patch fixes the issue. I've reduced `sizeofcmds` by size of data previously written because of this bug. Differential revision: https://reviews.llvm.org/D81686 -
Raphael Isemann authored
Summary: When we get an error back from IRForTarget we directly print that error to the debugger output stream instead of putting it in the result object. The result object only gets a vague "The expression could not be prepared to run in the target" error message that doesn't actually tell the user what went wrong. This patch just puts the IRForTarget errors into the status object that is returned to the caller instead of directly printing it to the debugger. Also updates one test that now can actually check for the error message it is supposed to check for (instead of the default error which is all we had before). Reviewers: JDevlieghere Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D81654
-
Chen Zheng authored
This is a NFC patch to make convertToImmediateForm a light wrapper for converting xform and imm form instructions on PowerPC. Reviewed By: Steven.zhang Differential Revision: https://reviews.llvm.org/D80907
-
Rainer Orth authored
I'm currently working to port `libc++` to Solaris. There exists a slightly bitrotten port already, which was done on Illumos, an OpenSolaris derivative. In order not to break that port with my work, I need to test the result on both Solaris and Illumos. While doing so, it turned out that Illumos `ld` doesn't support the `-z discard-sections=unused` option currently used on SunOS unconditionally. While there exists a patch <https://github.com/OpenIndiana/oi-userland/blob/oi/hipster/components/developer/clang-90/patches/02-cmake_modules_AddLLVM.cmake.patch> for LLVM 9.0 in the OpenIndiana repository, it apparently hasn't been submitted upstream and is completely wrong: it replaces `-z discard-sections=unused` with `-z ignore`. In terms of the equivalent `gld` options, this means replacing `--gc-sections` with `--as-needed`. This patch instead tests if the linker actually supports the option before using it. Tested on `amd64-pc-solaris2.11` (all of Solaris 11.4, 11.3 and OpenIndiana 2020.04). Differential Revision: https://reviews.llvm.org/D81545
-
Martin Boehme authored
Also invert the sense of the return value. As pointed out by the FIXME that this change resolves, isHidden() wasn't a very accurate name for this function. I haven't yet changed any of the strings that are output in ASTDumper.cpp / JSONNodeDumper.cpp / TextNodeDumper.cpp in response to whether isHidden() is set because a) I'm not sure whether it's actually desired to change these strings (would appreciate feedback on this), and b) In any case, I'd like to get this pure rename out of the way first, without any changes to tests. Changing the strings that are output in the various ...Dumper.cpp files will require changes to quite a few tests, and I'd like to make those in a separate change. Differential Revision: https://reviews.llvm.org/D81392 Reviewed By: rsmith
-
EgorBo authored
Summary: "X % C == 0" is optimized to "X & C-1 == 0" (where C is a power-of-two) However, "X % Y" can also be represented as "X - (X / Y) * Y" so if I rewrite the initial expression: "X - (X / C) * C == 0" it's not currently optimized to "X & C-1 == 0", see godbolt: https://godbolt.org/z/KzuXUj This is my first contribution to LLVM so I hope I didn't mess things up Reviewers: lebedev.ri, spatel Reviewed By: lebedev.ri Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79369
-
EgorBo authored
See https://reviews.llvm.org/D79369
-