- Feb 10, 2021
-
-
Jan Svoboda authored
Some Windows build bots report `FileSystemOpts` and `MigratorOpts` as undeclared. This fix renames the parameter and declares a local variable with the original name.
-
Jan Svoboda authored
This patch splits out the last two option groups (`Filesystem` and `Migrator`) into their own `Parse`/`Generate` functions. This effectively removes the need for `parseSimpleArgs` and marshalling block in `CompilerInvocation::generateCC1CommandLine`. The two new `Parse`/`Generate` functions are not part of the round-trip, because they contain no custom code and the very next patch starts round-tripping the whole `CompilerInvocation`. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D96278
-
Jan Svoboda authored
This patch implements generation of remaining diagnostic options and tests it by performing parse-generate-parse round trip. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D96274
-
Jan Svoboda authored
This patch implements generation of remaining dependency output options and tests it by performing parse-generate-parse round trip. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D96273
-
Alex Zinenko authored
MLIRContext allows its users to access directly to the DialectRegistry it contains. While sometimes useful for registering additional dialects on an already existing context, this breaks the encapsulation by essentially giving raw accesses to a part of the context's internal state. Remove this mutable access and instead provide a method to append a given DialectRegistry to the one already contained in the context. Also provide a shortcut mechanism to construct a context from an already existing registry, which seems to be a common use case in the wild. Keep read-only access to the registry contained in the context in case it needs to be copied or used for constructing another context. With this change, DialectRegistry is no longer concerned with loading the dialects and deciding whether to invoke delayed interface registration. Loading is concentrated in the MLIRContext, and the functionality of the registry better reflects its name. Depends...
-
Alex Zinenko authored
This introduces a mechanism to register interfaces for a dialect without making the dialect itself depend on the interface. The registration request happens on DialectRegistry and, if the dialect has not been loaded yet, the actual registration is delayed until the dialect is loaded. It requires DialectRegistry to become aware of the context that contains it and the context to expose methods for querying if a dialect is loaded. This mechanism will enable a simple extension mechanism for dialects that can have interfaces defined outside of the dialect code. It is particularly helpful for, e.g., translation to LLVM IR where we don't want the dialect itself to depend on LLVM IR libraries. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D96137
-
Fraser Cormack authored
This patch optimizes a build_vector "index sequence" and lowers it to the existing custom RISCVISD::VID node. This pattern is common in autovectorized code. The custom node was updated to allow it to be used by both scalable and fixed-length vectors, thus avoiding pattern duplication. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D96332
-
Jeremy Morse authored
Was e05c1038, reverted in d7d0b17d, see D95617 for details. I've added "arm64" to the XFail list (as well as aarch64), will follow up on the mailing list about whether there's anything else to be done.
-
Jan Svoboda authored
This patch implements generation of remaining target options and tests it by performing parse-generate-parse round trip. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D96158
-
Jan Svoboda authored
This patch implements generation of remaining preprocessor output options and tests it by performing parse-generate-parse round trip. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D96156
-
Simon Pilgrim authored
Revert rGe1172959 "[X86][AVX] canonicalizeLaneShuffleWithRepeatedOps - merge VPERMILPD ops with different low/high masks." Revert this while I investigate a downstream breakage report.
-
Faris Rehman authored
Add support for the following options: * -fopenmp * -fopenacc Update OpenMP and OpenACC semantics tests to use the new driver if it is built, otherwise use f18. OpenMP tests that include `use omp_lib` or run `test_symbols.sh` have not been updated as they require options `-intrinsic-module-directory` and `-funparse-with-symbols` which are currently not implemented in the new driver. Similarly OpenACC tests that run `test_symbols.sh` have not been updated. This patch also moves semanticsContext to CompilerInvocation and creates it in CompilerInvocation#setSemanticsOpts so that the semantics context can use Fortran::parser::Options#features. Summary of changes: - Move semanticsContext to CompilerInvocation.h - Update OpenMP and OpenACC semantics tests that do not rely on `-intrinsic-module-directory` and `-funparse-with-symbols` to use %flang Differential Revision: https://reviews.llvm.org/D96032
-
Sven van Haastregt authored
Add the builtin functions brought by the cl_khr_subgroup_clustered_reduce extension to `-fdeclare-opencl-builtins`.
-
Sven van Haastregt authored
Add the builtin functions brought by the cl_khr_subgroup_non_uniform_arithmetic extension to `-fdeclare-opencl-builtins`. Differential Revision: https://reviews.llvm.org/D95951
-
Sander de Smalen authored
This patch is NFC and changes occurrences of `unsigned MaxVectorSize` to work on type ElementCount. 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: kmclaughlin Differential Revision: https://reviews.llvm.org/D96018
-
Sander de Smalen authored
Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D96249
-
Sam Parker authored
Enable partial and runtime unrolling with a threshold of 30, which was derived from a large number of kernels running on node and wasmtime for amd64 and aarch64. Unrolling is enabled by default at -O2 and -O3 and is disabled at -Oz and -Os. Compiling with -Os is recommended if the wasm binary size is the most important factor. Differential Revision: https://reviews.llvm.org/D95125
-
Jessica Paquette authored
Similar to the case for G_ADD. There was a function in CTMark/pairlocalalign which was missing this case, causing GlobalISel to emit a add + csel when a csinc is all that is necessary. https://godbolt.org/z/ax69E9 Minor code size improvements on CTMark at -Os. Differential Revision: https://reviews.llvm.org/D96390
-
Artem Dergachev authored
This reverts commit 3500cc8d. This old commit was made over a completely false premise. OSSymbols aren't different from other OSObjects and we shouldn't treat them differently for the purposes of static analysis.
-
Tres Popp authored
Previously broadcast was a binary op. Now it can support more inputs. This has been changed in such a way that for now, this is an NFC for all broadcast operations that were previously legal. Differential Revision: https://reviews.llvm.org/D95777
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Michael Kruse authored
Even though it has some oddities, both pipelines should be as similar as possible. Also use report_fatal_error instead of assertions to ensure a proper failure in release builds for unsupported options. This finalizes the patch serious to make Polly run in the default configuration when using the NewPM by default.
-
Michael Kruse authored
In particular, print the ast with -debug-only=polly-ast, print a per-scop header with print<polly-ast> and force-add the analysis with -polly-code-generation=ast.
-
Michael Kruse authored
1. LegacyPM: Rename SimplifyLegacyPass to SimplifyWrapperPass. 2. LegacyPM: Complete create/init functions in LinkAllPasses.h 3. NewPM: Only invalidate non-Scop passes if changed. 4. NewPM: Add to default pass pipeline. 5. NewPM: Print -analyze header for each print<polly-simplify>
-
Michael Kruse authored
-
Michael Kruse authored
TargetTransformInfo is required by IslScheduleOptimizer, as ScopPass. Unfortunately it is not possible to get arbitrary larger-unit analyses in for as ScopPass. Loop passes also already use TargetTransformInfo as LoopStandardAnalysisResults, hence wei might expect it to be available to Scop passes as well.
-
Michael Kruse authored
The pass-instrumentation pass is implicitly execute by the NewPM whenever a new analysis runs. Not registering it will cause the crash whenever a scop pass requests an analysis. For instance this is the case for the IstAstAnalysis requesting the DependenceAnalsis result.
-
Michael Kruse authored
-
Michael Kruse authored
-
Michael Kruse authored
-
Ta-Wei Tu authored
glibc deprecates `mallinfo` in the latest version of 2.33. This patch replaces the usage of `mallinfo` with the new `mallinfo2` when it's available. Reviewed By: lattner Differential Revision: https://reviews.llvm.org/D96359
-
Max Kazantsev authored
They are analogous to the existing tests, but use different starting offset which can be important for some transforms.
-
Timm Bäder authored
Since ToolChain::GetCXXStdlibType() is a simple getter that might emit the "invalid library name in argument" warning, it can conceivably be called several times while initializing the build pipeline. Before this patch, a simple 'clang++ -stdlib=foo ./test.cpp' would print the warning twice, -rt=lib=foo would print 6 times. Change this and always only print the warning once. Keep the rest of the semantics of the functions. Differential Revision: https://reviews.llvm.org/D95915
-
Uday Bondhugula authored
Fix build warnings from VectorTransforms.cpp.
-
Uday Bondhugula authored
Update affine.for loop unroll utility for iteration arguments support. Fix promoteIfSingleIteration as well. Fixes PR49084: https://bugs.llvm.org/show_bug.cgi?id=49084 Differential Revision: https://reviews.llvm.org/D96383
-
Christopher Di Bella authored
Implements parts of: - P0898R3 Standard Library Concepts - P1754 Rename concepts to standard_case for C++20, while we still can Differential Revision: https://reviews.llvm.org/D77961 -
Yang Fan authored
-
Todd Lipcon authored
Reviewed By: dberris Differential Revision: https://reviews.llvm.org/D96384
-