- Apr 08, 2021
-
-
Christopher Di Bella authored
* `std::predicate` * `std::relation` * `std::equivalence_relation` * `std::strict_weak_order` 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/D96477 -
Jez Ng authored
We had been giving them a string index of zero, which actually corresponds to a string with a single space due to {D89639}. This was far from obvious in the old test because llvm-nm doesn't quote the symbol names, making the empty string look identical to a string of a single space. `dsymutil -s` quotes its strings, so I've changed the test accordingly. Fixes llvm.org/PR48714. Thanks @clayborg for the tips! Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D100003 -
Jez Ng authored
Reviewed By: #lld-macho, gkm Differential Revision: https://reviews.llvm.org/D99813
-
- Apr 07, 2021
-
-
wlei authored
We see a regression related to low probe factor(0.01) which prevents some callsites being promoted in ICPPass and later cause the missing inline in CGSCC inliner. The root cause is due to redundant(the second) multiplication of the probe factor and this change try to fix it. `Sum` does multiply a factor right after findCallSamples but later when using as the parameter in setProbeDistributionFactor, it multiplies one again. This change could get ~2% perf back on mcf benchmark. In mcf, previously the corresponding factor is 1 and it's the recent feature introducing the <1 factor then trigger this bug. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D99787
-
Simon Pilgrim authored
This used to work before rG77d625f8, but we now merge the shuffles across the fadd resulting in a hadd that requires a lane crossing post shuffle, which we don't permit on AVX1 targets
-
Nicolas Vasilache authored
This allows downstream projects to build python extensions using the same macros as MLIR. Differential Revision: https://reviews.llvm.org/D100040
-
Abhina Sreeskantharajan authored
This patch sets tablegen files as text. It should have no effect on Windows after this patch landed https://reviews.llvm.org/rG82b3e28e836d2f5c8cfd6e1047b93c088522365a. Reviewed By: anirudhp Differential Revision: https://reviews.llvm.org/D100036
-
Jacques Pienaar authored
-
Sander de Smalen authored
After D98856 these tests will by default break (fatal_error) if any of the wrong interfaces are used, so there's no longer a need to have a RUN line that checks for a warning message emitted by the compiler.
-
Sam Clegg authored
Use report_fatal_error here since this is an internal error, and not something the user can/should be trying to fix. Also distinguish between the symbol being missing and the symbol having the wrong type. We have a failure internally where the symbol is missing. Currently trying to reduce the test case to something we can attach to an llvm bug. Differential Revision: https://reviews.llvm.org/D99960
-
Sebastian Neubauer authored
The struct is used for both, callee and caller-save registers now. The frame index is not set for entrypoints, as we do not need to save the registers then. Update the struct name to reflect that. Differential Revision: https://reviews.llvm.org/D99722
-
Jingu Kang authored
Differential Revision: https://reviews.llvm.org/D100033
-
Nico Weber authored
This reverts commit 6951b723. Breaks several bots, see comments on https://reviews.llvm.org/D99409
-
Simon Pilgrim authored
Extend D94856 to handle 'and', 'or' and 'xor' instructions as well We still fail on many i8/i16 cases as the test and the logic-op are performed on different widths
-
Alexey Bataev authored
No need to lookup through and/or try to vectorize operands of the CmpInst instructions during attempts to find/vectorize min/max reductions. Compiler implements postanalysis of the CmpInsts so we can skip extra attempts in tryToVectorizeHorReductionOrInstOperands and save compile time. Differential Revision: https://reviews.llvm.org/D99950
-
Andrzej Warzynski authored
The -fdebug-dump-provenance flag is meant to be used with needProvenanceRangeToCharBlockMappings set to true. This way, extra mapping is generated that allows e.g. IDEs to retrieve symbol's scope (offset into cooked character stream) based on symbol's source code location. This patch makes sure that this option is set when using -fdebug-dump-provenance. With this patch, the implementation of -fdebug-dump-provenance in `flang-new -fc1` becomes consistent with `f18`. The corresponding LIT test is updated so that it can be shared with `f18`. I refined it a bit so that: * it becomes a frontend-only test * it's stricter about the expected output Differential Revision: https://reviews.llvm.org/D98847
-
Jay Foad authored
-
Andrzej Warzynski authored
This patch adds support for the `-cpp` and `-nocpp` flags. The implemented semantics match f18 (i.e. the "throwaway" driver), but are different to gfortran. In Flang the preprocessor is always run. Instead, `-cpp/-nocpp` are used to control whether predefined and command-line preprocessor macro definitions are enabled or not. In practice this is sufficient to model gfortran`s `-cpp/-nocpp`. In the absence of `-cpp/-nocpp`, the driver will use the extension of the input file to decide whether to include the standard macro predefinitions. gfortran's documentation [1] was used to decide which file extension to use for this. The logic mentioned above was added in FrontendAction::BeginSourceFile. That's relatively late in the driver set-up, but this roughly where the name of the input file becomes available. The logic for deciding between fixed and free form works in a similar way and was also moved to FrontendAction::BeginSourceFile for consistency (and to reduce code-duplication). The `-cpp/-nocpp` flags are respected also when the input is read from stdin. This is different to: * gfortran (behaves as if `-cpp` was used) * f18 (behaves as if `-nocpp` was used) Starting with this patch, file extensions are significant and some test files had to be renamed to reflect that. Where possible, preprocessor tests were updated so that they can be shared between `f18` and `flang-new`. This was implemented on top of adding new test for `-cpp/-nocpp`. [1] https://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D99292
-
oToToT authored
D97493 separate target creation out to a single function `CompilerInstance::createTarget`. However, it would overwrite AuxTarget even if it has been set. As @kadircet recommended in D98128, this patch check the existence of AuxTarget and not overwrite it when it has been set. Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D100024
-
Sanjay Patel authored
The swap of the operands can affect later transforms that are expecting a constant as operand 1. I don't think we can trigger a bug with the current code, but I hit that problem while drafting a new transform for min/max intrinsics.
-
Sanjay Patel authored
-
Matthias Springer authored
Also factors out out-of-bounds mask generation from vector.transfer_read/write into a new MaterializeTransferMask pattern. Differential Revision: https://reviews.llvm.org/D100001
-
Simon Pilgrim authored
D94856 covered the BMI cases where we had existing tests, this adds missing AND/OR/XOR test cases
-
Florian Hahn authored
Extend test coverage by checking various standard versions with -f[no-]finite-loops. Suggested as part of D96418.
-
serge-sans-paille authored
Clang spends a decent amount of time in the LineOffsetMapping::get(...) function. This function used to be vectorized (through SSE2) then the optimization got dropped because the sequential version was on-par performance wise. This provides an optimization of the sequential version that works on a word at a time, using (documented) bithacks to provide a portable vectorization. When preprocessing the sqlite amalgamation, this yields a sweet 3% speedup. Differential Revision: https://reviews.llvm.org/D99409
-
Balazs Benics authored
If we allocate memory, the extent of the MemRegion will be the symbolic value of the size parameter. This way, if that symbol gets constrained, the extent will be also constrained. This test demonstrates that the extent is indeed the same symbol. Reviewed By: NoQ Differential Revision: https://reviews.llvm.org/D99959
-
Simon Pilgrim authored
Extend D94856 to handle 'bzhi' instructions as well
-
Valeriy Savchenko authored
rdar://75704162 Differential Revision: https://reviews.llvm.org/D99601
-
Yevgeny Rouban authored
I do not see any bit-width restriction from the point of the LLVM Lang Ref - Operand Bundles on the types of the deopt bundle operands. Statepoint Lowering seems to be able to work with any types. This patch relaxes the two related assertions and adds a new test for this change. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D100006
-
Valeriy Savchenko authored
When property is declared in a superclass (or in a protocol), it still can be of CXXRecord type and Sema could've already generated a body for us. This patch joins two branches and two ways of acquiring IVar in order to reuse the existing code. And prevent us from generating l-value to r-value casts for C++ types. rdar://67416721 Differential Revision: https://reviews.llvm.org/D99194
-
Simon Pilgrim authored
D94856 covered the BMI cases where we had existing tests, this adds a missing BZHI test case
-
crr0004 authored
When you pass in a payload with an invalid URI in a build with assertions enabled, it will crash. Consuming the error from the failed URI parse prevents the error. The crash is caused by the [llvm::expected](https://llvm.org/doxygen/classllvm_1_1Expected.html) having protection around trying to deconstruct without consuming the error first. Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D99872
-
Kirill Bobyrev authored
//-E create_symlink// is available on windows since CMake 3.13 (LLVM now uses 3.13.4) It may needs administrator privileges or enabled developer mode (Windows 10) See https://cmake.org/cmake/help/latest/release/3.13.html Reviewed By: kbobyrev Differential Revision: https://reviews.llvm.org/D99170
-
Utkarsh Saxena authored
Differential Revision: https://reviews.llvm.org/D99934
-
Sven van Haastregt authored
size_t and friends are built-in scalar data types and s6.4.4.2 of the OpenCL C Specification says the as_type() operator must be available for these data types. Differential Revision: https://reviews.llvm.org/D98959
-
Stefan Gränitz authored
-
Roman Lebedev authored
This reverts commit a547b4e2, relanding commit 31d219d2, which was reverted because there was a conflicting inverse transform, which was causing an endless combine loop, which has now been adjusted. Original commit message: https://alive2.llvm.org/ce/z/67w-wQ We prefer `add`s over `sub`, and this particular xform allows further folds to happen: Fixes https://bugs.llvm.org/show_bug.cgi?id=49858
-
Roman Lebedev authored
I.e., if any/all of the consants is an expression, don't do it. Since those constants won't reduce into an immediate, but would be left as an constant expression, they could cause endless combine loops after 31d219d2 added an inverse transformation.
-
Roman Lebedev authored
These would cause endless combine loop after 31d219d2.
-
Thomas Preud'homme authored
LLVM test CodeGen/PowerPC/ppc-disable-non-volatile-cr.ll tries to check for the absence of a sequence of instructions with several CHECK-NOT with one of those directives using a variable defined in another. However CHECK-NOT are checked independently so that is using a variable defined in a pattern that should not occur in the input. This commit changes occurence of the variable for the regex used in its definition, thereby making each CHECK-NOT independent. Reviewed By: NeHuang, nemanjai Differential Revision: https://reviews.llvm.org/D99880
-