- Jul 20, 2021
-
-
Johannes Doerfert authored
-
Bradley Smith authored
Instead move them to the instcombine that happens in AArch64TargetTransformInfo. Differential Revision: https://reviews.llvm.org/D106144
-
Florian Hahn authored
-
Florian Hahn authored
This patch adds a VPFirstOrderRecurrencePHIRecipe, to further untangle VPWidenPHIRecipe into distinct recipes for distinct use cases/lowering. See D104989 for a new recipe for reduction phis. This patch also introduces a new `FirstOrderRecurrenceSplice` VPInstruction opcode, which is used to make the forming of the vector recurrence value explicit in VPlan. This more accurately models def-uses in VPlan and also simplifies code-generation. Now, the vector recurrence values are created at the right place during VPlan-codegeneration, rather than during post-VPlan fixups. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D105008
-
Nico Weber authored
-
Jamie Schmeiser authored
Summary: Test and produce warning for subtracting a pointer from null or subtracting null from a pointer. This reland adds the functionality that the warning is no longer reusing an existing warning, it has different wording for C vs C++ to refect the fact that nullptr-nullptr has defined behaviour in C++, it is suppressed when the warning is triggered by a system header and adds -Wnull-pointer-subtraction to allow the warning to be controlled. -Wextra implies -Wnull-pointer-subtraction. Author: Jamie Schmeiser <schmeise@ca.ibm.com> Reviewed By: efriedma (Eli Friedman), nickdesaulniers (Nick Desaulniers) Differential Revision: https://reviews.llvm.org/D98798
-
Stefan Pintilie authored
Added a number of different builtins that exist in the XL compiler. Most of these builtins already exist in clang under a different name. Reviewed By: nemanjai, #powerpc Differential Revision: https://reviews.llvm.org/D104386
-
Stella Laurenzo authored
Appears to have a broken CMake installation. Reported bug: https://github.com/pybind/pybind11/issues/3136
-
David Green authored
-
Louis Dionne authored
-
Tobias Gysi authored
Bufferization handles all unknown ops conservative. The patch ensures accessing the dimension of an output tensor does not prevent in place bufferization. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D106356
-
Simon Pilgrim authored
We were using auto instead of auto* in a number of places which failed the llvm-qualified-auto check. Additionally we were using auto in some places where the type wasn't immediately obvious - the style guide rule of thumb is only to use auto from casts etc. where the type is already explicitly stated.
-
Simon Pilgrim authored
Cleanup the check prefixes to make refresh a lot easier
-
Sam McCall authored
This seems to be a more useful behavior for tools that use preambles. I believe it doesn't affect real compiles: the PCH is only included once when used, and recursive inclusion of the main-file *within* the PCH isn't supported in any case. Differential Revision: https://reviews.llvm.org/D106204
-
Haojian Wu authored
definitions-in-headers check.
-
Sam McCall authored
Fixes https://github.com/clangd/clangd/issues/377 Differential Revision: https://reviews.llvm.org/D106203
-
Sam McCall authored
A few different mechanisms here that will need some work to untangle: - self-include in a preamble being an error even if the file is ifdef-guarded - the is-include-guarded flag not being propagated from preamble to main ast - preambles containing the first half on an include guard discard that info For now just record current behavior. Relevant to: - https://github.com/clangd/clangd/issues/811 - https://github.com/clangd/clangd/issues/377 - https://github.com/clangd/clangd/issues/262 Differential Revision: https://reviews.llvm.org/D106201
-
LLVM GN Syncbot authored
-
Sebastian Neubauer authored
First, collect the register usage in each function, then apply the maximum register usage of all functions to functions with indirect calls. This is more accurate than guessing the maximum register usage without looking at the actual usage. As before, assume that indirect calls will hit a function in the current module. Differential Revision: https://reviews.llvm.org/D105839
-
Ulrich Weigand authored
Code in getCPUNameFromS390Model currently assumes that the numerical value of the model number always increases with future hardware. While this has happened to be the case with the last few machines, it is not guaranteed -- that assumption was violated with (much) older machines, and it can be violated again with future machines. Fix by explicitly listing model numbers for all supported machine models.
-
Timm Bäder authored
Differential Revision: https://reviews.llvm.org/D106271
-
Jan Svoboda authored
After a rebase, bc1a2979 accidentally changed `shouldIgnoreFile(Filename)` to incorrect `IgnoredFiles.count(Filename)`. This avoided using native filenames, which the patch intended to solve in the first place. Failing Windows builds: * https://lab.llvm.org/buildbot#builders/123/builds/5147 * https://lab.llvm.org/buildbot#builders/86/builds/17177
-
Jay Foad authored
This test case shows the scheduler wrongly reordering two buffer accesses that might alias.
-
Jeremy Morse authored
This patch fixes a clearly-broken function that I absent-mindedly bodged many months ago. Over in D85749 I landed the substituteDebugValuesForInst, that creates substitution records for all the def operands from one debug-labelled instruction to the new one. Unfortunately it would crash if the two instructions had different numbers of operands; I tried to fix this in 537f0fbe by adding a "max operand" parameter to the method, but then didn't actually change the loop bound to take account of this. It passed all the tests because.... well there wasn't any real test coverage of this method. This patch fixes up the loop to be bounded by the MaxOperand bound; and adds test coverage for the x86-fixup-LEAs calls to this method, so that it's actually tested. Differential Revision: https://reviews.llvm.org/D105820
-
Nico Weber authored
-
Chen Zheng authored
-
Jan Svoboda authored
This patch avoid minimizing input files that contributed to a PCH or its modules. This prevents the implicit modular build to fail on unexpected file size. Depends on D106146. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D104536
-
Jan Svoboda authored
This patch separates the local and global caches of `DependencyScanningFilesystem` into two buckets: minimized files and original files. This is necessary to deal with precompiled modules/headers. Consider a single worker with its instance of filesystem: 1. Build system uses the worker to scan dependencies of module A => filesystem cache gets populated with minimized input files. 2. Build system uses the results to explicitly build module A => explicitly built module captures the state of the real filesystem (containing non-minimized input files). 3. Build system uses the prebuilt module A as an explicit precompiled dependency for another compile job B. 4. Build system uses the same worker to scan dependencies for job B => worker uses implicit modular build to discover dependencies, which validates the filesystem state embedded in the prebuilt module (non-minimized files) to the current view of the filesystem (minimized files), resulting in validation failures. This problem can be avoided in step 4 by collecting input files from the precompiled module and marking them as "ignored" in the minimizing filesystem. This way, the validation should succeed, since we should be always dealing with the original (non-minized) input files. However, the filesystem already minimized the input files in step 1 and put it in the cache, which gets used in step 4 as well even though it's marked ignored (do not minimize). This patch essentially fixes this oversight by making the `"file is minimized"` part of the cache key (from high level). Depends on D106064. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D106146
-
Stanislav Mekhanoshin authored
Apparently these need external LDS symbols to remain. Fixes: SC1-3279 Differential Revision: https://reviews.llvm.org/D106288
-
Dawid Jurczak authored
After this change DSE can eliminate malloc + memset and emit calloc. It's https://reviews.llvm.org/D101440 follow-up. Differential Revision: https://reviews.llvm.org/D103009
-
Florian Mayer authored
This reverts commit e9c63ed1.
-
Jan Svoboda authored
This patch normalizes filenames in `DependencyScanningWorkerFilesystem` so that lookup of ignored files works correctly on Windows (where `/` and `\` are equivalent). Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D106064
-
Florian Mayer authored
Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D106259
-
Kai Luo authored
Fixed build errors on other platforms.
-
Florian Mayer authored
Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D106159
-
Florian Mayer authored
This avoids unnecessary instrumentation. Reviewed By: eugenis, vitalybuka Differential Revision: https://reviews.llvm.org/D105703
-
Sander de Smalen authored
Replace last{a,b}(splat(X)) with X, irrespective of the predicate. Patch by/Committing on behalf of: Usman Nadeem (mnadeem) Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D105520 -
Benjamin Kramer authored
-
Cullen Rhodes authored
This patch adds the new system registers introduced in SME: - ID_AA64SMFR0_EL1 (ro) SME feature identifier. - SMCR_ELx (r/w) streaming mode control register for configuring effective SVE Streaming SVE Vector length when the PE is in Streaming SVE mode. - SVCR (r/w) streaming vector control register, visible at all exception levels. Provides access to PSTATE.SM and PSTATE.ZA using MSR and MRS instructions. - SMPRI_EL1 (r/w) streaming mode execution priority register. - SMPRIMAP_EL2 (r/w) streaming mode priority mapping register. - SMIDR_EL1 (ro) streaming mode identification register. - TPIDR2_EL0 (r/w) for use by SME software to manage per-thread SME context. - MPAMSM_EL1 (r/w) MPAM (v8.4) streaming mode register, for labelling memory accesses performed in streaming mode. Also added in this patch are the SME mode change instructions. Three MSR immediate instructions are implemented to set or clear PSTATE.SM, PSTATE.ZA, or both respectively: - MSR SVCRSM, #<imm1> - MSR SVCRZA, #<imm1> - MSR SVCRSMZA, #<imm1> The following smstart/smstop aliases are also implemented for convenience: smstart -> MSR SVCRSMZA, #1 smstart sm -> MSR SVCRSM, #1 smstart za -> MSR SVCRZA, #1 smstop -> MSR SVCRSMZA, #0 smstop sm -> MSR SVCRSM, #0 smstop za -> MSR SVCRZA, #0 The reference can be found here: https://developer.arm.com/documentation/ddi0602/2021-06 Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D105576 -
Chia-hung Duan authored
For example, we will generate incorrect code for the pattern, def : Pat<((FooOp (FooOp, $a, $b), $b)), (...)>; We didn't allow $b to be bond twice with same operand of same op. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D105677
-