- Jun 04, 2021
-
-
Martin Storsjö authored
-
Nikita Popov authored
When SimplifyIndVars infers IR nowrap flags from SCEV, this may happen in two ways: Either nowrap flags were already present in SCEV and just get transferred to IR. Or zero/sign extension of addrecs infers additional nowrap flags, and those get transferred to IR. In the latter case, calling forgetValue() ensures that the newly inferred nowrap flags get propagated to any other SCEV expressions based on the addrec. However, the invalidation can also have a major compile-time effect in some cases. For https://bugs.llvm.org/show_bug.cgi?id=50384 with n=512 compile- time drops from 7.1s to 0.8s without this invalidation. At the same time, removing the invalidation doesn't affect any codegen in test-suite. Differential Revision: https://reviews.llvm.org/D103424
-
Rong Xu authored
This patch was split from https://reviews.llvm.org/D102246 [SampleFDO] New hierarchical discriminator for Flow Sensitive SampleFDO This is for llvm-profdata part of change. It sets the bit masks for the profile reader in llvm-profdata. Also add an internal option "-fs-discriminator-pass" for show and merge command to process the profile offline. This patch also moved setDiscriminatorMaskedBitFrom() to SampleProfileReader::create() to simplify the interface. Differential Revision: https://reviews.llvm.org/D103550
-
peter klausler authored
To ensure that errors are emitted by CheckConformance and its callers in all situations, it's necessary for the returned result of that function to distinguish between three possible outcomes: the arrays are known to conform at compilation time, the arrays are known to not conform (and a message has been produced), and an indeterminate result in which is not possible to determine conformance. So convert CheckConformance's result into an optional<bool>, and convert its confusing Boolean flag arguments into a bit-set of named flags too. Differential Revision: https://reviews.llvm.org/D103654
-
Adam Nemet authored
Don't add it to FusedInsts in this case. Differential Revision: https://reviews.llvm.org/D103627
-
Fangrui Song authored
-
Vitaly Buka authored
prepareTaggedChunk uses Tag 0 for header. Android already PR_MTE_TAG_MASK to 0xfffe, but with the patch we will not need to deppend on the system configuration. Reviewed By: pcc Differential Revision: https://reviews.llvm.org/D103134
-
Jason Zheng authored
Extend debug info handling by adding DWARF address space mapping for SPIR, with corresponding test case. Reviewed By: Anastasia Differential Revision: https://reviews.llvm.org/D103097
-
Konstantin Zhuravlyov authored
Otherwise it is causing one of our build jobs to fail, it is using "external" as directory, and NOT is failing because "external" is found in ModuleID. Differential Revision: https://reviews.llvm.org/D103658
-
Jessica Paquette authored
If we ended up with two phi instructions in a block, and we needed to fix up the banks for the first one, we'd end up inserting our COPY before the second phi. E.g. ``` %x = G_PHI ... %fixup = COPY ... %y = G_PHI ... ``` This is invalid MIR, and breaks assumptions made by the register allocator later down the line. With the verifier enabled, it also emits a verification error. This teaches fixupPHIOpBanks to walk past any phi instructions in the block when emitting the fixup copies. Here's an example of the crashing code (same as added testcase): https://godbolt.org/z/h5j1x3o6e Differential Revision: https://reviews.llvm.org/D103582
-
zoecarver authored
There are no changes to public APIs. Differential Revision: https://reviews.llvm.org/D103493
-
Mark Schimmel authored
This patch sets the isCommutable attribute for several opcodes that have the "reg = OPCODE reg, reg" format. Differential Revision: https://reviews.llvm.org/D103653
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
zoecarver authored
Differential Revision: https://reviews.llvm.org/D103208
-
Joseph Huber authored
This patch changes the `isKnownHeapToStack` and `isAssumedHeapToStack` member functions to return if a function call is going to be altered by HeapToStack. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D103574
-
zoecarver authored
This is a fairly mechanical change, it just moves each algorithm into its own header. This is a NFC. Note: during this change, I burned down all the includes, so this follows "include only and exactly what you use." Differential Revision: https://reviews.llvm.org/D103583
-
Joseph Huber authored
This patch adds an option to `lookupAAFor` that allows it to return a nullptr if the state of the looked up attribute is invalid. This is so future passes can use this to query other attributes with the guarantee that they are valid. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D103556
-
Peyton, Jonathan L authored
-
Craig Topper authored
All that really matters is that the VLMAX of the preceding instructions is the same as the VLMAX required by the mask operation. Also update the vmsge(u) handling to use the SEW/LMUL we use for other mask register operations. We were matching it to the compare before. Some cases will be improve if we fix masked compares to use tail agnostic policy. I think they ignore the tail policy anyway. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D103299
-
Mikhail Goncharov authored
if build system copied source files as readonly, then override of db_tu.json will fail
-
Adam Czachorowski authored
In --check mode we do not run code completion because it is too slow, especially on larger files. With the introducation of --check-lines we can narrow down the scope and thus we can afford to do code completion. We vlog() the top completion result, but that's not really the point. The most value will come from being able to reproduce crashes that occur during code completion and require preamble build or index (and thus are more difficult to reproduce with -code-complete-at). Differential Revision: https://reviews.llvm.org/D103538
-
Sanjay Patel authored
D102673 proposes to ease the current type check, but there doesn't appear to be any test coverage for that.
-
Alexey Bataev authored
Need to emit a call for __kmpc_cancel_barrier in the exit block for __kmpc_cancel function call if cancellation of the parallel block is requested. Differential Revision: https://reviews.llvm.org/D103646
-
Bradley Smith authored
setcc (csel 0, 1, cond, X), 1, ne ==> csel 0, 1, !cond, X Where X is a condition code setting instruction. Co-authored-by:
Paul Walker <paul.walker@arm.com> Differential Revision: https://reviews.llvm.org/D103256
-
Matthias Springer authored
* Rename PadTensorOpVectorizationPattern to GenericPadTensorOpVectorizationPattern. * Make GenericPadTensorOpVectorizationPattern a private pattern, to be instantiated via populatePadTensorOpVectorizationPatterns. * Factor out parts of PadTensorOpVectorizationPattern into helper functions. This commit prepares PadTensorOpVectorizationPattern for a series of subsequent commits that add more specialized PadTensorOp vectorization patterns. Differential Revision: https://reviews.llvm.org/D103681
-
Nico Weber authored
This test reads the test file removed in db3e4faa.
-
Nico Weber authored
This reverts commit da3ed58b. This reverts commit ba1fb0ff.
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D103599
-
Nico Weber authored
-
Alexey Bataev authored
Patch allows using of constexpr vars evaluatable to constant calue to be used in declare mapper construct. Differential Revision: https://reviews.llvm.org/D103642
-
Valentin Clement authored
Convert data operands from the acc.data operation using the same conversion pattern than D102170. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D103332
-
Andrzej Warzynski authored
With this patch, the following invocation of the frontend driver will return an error: ``` flang-new -fc1 input-file.f90 -o ``` Similar logic applies to other options that require arguments. Similar checks are already available in the compiler driver, flang-new (that's implemented in clangDriver). Differential Revision: https://reviews.llvm.org/D103554
-
Sanjay Patel authored
Baseline tests for D102574
-
Nico Weber authored
It fails on some Linux systems. Remove the test until we've figured out what's going on. See https://crbug.com/1216005 for details.
-
mydeveloperday authored
-
Nico Weber authored
Revert "[InstrProfiling] If no value profiling, make data variable private and (for Windows) use one comdat" This reverts commit a14fc749. Breaks check-profile on macOS. See https://reviews.llvm.org/D103372 for details.
-
Louis Dionne authored
As discussed on cfe-dev [1], use the using_if_exists Clang attribute when the compiler supports it. This makes it easier to port libc++ on top of new platforms that don't fully support the C Standard library. Previously, libc++ would fail to build when trying to import a missing declaration in a <cXXXX> header. With the attribute, the declaration will simply not be imported into namespace std, and hence it won't be available for libc++ to use. In many cases, the declarations were *not* actually required for libc++ to work (they were only surfaced for users to use them as std::XXXX), so not importing them into namespace std is acceptable. The same thing could be achieved by conscious usage of `#ifdef` along with platform detection, however that quickly creates a maintenance problem as libc++ is ported to new platforms. Furthermore, this problem is exacerbated when mixed with vendor internal-only platforms, which can lead to difficulties maintaining a downstream fork of the library. For the time being, we only use the using_if_exists attribute when it is supported. At some point in the future, we will start removing #ifdef paths that are unnecessary when the attribute is supported, and folks who need those #ifdef paths will be required to use a compiler that supports the attribute. [1]: http://lists.llvm.org/pipermail/cfe-dev/2020-June/066038.html Differential Revision: https://reviews.llvm.org/D90257
-
Stuart Brady authored
-
Nicholas Guy authored
Due to the dependency on runtime unrolling, UnJ is only enabled by default on in-order scheduling models, and if a cpu is specified through -mcpu. Differential Revision: https://reviews.llvm.org/D103604
-