- Oct 20, 2021
-
-
Philip Reames authored
This is trivial. It was left out of the original review only because we had multiple copies of the same code in review at the same time, and keeping them in sync was easiest if the structure was kept in sync.
-
Philip Reames authored
This patch duplicates a bit of logic we apply to comparisons encountered during the IV users walk to conditions which feed exit conditions. Why? simplifyAndExtend has a very limited list of users it walks. In particular, in the examples is stops at the zext and never visits the icmp. (Because we can't fold the zext to an addrec yet in SCEV.) Being willing to visit when we haven't simplified regresses multiple tests (seemingly because of less optimal results when computing trip counts). Note that this can be trivially extended to multiple exiting blocks. I'm leaving that to a future patch (solely to cut down on the number of versions of the same code in review at once.) Differential Revision: https://reviews.llvm.org/D111896
-
Craig Topper authored
-
Anna Thomas authored
Using BPI within loop predication is non-trivial because BPI is only preserved lossily in loop pass manager (one fix exposed by lossy preservation is up for review at D111448). However, since loop predication is only used in downstream pipelines, it is hard to keep BPI from breaking for incomplete state with upstream changes in BPI. Also, correctly preserving BPI for all loop passes is a non-trivial undertaking (D110438 does this lossily), while the benefit of using it in loop predication isn't clear. In this patch, we rely on profile metadata to get almost similar benefit as BPI, without actually using the complete heuristics provided by BPI. This avoids the compile time explosion we tried to fix with D110438 and also avoids fragile bugs because BPI can be lossy in loop passes (D111448). Reviewed-By: asbirlea, apilipenko Differential Revision: https://reviews.llvm.org/D111668
-
Joe Loser authored
`weekday` has a static member function `__weekday_from_days` which is not part of the mandated public interface of `weeekday` according to the standard. Since it is only used internally in the constructors of `weekday`, let's make it private. Reviewed By: ldionne, Mordante, #libc Differential Revision: https://reviews.llvm.org/D112072
-
Joe Loser authored
Mark LWG3573 as complete. It involves a change in wording around when `basic_string_view`'s constructor for iterator/sentinel can throw. The current implementation is not marked conditionally `noexcept`, so there is nothing to do here. Add a test that binds this behavior to verify the constructor is not marked `noexcept(true)` when `end - begin` throws. Reviewed By: ldionne, Mordante, #libc Differential Revision: https://reviews.llvm.org/D111925
-
Louis Dionne authored
-
Mehdi Amini authored
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Konstantin Varlamov authored
The only possible kind of a conversion in initialization of a shared pointer to an array is a qualification conversion (i.e., adding cv-qualifiers). This patch adds tests for converting from `A[]` to `const A[]` to the following functions: ``` template<class Y> explicit shared_ptr(Y* p); template<class Y> shared_ptr(const shared_ptr<Y>& r); template<class Y> shared_ptr(shared_ptr<Y>&& r); template<class Y> shared_ptr& operator=(const shared_ptr<Y>& r); template<class Y> shared_ptr& operator=(shared_ptr<Y>&& r); template<class Y> void reset(Y* p); template<class Y, class D> void reset(Y* p, D d); template<class Y, class D, class A> void reset(Y* p, D d, A a); ``` Similar tests for converting functions that involve a `weak_ptr` should be added once LWG issue [3001](https://cplusplus.github.io/LWG/issue3001) is implemented. Differential Revision: https://reviews.llvm.org/D112048
-
Jim Ingham authored
-
Jonas Devlieghere authored
Check for TARGET_CPU_ARM64 (ARM instructions for 64-bit mode) rather than TARGET_CPU_ARM (instructions for 32-bit mode).
-
Arthur Eubanks authored
And fix a typo.
-
Carlos Galvez authored
To fix failing build job.
-
Carlos Galvez authored
To simplify suppressing warnings (for example, for when multiple check aliases are enabled). The globbing format reuses the same code as for globbing when enabling checks, so the semantics and behavior is identical. Differential Revision: https://reviews.llvm.org/D111208
-
Joseph Huber authored
The plugin currently uses a macro to check if this is a debug built before assigning the debug kind variable to the device environment struct. This is being deprecated because the new device runtime does not maintain separate debug builds and should always be availible. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D112083
-
Louis Dionne authored
Running tests for libunwind is a lot simpler than running tests for libc++, so a simple Lit config file is sufficient. The benefit is that we disentangle the libunwind test configuration from the libc++ and libc++abi test configuration. The setup was too complicated, which led to some bugs (notably we were running against the system libunwind on Apple platforms). Differential Revision: https://reviews.llvm.org/D111664
-
- Oct 19, 2021
-
-
Kazu Hirata authored
-
Michał Górny authored
Use FPU_REG macro to define dN registers, removing the wrong value_regs while at it. This is a piece-wise attempt of reconstructing D112066 with the goal of figuring out which part of the larger change breaks the buildbot. Differential Revision: https://reviews.llvm.org/D112066
-
Jamie Schmeiser authored
Summary: Break out non-functional changes to the print-changed classes that are needed for reuse with the DotCfg change printer in https://reviews.llvm.org/D87202. Various changes to the change printers to facilitate reuse with the upcoming DotCfg change printer. This includes changing several of the classes and their support classes to being templates. Also, some template parameter names were simplified to avoid confusion with planned identifiers in the DotCfg change printer to come. A virtual function in the class for comparing functions was changed to a lambda. The virtual function same was replaced with calls to operator==. The only intentional functional change was to add the exe name as the first parameter to llvm::sys::ExecuteAndWait Author: Jamie Schmeiser <schmeise@ca.ibm.com> Reviewed By: aeubanks (Arthur Eubanks) Differential Revision: https://reviews.llvm.org/D110737
-
David Sherwood authored
Following on from an earlier patch that introduced support for -mtune for AArch64 backends, this patch splits out the tuning features from the processor features. This gives us the ability to enable architectural feature set A for a given processor with "-mcpu=A" and define the set of tuning features B with "-mtune=B". It's quite difficult to write a test that proves we select the right features according to the tuning attribute because most of these relate to scheduling. I have created a test here: CodeGen/AArch64/misched-fusion-addr-tune.ll that demonstrates the different scheduling choices based upon the tuning. Differential Revision: https://reviews.llvm.org/D111551
-
David Sherwood authored
-
Shraiysh Vaishay authored
The functions are moved above the parseClauses function as they will be used inside it to parse `hint` clause Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D112071
-
Amy Kwan authored
This patch attempts to restrict the following P10 options: ``` -mprefixed -mpcrel -mpaired-vector-memops ``` To P10 only. This will prevent the use of these options on P9 and earlier. The behaviour of this patch looks like the following on pre-P10: ``` $ clang -mcpu=pwr9 -mpaired-vector-memops test.c -o test error: option '-mpaired-vector-memops' cannot be specified without '-mcpu=pwr10' $ clang -mcpu=pwr9 -mprefixed test.c -o test error: option '-mprefixed' cannot be specified without '-mcpu=pwr10' $ clang -mcpu=pwr9 -mprefixed -mpcrel test.c -o test error: option '-mpcrel' cannot be specified without '-mcpu=pwr10 -mprefixed' $ clang -mcpu=pwr9 -mpcrel -mprefixed test.c -o test error: option '-mpcrel' cannot be specified without '-mcpu=pwr10 -mprefixed' $ clang -mcpu=pwr9 -mpcrel test.c -o test error: option '-mpcrel' cannot be specified without '-mcpu=pwr10 -mprefixed' ``` Differential Revision: https://reviews.llvm.org/D109652
-
David Sherwood authored
This patch ensures that we always tune for a given CPU on AArch64 targets when the user specifies the "-mtune=xyz" flag. In the AArch64Subtarget if the tune flag is unset we use the CPU value instead. I've updated the release notes here: llvm/docs/ReleaseNotes.rst and added tests here: clang/test/Driver/aarch64-mtune.c Differential Revision: https://reviews.llvm.org/D110258
-
Joe Loser authored
Mark LWG3420 as complete. Currently, the `cpp17_iterator` concept checks that the type looks like an iterator first before checking if it is copyable. Reviewed By: ldionne, Quuxplusone, #libc Differential Revision: https://reviews.llvm.org/D111598
-
Michał Górny authored
This is a piece-wise attempt of reconstructing D112066 with the goal of figuring out which part of the larger change breaks the buildbot. Differential Revision: https://reviews.llvm.org/D112066
-
Michał Górny authored
-
Simon Pilgrim authored
Inspired by D111968, provide a isNegatedPowerOf2() wrapper instead of obfuscating code with (-Value).isPowerOf2() patterns, which I'm sure are likely avenues for typos..... Differential Revision: https://reviews.llvm.org/D111998
-
Michał Górny authored
This reverts commit 1c2c67b4. Something's still wrong.
-
Matt Morehouse authored
Allows us to use the small code model when we disable relocation relaxation. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D111344
-
Michał Górny authored
Fix incorrect values for value_regs, and incomplete values for invalidate_regs in RegisterInfos_arm. The value_regs entry needs to list only one base (i.e. larger) register that needs to be read to get the value for this register, while invalidate_regs needs to list all other registers (including pseudo-register) whose values would change when this register is written to. While at it, introduce helper macros for the definitions. 7a8ba4ff fixed a similar problem for ARM64. Differential Revision: https://reviews.llvm.org/D112066
-
bakhtiyar authored
Reviewed By: ezhulenev Differential Revision: https://reviews.llvm.org/D112051
-
Louis Dionne authored
Otherwise, the individual `check-cxx`, `check-cxxabi` and similar targets will not know about `LLVM_LIT_ARGS`, and we'll end up running lit without any argument. Differential Revision: https://reviews.llvm.org/D112035
-
Valentin Clement authored
Extract some code from the big ptach D111337. This patch contains some utility functions from the FIRBuidler. List of utility functions added: - getRegion - getModule - getKindMap - getRefType - getVarLenSeqTy - getRealType - createNullConstant - createRealConstant - createRealZeroConstant - createGlobal - createGlobalConstant - createStringLitOp - getNamedFunction - getNamedGlobal - createFunction - addNamedFunction - createBool This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D112057 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Shraiysh Vaishay authored
Code reorganized in OpenMPDialect.cpp to have all functions corresponding to an operation together. Added parseClauses function to avoid code duplication while parsing clauses in OpenMP operations. Also added printers and verifiers for clauses, which are being used for multiple operations. Reviewed By: kiranchandramohan, peixin Differential Revision: https://reviews.llvm.org/D110903
-
Michał Górny authored
Refactor ABIX86::AugmentRegisterInfo() and helper functions for better readability. This also fixes listing eax & co. as potential subregs on 32-bit systems. Differential Revision: https://reviews.llvm.org/D108937
-
Michał Górny authored
Differential Revision: https://reviews.llvm.org/D111890
-
Adam Czachorowski authored
For example, if you have: void foo(int bar); foo(/*^ it should auto-complete to "bar=". Because Sema callbacks for code completion in comments happen before we have an AST we need to cheat in clangd by detecting completion on /* before, moving cursor back by two characters, then running a simplified verion of SignatureHelp to extract argument name(s) from possible overloads. Differential Revision: https://reviews.llvm.org/D110823
-