- Mar 23, 2022
-
-
wren romano authored
This is work towards: https://github.com/llvm/llvm-project/issues/51652 This differential sets up the options and threads them through everywhere, but doesn't actually use them yet. The differential that finally makes use of them is D122061, which is the final differential in the chain that fixes bug 51652. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D122054
-
wren romano authored
This is the more logical place for the function to live. If/when we factor out a separate class for just the `Coordinates` themselves, then the definition should be moved to `Coordinates::lexOrder` (and `Element::lexOrder` would become a thin wrapper delegating to that function). This is (tangentially) work towards fixing: https://github.com/llvm/llvm-project/issues/51652 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D122057
-
Valentin Clement authored
This patch adds test for calls with POINTER dummy arguments on the caller side. It also fixes some formatting error that was introduced when upstreaming the other pointer tests. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D122238 Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Stanislav Mekhanoshin authored
-
spupyrev authored
It seems the earlier implementation does not follow the description in LoopRotationPass.h: It rotates loops even if they are already laid out correctly. The diff adjusts the behaviour. Given that the impact of LoopInversionPass is minor, this change won't yield significant perf differences. Tested on clang-10: there seems to be a 0.1%-0.3% cpu win and a small reduction of branch misses. **Before:** BOLT-INFO: 120 Functions were reordered by LoopInversionPass **After:** BOLT-INFO: 79 Functions were reordered by LoopInversionPass Reviewed By: yota9 Differential Revision: https://reviews.llvm.org/D121921
-
Philip Reames authored
-
Louis Dionne authored
Sometimes, we could be building for a platform where we don't link compiler-rt, so being able to figure out the right compiler-rt suffix isn't necessary, but we shouldn't fail the build.
-
Louis Dionne authored
This is consistent with what we do elsewhere.
-
David Blaikie authored
-
David Blaikie authored
-
Corentin Jabot authored
In CheckConstexprFunctionStmt, as discussed in D111400.
-
Aaron Ballman authored
This reverts commit c3460689. It broke at least one of the builders: https://lab.llvm.org/buildbot#builders/100/builds/13947
-
Corentin Jabot authored
Allow goto, labelled statements as well as `static`, `thread_local`, and non-literal variables in `constexpr` functions. As specified. for all of the above (except labelled statements) constant evaluation of the construct still fails. For `constexpr` bodies, the proposal is implemented with diagnostics as a language extension in older language modes. For determination of whether a lambda body satisfies the requirements for a constexpr function, the proposal is implemented only in C++2b mode to retain the semantics of older modes for programs conforming to them. Reviewed By: aaron.ballman, hubert.reinterpretcast, erichkeane Differential Revision: https://reviews.llvm.org/D111400
-
Peter Klausler authored
Implements UTF-8 encoding and decoding for external units with OPEN(ENCODING='UTF-8'). This encoding applies to default CHARACTER values that are not 7-bit ASCII as well as to the wide CHARACTER kinds 2 and 4. Basic testing is in place via direct calls to the runtime I/O APIs, but serious checkout awaits lowering support of the wide CHARACTER kinds. Differential Revision: https://reviews.llvm.org/D122038
-
Peter Klausler authored
Name resolution was crashing while processing the ENTRY statement due to a lack of special-case code necessary to handle the indirection needed when the generic has the same name as the ENTRY. Differential Revision: https://reviews.llvm.org/D122050
-
Jacques Pienaar authored
Add method to tag classes/defs as deprecated. Previously deprecations were only verbally communicated and folks didn't have an active warning while building about impending removal. Add mechanism to tag defs as deprecated to allow warning users. This doesn't change any policy, it just moves deprecation warnings from comments to something more user visible. Differential Revision: https://reviews.llvm.org/D122164
-
Jonas Devlieghere authored
Avoid "TERM environment variable not set" by either propagating the TERM environment variable or defaulting to vt100. All of our CI is already doing this explicitly through the --env dotest arg, but it's easy to forget when setting up a new job. I don't see any downside in making it the default.
-
Cynthia Shen authored
Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D122197
-
Marcus Johnson authored
This is anticipated to be used in new format specifier checking code.
-
Simon Pilgrim authored
We were still checking test results with the CHECK prefix but they had bit-rotted since whenever it'd been removed from the --check-prefixes list
-
Craig Topper authored
On RV32, we need to type legalize i64 scalar arguments to intrinsics. We usually do this by splatting the value into a vector separately. If the scalar happens to be sign extended, we can continue using a .vx intrinsic. We already special cased sign extended constants, this extends it to any sign extended value. I've only added tests for one case of vadd. Most intrinsics go through the same check. Reviewed By: khchen Differential Revision: https://reviews.llvm.org/D122186
-
Aaron Ballman authored
These diagnostics were added to a diagnostic group, but that diagnostic group was not under -Wgnu. I've now split them into their own diagnostic group that is added both to the original group (so user's currently opting in or out of these should not see a change) and under the -Wgnu group so that -Wno-gnu can be used to disable all GNU extension diagnostics. This fixes Issue 54444.
-
Craig Topper authored
The mask being NoRegister prevented the existing aliases from matching since NoRegister isn't in the VMV0 register class. To workaround this I've added new aliases that look for zero_reg. I had to motify tablegen to generate matching code for zero_reg. And as a consequence, I had to change the EmitPriority for an ARM alias that used zero_reg that started printing. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D121496
-
Zakk Chen authored
1. Rename nomask as unmasked to keep with the terminology in the spec. 2. Merge UnMaskpolicy and Maskedpolicy arguments into one in RVVBuiltin class. 3. Rename HasAutoDef as HasBuiltinAlias. 4. Move header definition code into one class. Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D120870
-
Craig Topper authored
This adds LLVMAnyPointerToElt to use instead of LLVMPointerToElt. This allows us to preserve the address space as part of the type overload for the intrinsic, but still require the vector element type to match the pointer type. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D122042
-
Nathan Sidwell authored
Add support for module name demangling. We have two new demangler nodes -- ModuleName and ModuleEntity. The former represents a module name in a hierarchical fashion. The latter is the combination of a (name) node and a module name. Because module names and entity identities use the same substitution encoding, we have to adjust the flow of how substitutions are handled, and examine the substituted node to know how to deal with it. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D119933
-
Louis Dionne authored
Flip the logic around: always default to libc++ except on older platforms, instead of defaulting to libstdc++ except on newer platforms. Since roughly all supported platforms use libc++ now, it makes more sense to make that the default, and allows the removal of some downstream diff. Differential Revision: https://reviews.llvm.org/D122232
-
Hendrik Greving authored
Allows for skipping the pointer to vector type if opaque pointers are enabled and the matching pointer is a vector pointer when matching an intrinsic signature in the verifier. No test added since lacking a target using intrinsic with pointer to vector arguments. Differential Revision: https://reviews.llvm.org/D122203
-
Alex Bradbury authored
D114979 changed the textual formal of ref.null - dropping ref.null in favour of ref.null_extern and ref.null_func. Therefore, the type checker no longer needs logic to handle "ref.null". Differential Revision: https://reviews.llvm.org/D122123
-
Alex Bradbury authored
While looking at bugs like PR54022, I noted that there is no real test coverage for the asm type checker. This patch starts to address that, adding a series of tests for the errors messages produced, as well as some FIXMEs as an XFAIL test for some current issues. It's not intended to be an exhaustive test, but does have test cases for each of the instructions that the type checker has specific handling for. Differential Revision: https://reviews.llvm.org/D122020
-
Walter Erquinigo authored
Some links were not rendered correctly in the intel pt documentation and some spacing was fixed in some command objects.
-
- Mar 22, 2022
-
-
Nikita Popov authored
-
Valentin Clement authored
Fix for buildbot failure shown after fe252f8e
-
Kiran Chandramohan authored
The intrinsic computes the square root for real and complex numbers. By default they are lowered to runtime calls to libpgmath. With the llvm option, it can be lowered to llvm intrinsics (not all types .eg. complex are supported for llvm lowering). This is part of the upstreaming effort from the fir-dev branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D122018 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Zakk Chen authored
intrinsics. Those operations are updated under a tail agnostic policy, but they could have mask agnostic or undisturbed. Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D120228
-
Sanjay Patel authored
There's a potential miscompile or missed optimization with propagating 'nsw' in the transform proposed in D122013, so we need at least one more test for coverage.
-
Valentin Clement authored
In FIR, we want to wrap function pointers in a special box known as a boxproc value. Fortran has a limited form of dynamic scoping [https://tinyurl.com/2p8v2hw7] between "host procedures" and "internal procedures". There are a number of implementations possible. Boxproc typed values abstract away the implementation details of when a function pointer can be passed directly (as a raw address) and when a function pointer has to account for the presence of a dynamic scope. When lowering Fortran syntax to FIR, all function pointers are emboxed as boxproc values. When creating LLVM IR, we must strip away the abstraction and produce low-level LLVM "assembly" code. This patch implements that transformation as converting the boxproc values to either raw function pointers or executable trampolines on the stack as needed. The trampoline then captures the dynamic scope context within an executable thunk that can be passed instead of the function's raw address. Some extra handling is r...
-
chenglin.bi authored
Baseline tests for D122013 (issue #54132).
-
Nikita Popov authored
-
Krasimir Georgiev authored
Follow-up from https://github.com/llvm/llvm-project/commit/36d13d3f8adb3d1a6bae71370afa23d11a94dc78; https://reviews.llvm.org/D121451. Restore the old behavior in situations where we use # as comments and long strings of #'s for comment sections. Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D122230
-