- Mar 13, 2021
-
-
Nikita Popov authored
-
Nikita Popov authored
When calling getClobberingMemoryAccess() with MemoryLocation on a MemoryPHI starting access, the walker currently immediately bails and returns the starting access. This makes sense for the API that does not accept a location (as we wouldn't know what clobber we should be checking for), but doesn't make sense for the MemoryLocation-based API. This means that it can't look through a MemoryPHI if it's the starting access, but can if there is one more non-clobbering def in between. This patch removes the limitation. Differential Revision: https://reviews.llvm.org/D98557
-
luxufan authored
This patch change the rvv frame layout that proposed in D94465. In patch D94465, In the eliminateFrameIndex function, to eliminate the rvv frame index, create temp virtual register is needed. This virtual register should be scavenged by class RegsiterScavenger. If the machine function has other unused registers, there is no problem. But if there isn't unused registers, we need a emergency spill slot. Because of the emergency spill slot belongs to the scalar local variables field, to access emergency spill slot, we need a temp virtual register again. This makes the compiler report the "Incomplete scavenging after 2nd pass" error. So I change the rvv frame layout as follows: ``` |--------------------------------------| | arguments passed on the stack | |--------------------------------------|<--- fp | callee saved registers | |--------------------------------------| | rvv vector objects(local variables | | and outgoing arguments | |--------------------------------------| | realignment field | |--------------------------------------| | scalar local variable(also contains| | emergency spill slot) | |--------------------------------------|<--- bp | variable-sized local variables | |--------------------------------------|<--- sp ``` Differential Revision: https://reviews.llvm.org/D97111
-
luxufan authored
Differential Revision: https://reviews.llvm.org/D97177
-
Roman Lebedev authored
This appears to have broken ubsan bot: https://lab.llvm.org/buildbot/#/builders/85/builds/3062 https://reviews.llvm.org/D98147#2623549 It looks like LSR needs some kind of a change around insertion point handling. Reverting until i have a fix. This reverts commit 61f006ac.
-
George Balatsouras authored
Remove hard-coded shadow width references. Reviewed By: stephan.yichao.zhao Differential Revision: https://reviews.llvm.org/D98454
-
xling-Liao authored
In order to prevent further building issues related to the usage of SmallVector in other compilation unit, this patch adjusts the llvm.h header as a workaround instead. Besides, this patch reverts previous workarounds: 1. Revert "[NFC] Use llvm::SmallVector to workaround XL compiler problem on AIX" This reverts commit 561fb7f6. 2.Revert "[clang][cli] Fix build failure in CompilerInvocation" This reverts commit 8dc70bdc. Differential Revision: https://reviews.llvm.org/D98552
-
Lang Hames authored
-
Lang Hames authored
This makes the target triple, graph name, and full graph content available when making decisions about how to populate the linker pass pipeline. Also updates the LLJITWithObjectLinkingLayerPlugin example to show more API use, including use of the API changes in this patch.
-
Petr Hosek authored
This is necessary so we can run Polly tests in 2 stage build. Differential Revision: https://reviews.llvm.org/D98572
-
peter klausler authored
An older version of a function (Fortran::semantics::FindFunctionResult) was left in flang/lib/Semantics/tools.cpp, and this breaks the static library build due to a conflict with the intended final version in another file and library. Remove the old code. Differential Revision: https://reviews.llvm.org/D98568
-
Giorgis Georgakoudis authored
The patch adds an argument to update test scripts, such as update_cc_test_checks, for replacing a function name matching a regex. This functionality is needed to match generated function signatures that include file hashes. Example: The function signature for the following function: `__omp_offloading_50_b84c41e__Z9ftemplateIiET_i_l30_worker` with `--replace-function-regex "__omp_offloading_[0-9]+_[a-z0-9]+_(.*)"` will become: `CHECK-LABEL: @{{__omp_offloading_[0-9]+_[a-z0-9]+__Z9ftemplateIiET_i_l30_worker}}(` Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D97107 -
Jason Molenda authored
One of the backup schemes I use for finding kexts and kernels on the local filesystem is to load a solitary binary when I don't find any with a dSYM. This usually is a more confusing behavior than helpful; people expect to get no binary loaded, or a binary with debug information. This change stops loading kexts and kernels that do not have an associated dSYM. rdar://74291888
-
Giorgis Georgakoudis authored
This reverts commit 5eaf70af.
-
Giorgis Georgakoudis authored
The patch adds an argument to update test scripts, such as update_cc_test_checks, for replacing a function name matching a regex. This functionality is needed to match generated function signatures that include file hashes. Example: The function signature for the following function: `__omp_offloading_50_b84c41e__Z9ftemplateIiET_i_l30_worker` with `--replace-function-regex "__omp_offloading_[0-9]+_[a-z0-9]+_(.*)"` will become: `CHECK-LABEL: @{{__omp_offloading_[0-9]+_[a-z0-9]+__Z9ftemplateIiET_i_l30_worker}}(` Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D97107 -
Aart Bik authored
This is a temporary work-around to get our all-annotations-all-flags stress testing effort run clean. In the long run, we want to provide efficient implementations of strided loads and stores though Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D98563
-
Matheus Izvekov authored
See PR48593. Constraints with invalid type parameters were causing a null pointer dereference. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D98095
-
Matheus Izvekov authored
This patch just makes the error message clearer by reinforcing the cause was a lack of viable **three-way** comparison function for the **complete object**. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D97990
-
peter klausler authored
Fortran permits a reference to a function whose result is a pointer to be used as a definable variable in any context where a designator could appear. This patch wrings out remaining bugs with such usage and adds more testing. The utility predicate IsProcedurePointer(expr) had a misleading name which has been corrected to IsProcedurePointerTarget(expr). Differential Revision: https://reviews.llvm.org/D98555
-
Jez Ng authored
Summary: The exact out-of-range value seems to differ by 8 bytes on the buildbots compared to my local machine. I'm guessing it has something to do with what inputs we are getting from llvm-mc. Not sure why, but I don't think it's super important -- let's just ignore the number, the out-of-range message is the important thing here
-
peter klausler authored
Make error message descriptors on runtime DE/ALLOCATE API calls constant. Fix a bug in error message truncation/padding. Differential Revision: https://reviews.llvm.org/D98551
-
Fangrui Song authored
-
Fangrui Song authored
-
Stanislav Mekhanoshin authored
Not all register classes were listed. Differential Revision: https://reviews.llvm.org/D98550
-
Matt Morehouse authored
This should fix the Windows buildbot errors.
-
Jez Ng authored
instead of doing it on all arm64 platforms. Reviewed By: #lld-macho, gkm Differential Revision: https://reviews.llvm.org/D98446
-
Jez Ng authored
Previously, it was difficult to write code that handled both synthetic and regular sections generically. We solve this problem by creating a fake InputSection at the start of every SyntheticSection. This refactor allows us to handle DSOHandle like a regular Defined symbol (since Defined symbols must be attached to an InputSection), and paves the way for supporting `__mh_*header` symbols. Additionally, it simplifies our binding/rebase code. I did have to extend Defined a little -- it now has a `linkerInternal` flag, to indicate that `___dso_handle` should not be in the final symbol table. I've also added some additional testing for `___dso_handle`. Reviewed By: #lld-macho, oontvoo Differential Revision: https://reviews.llvm.org/D98545
-
Jez Ng authored
This diff required fixing `getEmbeddedAddend` to apply sign extension to 32-bit values. We were previously passing around wrong 64-bit addend values that became "right" after being truncated back to 32-bit. I've also made `getEmbeddedAddend` return a signed int, which is similar to what LLD-ELF does for its `getImplicitAddend`. `reportRangeError`, `checkUInt`, and `checkInt` are counterparts of similar functions in LLD-ELF. Reviewed By: #lld-macho, thakis Differential Revision: https://reviews.llvm.org/D98387
-
Siva Chandra Reddy authored
-
Jordan Rupprecht authored
This reverts commit cf82700a due to a compile timeout when building the following with `clang -O2`: ``` template <class, class = int> class a; struct b { using d = int *; }; struct e { using f = b::d; }; class g { public: e::f h; e::f i; }; template <class, class> class a : g { public: long j() const { return i - h; } long operator[](long) const noexcept; }; template <class c, class k> long a<c, k>::operator[](long l) const noexcept { return h[l]; } template <typename m, typename n> int fn1(m, n, const char *); int o, p; class D { void q(const a<long> &); long r; }; void D::q(const a<long> &l) { int s; if (l[0]) for (; l.j(); ++s) { if (l[s]) while (fn1(o, 0, "")) ; r = l[s] / p; } } ```
-
Nikita Popov authored
This is currently not being optimized.
-
Siva Chandra authored
-
Wei Mi authored
".llvm." suffix". The recommit fixed a bug that symbols with "." at the beginning is not properly handled in the last commit. Original commit message: Currently IndirectCallPromotion simply strip everything after the first "." in LTO mode, in order to match the symbol name and the name with ".llvm." suffix in the value profile. However, if -funique-internal-linkage-names and thinlto are both enabled, the name may have both ".__uniq." suffix and ".llvm." suffix, and the current mechanism will strip them both, which is unexpected. The patch fixes the problem. Differential Revision: https://reviews.llvm.org/D98389
-
Siva Chandra Reddy authored
This option will build LLVM libc as a full libc by itself. In this mode, it is not expected that it will be mixed with other libcs. The non-full-build mode will be the default LLVM libc build mode. In a future where LLVM libc is complete enough, the full libc build will be made the default mode.
-
Philip Reames authored
-
Muiez Ahmed authored
The aim is to add the missing z/OS specific implementations for mbsnrtowcs and wcsnrtombs, as part of libc++. Differential Revision: https://reviews.llvm.org/D98207
-
Amy Huang authored
[DebugInfo] Add an attribute to force type info to be emitted for types that are required to be complete. This was motivated by the fact that constructor type homing (debug info optimization that we want to turn on by default) drops some libc++ types, so an attribute would allow us to override constructor homing and emit them anyway. I'm currently looking into the particular libc++ issue, but even if we do fix that, this issue might come up elsewhere and it might be nice to have this. As I've implemented it now, the attribute isn't specific to the constructor homing optimization and overrides all of the debug info optimizations. Open to discussion about naming, specifics on what the attribute should do, etc. Differential Revision: https://reviews.llvm.org/D97411
-
Sanjay Patel authored
PR49475 shows an infinite loop outcome, but this tries to show the root cause with a minimal test.
-
Craig Topper authored
[DAGCombiner] Use isConstantSplatVectorAllZeros/Ones instead of isBuildVectorAllZeros/Ones in visitMSTORE and visitMLOAD. This allows us to optimize when the mask is a splat_vector in addition to build_vector.
-
Craig Topper authored
These should be removed for all zeros mask or optimized to unmasked for all ones.
-