- Feb 23, 2022
-
-
Arthur Eubanks authored
-
Joseph Huber authored
Summary: We don't need this static allocator to survive the entire file, the strings stored have a defined lifetime.
-
Joseph Huber authored
Summary: This patch removes the error we recieve when attempting to extract offloading sections. We shouldn't consider this a failure because extracting bitcode isn't necessarily required.
-
David Blaikie authored
-
Philip Reames authored
It turns out that instcombine is smarter than I am, and several of these ended up folded for the wrong reasons.
-
Amara Emerson authored
This reverts commit 55c181a6. The original commit I made was an old patch, mea culpa. Committing the right implementation with test case for the reported crash.
-
Arthur Eubanks authored
-
Alina Sbirlea authored
-
Alina Sbirlea authored
-
Philip Reames authored
-
Fangrui Song authored
Note: on some architectures lik AArch64, the PC does not match compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cpp:`__sanitizer_cov_trace_pc_guard`
-
Stanislav Mekhanoshin authored
-
Fangrui Song authored
Port the change to compiler-rt/lib/fuzzer/FuzzerTracePC.cpp . Update RISCV to use PC-2: this is coarse (C extension may be disabled) but sufficient for pure symbolization purpose. The commit is separate from D120362 so that bisecting/reverting is easier.
-
Aart Bik authored
Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D120347
-
Philip Reames authored
-
Fangrui Song authored
x86 uses offset 1 while most RISC architectures use offset 4. Check x86 first to prevent changes for new RISC architectures. Reviewed By: #sanitizers, vitalybuka Differential Revision: https://reviews.llvm.org/D120362
-
Arthur Eubanks authored
-
Arthur Eubanks authored
This is causing ../../llvm/include/llvm/Object/MachO.h:379:13: warning: private field 'Kind' is not used [-Wunused-private-field] FixupKind Kind; Previous attempt in a23f7c0c.
-
Wouter van Oortmerssen authored
Intrinsics like `memset` were not emitted as `.functype` because WebAssemblyAsmPrinter::emitExternalDecls explicitly skips symbols that are isIntrinsic. Removing that check doesn't work, since the symbol from the module refers to a 4-argument `llvm.memset.p0i8.i32` rather than the 3-argument `memset` symbol referenced in the call. Our `WebAssemblyMCLowerPrePass` however does collect the `memset` symbol, so the current solution is as simple as emitting `.functype` for those. Fixes: https://github.com/llvm/llvm-project/issues/53712 Differential Revision: https://reviews.llvm.org/D120365
-
Philip Reames authored
-
Philip Reames authored
-
Philip Reames authored
-
Owen Anderson authored
Set std::numeric_limits<>::tinyness_before to true for floating point types on ARM platforms. Section E1.3.5 in the ARMv8 Architecture Reference Manual specifies: Underflow. The bit is set to 1 if the absolute value of the result of an operation, produced before rounding, is less than the minimum positive normalized number for the destination precision, and the rounded result is inexact. Reviewed By: #libc, majnemer, EricWF Differential Revision: https://reviews.llvm.org/D116338
-
Rahman Lavaee authored
Conceptually, the new encoding emits the offsets and sizes as label differences between each two consecutive basic block begin and end label. When decoding, the offsets must be aggregated along with basic block sizes to calculate the final relative-to-function offsets of basic blocks. This encoding uses smaller values compared to the existing one (offsets relative to function symbol). Smaller values tend to occupy fewer bytes in ULEB128 encoding. As a result, we get about 25% reduction in the size of the bb-address-map section (reduction from about 9MB to 7MB). Reviewed By: tmsriram, jhenderson Differential Revision: https://reviews.llvm.org/D106421
-
David Green authored
We have a combine for converting mul(dup(ext(..)), ...) into mul(ext(dup(..)), ..), for allowing more uses of smull and umull instructions. Currently it looks for vector insert and shuffle vectors to detect the element that we can convert to a vector extend. Not all cases will have a shufflevector/insert element though. This started by extending the recognition to buildvectors (with elements that may be individually extended). The new method seems to cover all the cases that the old method captured though, as the shuffle will eventually be lowered to buildvectors, so the old method has been removed to keep the code a little simpler. The new code detects legal build_vector(ext(a), ext(b), ..), converting them to ext(build_vector(a, b, ..)) providing all the extends/types match up. Differential Revision: https://reviews.llvm.org/D120018
-
Jez Ng authored
This is what the Clang standalone build does too. And setting this seems to be required to get the standalone build to work on my Mac. Reviewed By: #lld-macho, MaskRay, Ericson2314, smeenai Differential Revision: https://reviews.llvm.org/D120269
-
Ben Barham authored
Errors are generally checked in clients by comparing to the portable error condition in `std::errc`, which will have the `generic_category` (eg. `std::errc::no_such_file_or_directory`). While in practice these are usually equivalent for the standard errno's, they are not in *all* implementations. One such example is CentOS 7. Differential Revision: https://reviews.llvm.org/D120299
-
Nico Weber authored
This is needed to pick up the workaround in fb1aa286 when building with a modern MSVC (like LLVM now requires).
-
Brendon Cahoon authored
A call to getInsertIndex() in getTreeCost() is returning None, which causes an assert because a non-constant index value for insertelement was not expected. This case occurs when the insertelement index value is defined with a PHI. Differential Revision: https://reviews.llvm.org/D120223
-
Alexey Bataev authored
-
Michael Kruse authored
-
Okwan Kwon authored
Fold arith.extract_slice into arith.constant when the source is a constant splat and the result type is statically shaped.
-
Alexander Yermolovich authored
Cleanup after removing caching mechanims for ranges/abbrevs. Reviewed By: rafauler, yota9 Differential Revision: https://reviews.llvm.org/D120174
-
Nico Weber authored
-
Björn Schäpers authored
..regardless of the chosen style. Fixes https://github.com/llvm/llvm-project/issues/53818 Differential Revision: https://reviews.llvm.org/D120278
-
Björn Schäpers authored
Setting a boolean within an if and only using it in the very next if is a bit confusing. Merge it into one if. Differential Revision: https://reviews.llvm.org/D120237
-
Reid Kleckner authored
This reverts commit a23f7c0c. Breaks the build.
-
Adrian Prantl authored
-
Adrian Prantl authored
-
Dmitry Vassiliev authored
The "Correlated Value Propagation" pass was missing a case when handling select instructions. It was only handling the "false" constant value, while in NVPTX the select may have the condition (and thus the branches) inverted, for example: ``` loop: %phi = phi i32* [ %sel, %loop ], [ %x, %entry ] %f = tail call i32* @f(i32* %phi) %cmp1 = icmp ne i32* %f, %y %sel = select i1 %cmp1, i32* %f, i32* null %cmp2 = icmp eq i32* %sel, null br i1 %cmp2, label %return, label %loop ``` But the select condition can be inverted: ``` %cmp1 = icmp eq i32* %f, %y %sel = select i1 %cmp1, i32* null, i32* %f ``` The fix is to enhance "Correlated Value Propagation" to handle both branches of the select instruction. Reviewed By: nikic, lebedev.ri Differential Revision: https://reviews.llvm.org/D119643
-