- Oct 19, 2021
-
-
Petr Hosek authored
There's a lot of duplicated calls to find various compiler-rt libraries from build of runtime libraries like libunwind, libc++, libc++abi and compiler-rt. The compiler-rt helper module already implemented caching for results avoid repeated Clang invocations. This change moves the compiler-rt implementation into a shared location and reuses it from other runtimes to reduce duplication and speed up the build. Differential Revision: https://reviews.llvm.org/D88458
-
Tom Stellard authored
-
-
modimo authored
Windows which outputs "is a directory" rather than "Is a directory" on error compared to linux
-
Simon Pilgrim authored
If we're using an ashr to sign-extend the entire upper 16 bits of the i32 element, then we can replace with a lshr. The sign bit will be correctly shifted for PMADDWD's implicit sign-extension and the upper 16 bits are zero so the upper i16 sext-multiply is guaranteed to be zero. The lshr also has a better chance of folding with shuffles etc.
-
David Blaikie authored
These look like they have intentional side effects that would break from shortcircuiting.
-
Arthur Eubanks authored
-
Aart Bik authored
This revison lifts the artificial restriction on having exact matches between source and destination type shapes. A static size may become dynamic. We still reject changing a dynamic size into a static size to avoid the need for a runtime "assert" on the conversion. This revision also refactors some of the conversion code to share same-content buffers. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D111915
-
Simon Pilgrim authored
-
peter klausler authored
Implements constant folding for BTEST intrinsic function. Differential Revision: https://reviews.llvm.org/D111849
-
Craig Topper authored
RISCVISAInfo::toFeatures needs to allocate strings using ArgList::MakeArgString, but toFeatures lives in Support and MakeArgString lives in Option. toFeature only has one caller, so the simple fix is to have that caller pass a lamdba that wraps MakeArgString to break the dependency. Differential Revision: https://reviews.llvm.org/D112032
-
Matt Morehouse authored
The feature tells the backend to allow tags in the upper bits of global variable addresses. These tags will be ignored by upcoming CPUs with the Intel LAM feature but may be used in instrumentation passes (e.g., HWASan). This patch implements the feature by using @GOTPCREL relocations instead of direct references to the locally defined global. Thus the full tagged address can be loaded by a single instruction: movq global@GOTPCREL(%rip), %rax Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D111343
-
Alexandros Lamprineas authored
When compiling for the RWPI relocation model the debug information is wrong: * the debug location is described as { DW_OP_addr Var } instead of { DW_OP_constNu Var DW_OP_bregX 0 DW_OP_plus } * the relocation type is R_ARM_ABS32 instead of R_ARM_SBREL32 Differential Revision: https://reviews.llvm.org/D111404 -
Arthur Eubanks authored
This trades off more compile time for less peak memory usage. Right now it invalidates all function analyses after a module->function or cgscc->function adaptor. https://llvm-compile-time-tracker.com/compare.php?from=1fb24fe85a19ae71b00875ff6c96ef1831dcf7e3&to=cb28ddb063c87f0d5df89812ab2de9a69dd276db&stat=instructions https://llvm-compile-time-tracker.com/compare.php?from=1fb24fe85a19ae71b00875ff6c96ef1831dcf7e3&to=cb28ddb063c87f0d5df89812ab2de9a69dd276db&stat=max-rss For now this is just experimental. See comments on why this may affect optimizations. Reviewed By: asbirlea, nikic Differential Revision: https://reviews.llvm.org/D111575
-
Alexey Bataev authored
Need to follow the order of the reused scalars from the ReuseShuffleIndices mask rather than rely on the natural order. Differential Revision: https://reviews.llvm.org/D111898
-
modimo authored
The goal is to allow grafting an inline tree from Clang or GCC into a new compilation without affecting other functions. For GCC, we're doing this by extracting the inline tree from dwarf information and generating the equivalent remarks. This allows easier side-by-side asm analysis and a trial way to see if a particular inlining setup provides benefits by itself. Testing: ninja check-all Reviewed By: wenlei, mtrofin Differential Revision: https://reviews.llvm.org/D110658
-
Michał Górny authored
Refactor ConnectToRemote() to improve readability and make future changes easier: 1. Replace static buffers with std::string. 2. When handling errors, prefer reporting the actual error over dumb 'connection status is not success'. 3. Move host/port parsing directly into reverse_connection condition that is its only user, and simplify it to make its purpose (verifying that a valid port is provided) clear. 4. Use llvm::errs() and llvm::outs() instead of fprintf(). Differential Revision: https://reviews.llvm.org/D111963
-
Michał Górny authored
This reverts commit d8bc7e40. I've linked the wrong Differential Revision.
-
Nikita Popov authored
The applyUpdates() API requires that the CFG is already updated, so make sure to insert the new terminator first.
-
LLVM GN Syncbot authored
-
Petr Hosek authored
This reverts commit 92b8cc52 since it broke the gold plugin.
-
LLVM GN Syncbot authored
-
Noah Shutty authored
We would like to move ThinLTO’s battle-tested file caching mechanism to the LLVM Support library so that we can use it elsewhere in LLVM. Patch By: noajshu Differential Revision: https://reviews.llvm.org/D111371
-
Andrew Young authored
The functionality already exists in AsmParser to parse optional ArrayAttrs and StringAttrs, but only if they are added to a NamedAttrList. This moves the code to parse an optional attribute and add it to an list into a common template, and exposes the simpler functionality of just parsing the optional attributes. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D111918
-
Jim Ingham authored
Adding the to be loaded dylib to the extra images causes the breakpoint to be found in the image added to the target on Linux (though not on Darwin). So adjust the test for this difference.
-
Mikhail Maltsev authored
Currently the member functions std::allocator<T>::allocate, std::experimental::pmr::polymorphic_allocator::allocate and std::resource_adaptor<T>::do_allocate throw an exception of type std::length_error when the requested size exceeds the maximum size. According to the C++ standard ([allocator.members]/4, [mem.poly.allocator.mem]/1), std::allocator<T>::allocate and std::pmr::polymorphic_allocator::allocate must throw a std::bad_array_new_length exception in this case. The patch fixes the issue with std::allocator<T>::allocate and changes the type the exception thrown by std::experimental::pmr::resource_adaptor<T>::do_allocate to std::bad_array_new_length as well for consistency. The patch resolves LWG 3237, LWG 3038 and LWG 3190. Reviewed By: ldionne, #libc, Quuxplusone Differential Revision: https://reviews.llvm.org/D110846
-
Aaron Ballman authored
This appears to be a think-o where the developer was trying to check for a null pointer but was actually checking (redundantly) whether the optional held a valid value or not. We now properly check the pointer for null. This fixes PR51547.
-
Louis Dionne authored
Several entries were in the wrong place, such as API changes appearing under "Build System Changes". This commit shuffles stuff so it sits under the right section.
-
Jim Ingham authored
I added some tests for the case where the breakpoints take immediately to the extant test case, and made a new test case for when the source regex breakpoint will be set in a dlopen-ed library. I also noticed when doing this that "lldbutil.run_to_source_breakpoint can't handle the case where the breakpoint will be in a dlopen-ed library, since it requires the breakpoint to have at least 1 location before run. I fixed that by adding a parameter to say whether a before run location is expected. Differential Revision: https://reviews.llvm.org/D111920
-
Eugene Zhulenev authored
Use wider range for approximating Tanh to match results computed in Eigen with AVX. Reviewed By: cota Differential Revision: https://reviews.llvm.org/D112011
-
Louis Dionne authored
This commit makes the new "runtimes" build (with <monorepo>/runtimes as the root of the CMake invocation) the default way of building libc++. The other supported way of building libc++ is the "bootstrapping" build, where `<monorepo>/llvm` is used as the root of the CMake invocation. All other ways of building libc++ are deprecated effective immediately. There should be no use-case for building libc++ that isn't supported by one of these two builds, and the two new builds work on all environments and are lightweight. They will also make it possible to greatly simplify the build infrastructure of the runtimes, which is currently way too convoluted. Differential Revision: https://reviews.llvm.org/D111356
-
Caitlyn Cano authored
Differential Revision: https://reviews.llvm.org/D111884
-
Yonghong Song authored
There are no functionality change. Fix some comments and rename processAnnotations() to processDeclAnnotations() to avoid confusion when later BTF_KIND_TYPE_TAG is introduced (https://reviews.llvm.org/D111199).
-
Jon Roelofs authored
https://godbolt.org/z/h8ejrG4hb rdar://83597585 Differential Revision: https://reviews.llvm.org/D111839
-
Florian Hahn authored
-
Yonghong Song authored
Commit 009f3a89 ("BPF: remove intrindics @llvm.stacksave() and @llvm.stackrestore()") implemented IRPeephole pass to remove llvm.stacksave()/stackrestore() instrinsics. Buildbot reported a failure: UNREACHABLE executed at ../lib/IR/LegacyPassManager.cpp:1445! which is: llvm_unreachable("Pass modifies its input and doesn't report it"); The code has changed but the implementation didn't return true for changing. This patch fixed this problem.
-
Erich Keane authored
-
Jake Egan authored
The following tests are failing because 64-bit XCOFF object files are not currently supported on AIX. This patch disables these tests on AIX for now. Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D111887
-
Ben Langmuir authored
Fix a dangling else that gcc-11 warned about. The EXPECT_EQ macro expands to an if-else, so the whole construction contains a hidden hangling else.
-
Florian Hahn authored
This simplifies the return value of addRuntimeCheck from a pair of instructions to a single `Value *`. The existing users of addRuntimeChecks were ignoring the first element of the pair, hence there is not reason to track FirstInst and return it. Additionally all users of addRuntimeChecks use the second returned `Instruction *` just as `Value *`, so there is no need to return an `Instruction *`. Therefore there is no need to create a redundant dummy `and X, true` instruction any longer. Effectively this change should not impact the generated code because the redundant AND will be folded by later optimizations. But it is easy to avoid creating it in the first place and it allows more accurately estimating the cost of the runtime checks.
-