- Feb 11, 2021
-
-
Raphael Isemann authored
This used to be a LLDB_LOGF call that used the printf %s syntax. 0ab109d4 changed it to LLDB_LOG but didn't update this format string to use formatv's syntax so this just printed '%s'.
-
Thomas Preud'homme authored
As for SETCC, use a less expensive condition code when generating STRICT_FSETCC if the node is known not to have Nan. Reviewed By: SjoerdMeijer Differential Revision: https://reviews.llvm.org/D91972
-
Andy Wingo authored
This commit regroups commonalities among InputGlobal, InputEvent, and InputTable into the new InputElement. The subclasses are defined inline in the new InputElement.h. NFC. Reviewed By: sbc100 Differential Revision: https://reviews.llvm.org/D94677
-
Joe Ellis authored
This commit moves a line in SelectionDAGBuilder::handleDebugValue to avoid implicitly casting a TypeSize object to an unsigned earlier than necessary. It was possible that we bail out of the loop before the value is ever used, which means we could create a superfluous TypeSize warning. Reviewed By: DavidTruby Differential Revision: https://reviews.llvm.org/D96423
-
Alex Zinenko authored
ModuleTranslation contains multiple fields that keep track of the mappings between various MLIR and LLVM IR components. The original ModuleTranslation extension model was based on inheritance, with these fields being protected and thus accessible in the ModuleTranslation and derived classes. The inheritance-based model doesn't scale to translation of more than one derived dialect and will be progressively replaced with a more flexible one based on dialect interfaces and a translation state that is separate from ModuleTranslation. This change prepares the replacement by making the mappings private and providing public methods to access them. Depends On D96436 Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D96437
-
Alex Zinenko authored
Historically, JitRunner has been registering all available dialects with the context and depending on them without the real need. Make it take a registry that contains only the dialects that are expected in the input and stop linking in all dialects. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D96436
-
Valeriy Savchenko authored
Before this commit, expression statements could not be annotated with statement attributes. Whenever parser found attribute, it unconditionally assumed that it was followed by a declaration. This not only doesn't allow expression attributes to have attributes, but also produces spurious error diagnostics. In order to maintain all previously compiled code, we still assume that GNU attributes are followed by declarations unless ALL of those are statement attributes. And even in this case we are not forcing the parser to think that it should parse a statement, but rather let it proceed as if no attributes were found. Differential Revision: https://reviews.llvm.org/D93630
-
Pavel Labath authored
Our test configuration logic assumes that the tests can be run either with debugserver or with lldb-server. This is not entirely correct, since lldb server has two "personalities" (platform server and debug server) and debugserver is only a replacement for the latter. A consequence of this is that it's not possible to test the platform behavior of lldb-server on macos, as it is not possible to get a hold of the lldb-server binary. One solution to that would be to duplicate the server configuration logic to be able to specify both executables. However, that seems excessively redundant. A well-behaved lldb should be able to find the debug server on its own, and testing lldb with a different (lldb-|debug)server does not seem very useful (even in the out-of-tree debugserver setup, we copy the server into the build tree to make it appear "real"). Therefore, this patch deletes the configuration altogether and changes the low-level server retrieval functions to be able to both lldb-server and debugserver paths. They do this by consulting the "support executable" directory of the lldb under test. Differential Revision: https://reviews.llvm.org/D96202
-
Simon Tatham authored
In the tablegen architecture definition, the Name field for the ARMv87a record read "ARMv86a". All the other records contain their own names. Corrected it to "ARMv87a", and added the necessary value in ARMArchEnum for that to refer to. Reviewed By: pratlucas Differential Revision: https://reviews.llvm.org/D96493
-
Sven van Haastregt authored
Various get_image builtin function declarations did not have the const attribute. Bring the const attributes of `-fdeclare-opencl-builtins` more in sync with `opencl-c.h`.
-
Max Kazantsev authored
The patch did not account for one corner case where cmp does not dominate the loop latch. This patch adds this check, hopefully it's cheap because the CFG does not change during the transform, so DT queries should be executed quickly. If you see compile time slowness from this, please revert. Differential Revision: https://reviews.llvm.org/D96119
-
Nico Weber authored
-
Max Kazantsev authored
-
Aaron Ballman authored
The swift_bridge attribute warns when the attribute is applied multiple times to the same declaration. However, it warns about the arguments being different to the attribute without ever checking if the arguments actually are different. If the arguments are different, diagnose, otherwise silently accept the code. Either way, drop the duplicated attribute.
-
David Green authored
This changes which of the getScalarizationOverhead overloads is used in the gather/scatter cost to use the base variant directly, not relying on the version using heuristics on the number of args with no args provided. It should still produce the same costs for scalarized gathers/scatters.
-
James Henderson authored
The '%dexter_regression_test' substitution was missing quotes around the python executable, unlike other substitutions of a similar nature in the file. This changes fixes the issue. Differential Revision: https://reviews.llvm.org/D96420 Reviewed by: jmorse, aganea
-
Andrzej Warzynski authored
This patch just addresses one of the outstanding TODOs. More specifically, it moves all the outstanding standard macro predefinitions from `SetDefaultFortranOpts` to `setDefaultPredefinitions`. This dedicated method for standard macro predefs was introduced in: * https://reviews.llvm.org/D96032
-
Carl Ritson authored
Move implementation of kill intrinsics to WQM pass. Add live lane tracking by updating a stored exec mask when lanes are killed. Use live lane tracking to enable early termination of shader at any point in control flow. Reviewed By: piotr Differential Revision: https://reviews.llvm.org/D94746
-
Sander de Smalen authored
This patch migrates cost values and arithmetic to work on InstructionCost. When the interfaces to TargetTransformInfo are changed, any InstructionCost state will propagate naturally. See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D96030
-
Max Kazantsev authored
This reverts commit 3d15b7e7. We've found an internal failure, need to analyze.
-
David Green authored
With t2DoLoopDec we can be left with some extra MOV's in the preheaders of tail predicated loops. This removes them, in the same way we remove other dead variables. Differential Revision: https://reviews.llvm.org/D91857
-
Haojian Wu authored
Fix https://github.com/clangd/clangd/issues/675 Differential Revision: https://reviews.llvm.org/D96262
-
Sam McCall authored
Today, inside a template, you can get completion for: Foo<T> t; t.^ t has dependent type Foo<T>, and we use the primary template to find its members. However we also want this to work: t.foo.bar().^ The type of t.foo.bar() is DependentTy, so we attempt to resolve using similar heuristics (e.g. primary template). Differential Revision: https://reviews.llvm.org/D96376
-
Raphael Isemann authored
Since the new pass manager has been enabled by default these tests had their -O1 variations failing due to the tested functions being inlined. This just adds no_inline to the respective code similar to what we did in other tests (e.g. aa56b300 ).
-
Sven van Haastregt authored
Add the builtin functions brought by the cl_khr_subgroup_extended_types extension to `-fdeclare-opencl-builtins`. Differential Revision: https://reviews.llvm.org/D96279
-
Sander de Smalen authored
This will be needed in the loop-vectorizer where the minimum VF requested may be a scalable VF. getMinimumVF now takes an additional operand 'IsScalableVF' that indicates whether a scalable VF is required. Reviewed By: kparzysz, rampitec Differential Revision: https://reviews.llvm.org/D96020
-
Stephan Herhut authored
With the standard dialect being split up, the set of dialects that are used when converting to GPU is growing. This change modifies the SCFToGpu pass to allow all operations inside launch bodies. Differential Revision: https://reviews.llvm.org/D96480
-
Markus Lavin authored
Need to take endianness into account when doing vector to scalar casts such as %bc = bitcast <8 x i1> %v to i8 Companion commit for https://reviews.llvm.org/D94867 Upload in response to https://lists.llvm.org/pipermail/llvm-dev/2021-January/147862.html Attempting to document the actual memory layout rules for vectors in https://reviews.llvm.org/D94964 Differential Revision: https://reviews.llvm.org/D94765
-
David Green authored
We were storing predicate registers, such as a <8 x i1>, in the opposite order to how the rest of llvm expects. This actually turns out to be correct for the one place that usually uses it - the ScalarizeMaskedMemIntrin pass, but only because the pass was incorrect itself. This fixes the order so that bits are stored in the opposite order and bitcasts work as expected. This allows the Scalarization pass to be fixed, as in https://reviews.llvm.org/D94765. Differential Revision: https://reviews.llvm.org/D94867
-
Haojian Wu authored
The EndLoc of a type loc can be invalid for broken code. Also extend the existing test to support error code with `error-ok` annotation. Differential Revision: https://reviews.llvm.org/D96261
-
Haojian Wu authored
-
Sander de Smalen authored
This patch is NFC and changes occurrences of `unsigned Width` and `unsigned i` to work on type ElementCount instead. This patch is a preparatory patch with the ultimate goal of making `computeMaxVF()` return both a max fixed VF and a max scalable VF, so that `selectVectorizationFactor()` can pick the most cost-effective vectorization factor. Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D96019
-
Haojian Wu authored
It is useful for syntax-tree developement. Reviewed By: kbobyrev Differential Revision: https://reviews.llvm.org/D96017
-
Sander de Smalen authored
This patch fixes an issue in the implementation of DUP/CPY where certain immediates were not accepted. Immediates should be interpreted as a two's complement encoding of a value that fits the number of bits of the element type. mov z0.b, p0/z, #127 <=> mov z0.b, p0/z, #-129 <=> mov z0.b, p0/z, #0xffffffffffffff7f This behaviour is in line with the GNU assembler. Reviewed By: c-rhodes Differential Revision: https://reviews.llvm.org/D94776 -
Hanhan Wang authored
The dimension order of a filter in tensorflow is [filter_height, filter_width, in_channels, out_channels], which is different from current definition. The current definition follows TOSA spec. Add TF version conv ops to .tc, so we do not have to insert a transpose op around a conv op. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D96038
-
Arthur Eubanks authored
Some parameters were already part of the Config passed in.
-
Sanjoy Das authored
This should have gone in with a76761cf.
-
Sanjoy Das authored
- Remove leftover comment from de2568aa - Fix a typo in a comment
-
Max Kazantsev authored
Function `replaceMathCmpWithIntrinsic` artificially limits the scope of the optimization, setting a requirement of two instructions be in the same block, due to two reasons: - usage of DT for more general check is costly in terms of compile time; - risk of creating a new value that lives through multiple blocks. Because of this, two semantically equivalent tests may be or not be the subject of this opt depending on where the binary operation is located. See `test/CodeGen/X86/usub_inc_iv.ll` for motivation There is one important particular case where this limitation is too strict: it is when the binary operation is the increment of the induction variable. As result, the application of this opt becomes fragile and highly reliant on where other passes decide to place IV increment. In most cases, they place it in the end of the latch block, killing the opt opportunity (when in fact it does not matter where to insert the actual instruction). This patch handles this particular case separately. - The detector does not use dom tree and has constant cost; - The value of IV or IV.next lives through all loop in any case, so this should not create a new unexpected long-living value. As result, the transform becomes more robust. It also seems to lead to better code generation in some cases (see `test/CodeGen/X86/lsr-loop-exit-cond.ll`). Differential Revision: https://reviews.llvm.org/D96119 Reviewed By: spatel, reames
-
Max Kazantsev authored
-