- Nov 04, 2020
-
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Roman Lebedev authored
This is slightly better compile-time wise, since we avoid potentially-costly knownbits analysis that will ultimately not allow us to actually do anything with said `add`.
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D90755
-
Frederik Gossen authored
Relands - [MLIR] Support walks over regions and blocks (dbae3d50) - [MLIR] Use llvm::is_one_of in walk templates (56299b1e) Differential Revision: https://reviews.llvm.org/D90753 -
Clement Courbet authored
Add missing header. ``` ../../llvm/tools/llvm-exegesis/lib/X86/Target.cpp(606,14): error: use of undeclared identifier '__readeflags' Eflags = __readeflags(); ``` -
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Nico Weber authored
-
Simon Moll authored
`+vpu` controls whether VEISelLowering adds any vregs. This defaults to `-vpu` to have scalar code generation out of the box. We bring up vector isel under the `+vpu` flag. Once vector isel is stable we switch to `+vpu` and advertise vregs and vops in TTI. Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D90465
-
Kerry McLaughlin authored
This patch uses the existing LowerFixedLengthReductionToSVE function to also lower scalable vector reductions. A separate function has been added to lower VECREDUCE_AND & VECREDUCE_OR operations with predicate types using ptest. Lowering scalable floating-point reductions will be addressed in a follow up patch, for now these will hit the assertion added to expandVecReduce() in TargetLowering. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D89382
-
Nicolas Vasilache authored
For instance: ``` func @for_yields_3(%lb : index, %ub : index, %step : index) -> (i32, i32, i32) { %a = call @make_i32() : () -> (i32) %b = call @make_i32() : () -> (i32) %r:3 = scf.for %i = %lb to %ub step %step iter_args(%0 = %a, %1 = %a, %2 = %b) -> (i32, i32, i32) { %c = call @make_i32() : () -> (i32) scf.yield %0, %c, %2 : i32, i32, i32 } return %r#0, %r#1, %r#2 : i32, i32, i32 } ``` Canonicalizes as: ``` func @for_yields_3(%arg0: index, %arg1: index, %arg2: index) -> (i32, i32, i32) { %0 = call @make_i32() : () -> i32 %1 = call @make_i32() : () -> i32 %2 = scf.for %arg3 = %arg0 to %arg1 step %arg2 iter_args(%arg4 = %0) -> (i32) { %3 = call @make_i32() : () -> i32 scf.yield %3 : i32 } return %0, %2, %1 : i32, i32, i32 } ``` Differential Revision: https://reviews.llvm.org/D90745 -
Simon Pilgrim authored
[DAG] computeKnownBits - Replace ISD::MUL handling with the common KnownBits::computeForMul implementation
-
Jon Chesterfield authored
-
Sebastian Neubauer authored
Before they were only set for compute kernels and compute shaders but not for other shaders. Differential Revision: https://reviews.llvm.org/D89399
-
Sebastian Neubauer authored
Previously, the default value for ieee mode was - on for compute kernels and compute shaders, - off for all shaders except compute shaders. This commit changes the default to be - on for compute kernels, - off for shaders. This aligns the default value with the settings that are actually in use. To my knowledge, all users of shader calling conventions (mesa and llpc) disable the ieee mode by default. Differential Revision: https://reviews.llvm.org/D89388
-
Vitaly Buka authored
Unrelated system warnings may confuse "check 0"
-
Andrzej Warzynski authored
Failing buildbot: http://lab.llvm.org:8011/#/builders/33/builds/478 Patch that introduced the breaking change: https://reviews.llvm.org/D90667
-
Stefan Gränitz authored
Oneshot temporary labels for declaring function size can be omitted. Follow-up from D90331. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D90676
-
Qiu Chaofan authored
Since glibc has supported math library functions conforming IEEE 128-bit floating point types on some platform (like ppc64le), we can fix clang's math builtins missing this type. Reviewed By: bkramer Differential Revision: https://reviews.llvm.org/D90593
-
Clement Courbet authored
This is needed to benchmark instruction that touch EFLAGS (e.g. STD: set direction flag). Differential Revision: https://reviews.llvm.org/D90742
-
Kadir Cetinkaya authored
This will enable some fragments to apply their features selectively. Depends on D90270. Differential Revision: https://reviews.llvm.org/D90455
-
Pavel Labath authored
This class and it's surroundings contain a lot of shady code, but as far as I can tell all of that code is unreachable (there is no code actually setting the value to eValueTypeVector). According to history this class was introduced in 2012 in r167033/0665a0f0. At that time, the code seemed to serve some purpose, and it had two entry points (in Value::SetContext and ClangExpressionDeclMap::LookupDecl). The first entry point was deleted in D17897 and the second one in r179842/44342735. The stated purpose of the patch introducing this class was to fix TestRegisters.py, and "expr $xmm0" in particular. Both of these things function perfectly well these days without this class.
-
Vitaly Buka authored
-
Clement Courbet authored
-
David Green authored
-
Vitaly Buka authored
Warning should be fixed with d48f2d7c
-
Vy Nguyen authored
Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D90720
-
Sander de Smalen authored
This patch replaces the AArch64StackOffset class by the generic one defined in TypeSize.h. Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D88983
-
Clement Courbet authored
The X86 exegesis target is never executed run on non-X86 hosts, disable X86 instrinsic code on non-X86 targets. This reverts commit 8cfc8721.
-
Alex Zinenko authored
When the "after" region of a WhileOp is merely forwarding its arguments back to the "before" region, i.e. WhileOp is a canonical do-while loop, a simpler CFG subgraph that omits the "after" region with its extra branch operation can be produced. Loop rotation from general "while" to "if { do-while }" is left for a future canonicalization pattern when it becomes necessary. Differential Revision: https://reviews.llvm.org/D90604 -
Alex Zinenko authored
The lowering is a straightforward inlining of the "before" and "after" regions connected by (conditional) branches. This plugs the WhileOp into the progressive lowering scheme. Future commits may choose to target WhileOp instead of CFG when lowering ForOp. Differential Revision: https://reviews.llvm.org/D90603
-
Alex Zinenko authored
The new construct represents a generic loop with two regions: one executed before the loop condition is verifier and another after that. This construct can be used to express both a "while" loop and a "do-while" loop, depending on where the main payload is located. It is intended as an intermediate abstraction for lowering, which will be added later. This form is relatively easy to target from higher-level abstractions and supports transformations such as loop rotation and LICM. Differential Revision: https://reviews.llvm.org/D90255
-
Nathan Ridge authored
This is needed to implement call hierarchy. Differential Revision: https://reviews.llvm.org/D89670
-
Praveen G authored
Add the semantic checks for the OpenMP 4.5 - 2.15.4.1 copyin clause. Resolve OpenMPThreadprivate directive since the list of items specified in copyin clause should be threadprivate. Test cases : omp-copyin01.f90, omp-copyin02.f90, omp-copyin03.f90, omp-copyin04.f90, omp-copyin05.f90 Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D89385 -
Fangrui Song authored
This functions appear to be unused for many years.
-
Clement Courbet authored
Still issues on some architectures. This reverts commit fd13d7ce.
-
Clement Courbet authored
Use `__builtin_ia32_fxsave64` under __GNUC__, (_fxsave64) does not exist in old versions of gcc (pre-9.1). This reverts commit e128f9ca.
-
Stella Laurenzo authored
* All functions that return an Operation now return an OpView. * All functions that accept an Operation now accept an _OperationBase, which both Operation and OpView extend and can resolve to the backing Operation. * Moves user-facing instance methods from Operation -> _OperationBase so that both can have the same API. * Concretely, this means that if there are custom op classes defined (i.e. in Python), any iteration or creation will return the appropriate instance (i.e. if you get/create an std.addf, you will get an instance of the mlir.dialects.std.AddFOp class, getting full access to any custom API it exposes). * Refactors all __eq__ methods after realizing the proper way to do this for _OperationBase. Differential Revision: https://reviews.llvm.org/D90584
-
Stella Laurenzo authored
* For C, this needs to be inline static like the others. Differential Revision: https://reviews.llvm.org/D90740
-