- Feb 10, 2021
-
-
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
-
Todd Lipcon authored
Reviewed By: dberris Differential Revision: https://reviews.llvm.org/D96382
-
Jim Ingham authored
-
Andrew Pritchard authored
These are similar to maxnum and minnum, but they're defined to treat -0 as less than +0. This behavior can't be expressed using float comparisons and selects, since comparisons are defined to treat different-signed zeros as equal. So, the only way to communicate this behavior into LLVM IR without defining target-specific intrinsics is to add the corresponding ops. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D96373
-
Andrew Pritchard authored
Previously it reported an op had side-effects iff it declared that it didn't have any side-effects. This had the undesirable result that canonicalization would always delete any intrinsic calls that did memory stores and returned void. Reviewed By: ftynse, mehdi_amini Differential Revision: https://reviews.llvm.org/D96369
-
Michael Kruse authored
In addition to that regression tests should not test the intire pass pipeline (unless they are testing the pipeline itself), the Polly-ACC currently does not support the new pass manager. If enabled by default, such tests will therefore fail. Use the -polly-gpu-runtime and -polly-gpu-arch options also as default values for the PPCGCodeGeneration pass. This requires to move the option to be moved from the pipeline-building Register passes to the PPCGCodeGeneration implementation. Fixes the spir-typesize.ll buildbot fail.
-
Shafik Yaghmour authored
BlockPointerSyntheticFrontEnd does a CopyType which results in it copying the type back into its own context. This will result in a call to ASTImporterDelegate::setOrigin with &decl->getASTContext() == origin.ctx this can result in an infinite recursion later on in ASTImporter since it will attempt to find the decl in its origin which will be itself. Differential Revision: https://reviews.llvm.org/D96366
-
Jim Ingham authored
-
Jim Ingham authored
Differential Revision: https://reviews.llvm.org/D96368
-
Jing Pu authored
Reviewed By: jpienaar, silvas Differential Revision: https://reviews.llvm.org/D96358
-
Eric Schweitz authored
https://github.com/flang-compiler/f18-llvm-project/pull/474 Differential Revision: https://reviews.llvm.org/D96361
-
Thomas Lively authored
The code previously assumed that `getChunk` would return a non-null pointer for every symbol, but in fact it only returns non-null pointers for DefinedFunction and DefinedData symbols. This patch fixes the segfault by checking whether `getChunk` returns a null for each symbol and skipping the mapping output for any symbols for which it does. Differential Revision: https://reviews.llvm.org/D88369
-
River Riddle authored
This allows for referencing nearly every component of an operation from within a custom directive. It also fixes a bug with the current type_ref implementation, PR48478 Differential Revision: https://reviews.llvm.org/D96189
-
River Riddle authored
This revision adds a new `AliasAnalysis` class that represents the main alias analysis interface in MLIR. The purpose of this class is not to hold the aliasing logic itself, but to provide an interface into various different alias analysis implementations. As it evolves this should allow for users to plug in specialized alias analysis implementations for their own needs, and have them immediately usable by other analyses and transformations. This revision also adds an initial simple generic alias, LocalAliasAnalysis, that provides support for performing stateless local alias queries between values. This class is similar in scope to LLVM's BasicAA. Differential Revision: https://reviews.llvm.org/D92343
-
Vinicius Tinti authored
Merging directories and files may produce different results on different platforms. Merging "./Inputs" and "source-interleave-x86_64.c" will use different separators in POSIX and Windows. Dedicated tests are needed for dealing with removing trailing separators for POSIX (consider only '/') and Windows (consider '/' and '\'). Fixes D85024. Fixes PR46368. Reviewed By: jhenderson, MaskRay Differential revision: https://reviews.llvm.org/D95513
-
Florian Hahn authored
VP blocks keep track of a condition, which is a VPValue. This patch updates VPBlockBase to manage the value using VPUser, so replaceAllUsesWith properly updates the condition bit as well. This is required to enable VP2VP transformations and it helps with simplifying some of the code required to manage condition bits. Reviewed By: gilr Differential Revision: https://reviews.llvm.org/D95382
-
Jessica Paquette authored
Similar to 3d25fdc5 This fixes bad codegen in cases like so: https://godbolt.org/z/hePhz1 Differential Revision: https://reviews.llvm.org/D96296
-
David Tenty authored
We implement getHostCPUName() for AIX via systemcfg interfaces since access to the processor version register is a privileged operation. We return a value based on the current processor implementation mode. This fixes the cpu detection used by clang for `-mcpu=native`. Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D95966
-
Richard Smith authored
constructor. We got this wrong only when forming a CXXTemporaryObjectExpr, which caused the bug to only appear for certain syntactic forms.
-
George authored
I knew I would miss one... Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D96321
-
Sam Clegg authored
This moves the error checking until after all optional symbols (including the section start/end symbols) have been created. Differential Revision: https://reviews.llvm.org/D96318
-
Arthur O'Dwyer authored
Implement the resolution of LWG2993. Replace a deleted constructor with a constructor that SFINAEs away in appropriate circumstances. Also, now that the constructor is templated, we must have an explicit deduction guide to make CTAD work. Some tests have been merged in from Agustín Bergé's D40259. Differential Revision: https://reviews.llvm.org/D92725
-
Michał Górny authored
Introduce a minimal support for the 32-bit powerpc platform. This includes support for GPR and FPR registers. I also needed to add software breakpoint opcode for PPC32/PPC64 (big endian), and to fix offsets in RegisterInfos_powerpc.h (used only by FreeBSD register context to be globally unique rather than relative to each struct). Differential Revision: https://reviews.llvm.org/D95947
-
River Riddle authored
These properties were useful for a few things before traits had a better integration story, but don't really carry their weight well these days. Most of these properties are already checked via traits in most of the code. It is better to align the system around traits, and improve the performance/cost of traits in general. Differential Revision: https://reviews.llvm.org/D96088
-
zoecarver authored
Adds `noexcept` to `string_view`/`string::find` and similar members (`rfind`, etc.). See discussion in D95251. Refs D95821. Reviewed By: curdeius, ldionne Differential Revision: https://reviews.llvm.org/D95848
-
Sam McCall authored
This change makes dependentName a modifier, rather than a token type. It can be combined with: - type (new, standard) - this combination replaces dependentType like T::typename Foo - unknown (new, nonstandard) - for general dependent names - Field, etc - when the name is dependent but we heuristically resolve it While here, fix cases where template-template-parameter cases were incorrectly flagged as type-dependent. And the merging of modifiers when resolving conflicts accidentally happens to work around a bug that showed up in a test. The behavior observed through the pre-standard protocol should be mostly unchanged (it'll see the bugfixes only). This is done in a somehat fragile way but it's not expected to live long. Differential Revision: https://reviews.llvm.org/D95706
-
Weiwei Li authored
co-authored-by:
Alan Liu <alanliu.yf@gmail.com> Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D96169
-
Sam Clegg authored
This allows data sections that don't start with `.data` to be used/created. Without this, clang's `__attribute__((section("foo")))` would generate assembly that would not parse. Differential Revision: https://reviews.llvm.org/D96233 -
Johannes Doerfert authored
This was reported as PR49104. The reproducer uses varargs but the issue is the same, we know an argument is dead but can't change the signature for some reason. The PR49104 situation was: We are in an CG-SCC traversal and we remove all the uses of an argument and proof it thereby dead. However, if we do not remove the argument, via signature rewrite, we need to ensure that the `undef` we introduce at the call site doesn't clash with a `noundef` attribute.
-
Artem Belevich authored
The patch only plumbs through the option necessary for targeting sm_86 GPUs w/o adding any new functionality. Differential Revision: https://reviews.llvm.org/D95974
-
Mark de Wever authored
There are build bots without C++20 support building the benchmarks. This reverts commit 34acc916.
-
Matt Arsenault authored
We need to avoid setting the kill flag on the CSR spill if there's an additional use of the register after the spill. This does rely on consistency between the entry block liveins and the MRI's function live ins, which is not something the verifier checks now.
-
Matt Arsenault authored
This was taking the calling convention from the parent function, instead of the callee. Avoids regressions in a future patch when the caller and callee have different type breakdowns. For some reason AArch64's lowerFormalArguments seems to intentionally ignore the parent isVarArg.
-
Craig Topper authored
[RISCV] Make the min and max vector width command line options more consistent and check their relationship to each other.
-
Tyker authored
Instcombine will convert the nonnull and alignment assumption that use the boolean condtion to an assumption that uses the operand bundles when knowledge retention is enabled. Differential Revision: https://reviews.llvm.org/D82703
-