- Jul 29, 2020
-
-
Valentin Clement authored
Add wrapper classes to to access record's fields. This makes it easier to pass record information to the diverse functions for code generation. Reviewed By: jdenny Differential Revision: https://reviews.llvm.org/D84612
-
Thomas Lively authored
Rather than expanding truncating stores so that vectors are stored one lane at a time, lower them to a sequence of instructions using narrowing operations instead, when possible. Since the narrowing operations have saturating semantics, but truncating stores require truncation, mask the stored value to manually truncate it before narrowing. Also, since narrowing is a binary operation, pass in the original vector as the unused second argument. Differential Revision: https://reviews.llvm.org/D84377
-
Matt Arsenault authored
GlobalISel let through a call to null, which would then fold into the source operand like any other inline immediate. The SelectionDAG lowering deletes calls to null and undef as a workaround from before calls were supported. We should probably drop the special handling case in the DAG lowering now, since the middle end optimizers delete null calls anyway.
-
Shilei Tian authored
Reviewed By: ye-luo Differential Revision: https://reviews.llvm.org/D84799
-
Joel E. Denny authored
This reverts commit 3c3faae4. It breaks a number of bots.
-
Joel E. Denny authored
This reverts commit 2cb926a4. It depends on 3c3faae4, which is being reverted.
-
Matt Arsenault authored
-
Matt Arsenault authored
This would stop on the first in reverse order, failing the verifier if there were more earlier in the block.
-
Shilei Tian authored
[NFC][OpenMP] Renamed all variable and function names in `target` to conform with LLVM code standard This patch only touched variables and functions in `target`. Reviewed By: ye-luo Differential Revision: https://reviews.llvm.org/D84797
-
Siva Chandra Reddy authored
-
Matt Arsenault authored
This needs an implicit def of the super-register in case one of the lanes isn't defined, similar to copyPhysReg (or the not-VGPR spill case below). This showed up in GlobalISel testing since it currently doesn't fold out many undef instructions.
-
Matt Arsenault authored
These should probably be inferred from the function on parse, but the target specific infrastructure currently does not give you a way to do this. SILowerSGPRSpills early exits without this reporting spills, which makes it difficult to write a MIR test for.
-
Kirill Bobyrev authored
Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D84697
-
Siva Chandra Reddy authored
This will fix the integration test which is failing currently.
-
Tim Keith authored
Move `ResolveAccParts` and `ResolveOmpParts` from resolve-names.cpp to resolve-directives.{h,cpp}. Move the implementation in the classes `DirectiveAttributeVisitor`, `AccAttributeVisitor`, and `OmpAttributeVisitor` to resolve-directives.cpp as well. To allow this to happen, move `EvaluateIntExpr` and introduce `EvaluateInt64` to resolve-names-utils.h. The latter is also useful elsewhere in resolve-names.cpp for converting an Expr to std::int64_t. The other problem was that `ResolveDesignator` was called from the code that was moved. At the moment it doesn't seem to be doing anything so I removed the calls (and no tests failed). If it proves to be needed, we can either resolve those designators in resolve-names.cpp or pass the `ResolveDesignator` function in to the code that needs to call it. Differential Revision: https://reviews.llvm.org/D84768 -
Siva Chandra Reddy authored
This class is currently used by two tools: HdrGen and PrototypeTestGen. We will be adding more tools based on this class so it is convenient to keep it in a util library of its own.
-
Christopher Ferris authored
This adds the code to support calling mallopt and converting the options to the internal Option enum. Reviewed By: cryptoad Differential Revision: https://reviews.llvm.org/D84806
-
cgyurgyik authored
-
cgyurgyik authored
Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D84575
-
Jonas Devlieghere authored
Differential revision: https://reviews.llvm.org/D84800
-
Joel E. Denny authored
Report captured variables in input dumps and traces. For example: ``` $ cat check CHECK: hello [[WHAT:[a-z]+]] CHECK: goodbye [[WHAT]] $ FileCheck -dump-input=always -vv check < input |& tail -8 <<<<<< 1: hello world check:1'0 ^~~~~~~~~~~ check:1'1 ^~~~~ captured var "WHAT" 2: goodbye world check:2'0 ^~~~~~~~~~~~~ check:2'1 with "WHAT" equal to "world" >>>>>> $ FileCheck -dump-input=never -vv check < input check2:1:8: remark: CHECK: expected string found in input CHECK: hello [[WHAT:[a-z]+]] ^ <stdin>:1:1: note: found here hello world ^~~~~~~~~~~ <stdin>:1:7: note: captured var "WHAT" hello world ^~~~~ check2:2:8: remark: CHECK: expected string found in input CHECK: goodbye [[WHAT]] ^ <stdin>:2:1: note: found here goodbye world ^~~~~~~~~~~~~ <stdin>:2:1: note: with "WHAT" equal to "world" goodbye world ^ ``` Reviewed By: thopre Differential Revision: https://reviews.llvm.org/D83651 -
Joel E. Denny authored
Substitutions are already reported in the diagnostics appearing before the input dump in the case of failed directives, and they're reported in traces (produced by `-vv -dump-input=never`) in the case of successful directives. However, those reports are not always convenient to view while investigating the input dump, so this patch adds the substitution report to the input dump too. For example: ``` $ cat check CHECK: hello [[WHAT:[a-z]+]] CHECK: [[VERB]] [[WHAT]] $ FileCheck -vv -DVERB=goodbye check < input |& tail -8 <<<<<< 1: hello world check:1 ^~~~~~~~~~~ 2: goodbye word check:2'0 X~~~~~~~~~~~ error: no match found check:2'1 with "VERB" equal to "goodbye" check:2'2 with "WHAT" equal to "world" >>>>>> ``` Without this patch, the location reported for a substitution for a directive match is the directive's full match range. This location is misleading as it implies the substitution itself matches that range. This patch changes the reported location to just the match range start to suggest the substitution is known at the start of the match. (As in the above example, input dumps don't mark any range for substitutions. The location info in that case simply identifies the right line for the annotation.) Reviewed By: mehdi_amini, thopre Differential Revision: https://reviews.llvm.org/D83650 -
Joel E. Denny authored
This patch implements OpenMP runtime support for the OpenMP TR8 `present` motion modifier for `omp target update` directives. The previous patch in this series implements Clang front end support. Reviewed By: grokos Differential Revision: https://reviews.llvm.org/D84712
-
Joel E. Denny authored
This patch implements Clang front end support for the OpenMP TR8 `present` motion modifier for `omp target update` directives. The next patch in this series implements OpenMP runtime support. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D84711
-
Joel E. Denny authored
`to` and `from` clauses take the same modifiers, which are called "motion modifiers" in TR8, so implement handling of their modifiers once not twice. This will make it easier to implement additional motion modifiers in the future. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D84710
-
Zahira Ammarguellat authored
To avoid having this flag be passed in per/file manner, we are instead passing it globally. This fixes this bug: https://bugs.llvm.org/show_bug.cgi?id=46733 Reviewed-by: aaron.ballman, beanz, meinersbur Differential Revision: https://reviews.llvm.org/D84038
-
Richard Smith authored
Only permit a placeholder type in a trailing-return-type if it would also have been permitted in the decl-specifier sequence of a corresponding declaration with no trailing-return-type. The standard doesn't actually say this, but this is the only thing that makes sense. Also fix handling of an 'auto' in a trailing-return-type in a parameter of a generic lambda. We used to crash if we saw such a thing.
-
Alina Sbirlea authored
Summary: Simplify ChildrenGetter to a simple wrapper around a GraphDiff call. GraphDiff already handles nullptr in children, so the special casing in clang can also be removed. Reviewers: kuhar, dblaikie Subscribers: llvm-commits, cfe-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D84713
-
Rahul Joshi authored
- Initiate the unit test with a test that tests variants of build() methods generated for ops with variadic operands and results. - The intent is to migrate unit .td tests in mlir/test/mlir-tblgen that check for generated C++ code to these unit tests which test both that the generated code compiles and also is functionally correct. Differential Revision: https://reviews.llvm.org/D84074
-
Johannes Doerfert authored
Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D84804
-
Varun Gandhi authored
Reviewed By: yln Differential Revision: https://reviews.llvm.org/D82808
-
Daniel Sanders authored
Reviewed By: aditya_nandakumar Differential Revision: https://reviews.llvm.org/D78388
-
Matt Arsenault authored
Fix not marking G_FENCE as legal on AMDGPU This was apparently defaulting to legal using the "legacy" rules, whatever those are.
-
Matt Arsenault authored
This allows sorting the legal/custom rules first as is recommended
-
Matt Arsenault authored
-
Matt Arsenault authored
-
JF Bastien authored
As requested in D79279. Differential Revision: https://reviews.llvm.org/D84666
-
Matt Arsenault authored
We can't fold the masked compare value through the select if the select condition is re-defed after the and instruction. Fixes a verifier error and trying to use the outgoing value defined in the block. I'm not sure why this pass is bothering to handle physregs. It's making this more complex and forces extra liveness computation.
-
Roman Lebedev authored
As briefly discussed in IRC with @craig.topper, the pass is disabled basically since it's original introduction (nov 2018) due to known correctness issues (miscompilations), and there hasn't been much work done to fix that. While i won't promise that i will "fix" the pass, i have looked at it previously, and i'm sure i won't try to fix it if that requires actually fixing this existing code. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D84775
-
Fangrui Song authored
This reverts commit ab73b6da.
-