- Nov 02, 2022
-
-
Max Kazantsev authored
This prevents duplicates to be pushed into the stack and hypothetically should reduce memory footprint on ugly cornercases with multiple repeating duplicates in 'and' tree.
-
Tom Praschan authored
Fixes https://github.com/clangd/clangd/issues/1082 Differential Revision: https://reviews.llvm.org/D136925
-
Ivan Butygin authored
It can be useful to external users as well for detecting if there were any changes in IR between passes. Differential Revision: https://reviews.llvm.org/D137078
-
Anton Sidorenko authored
Differential Revision: https://reviews.llvm.org/D137174
-
Moritz Sichert authored
In ELF, symbols of type STT_GNU_IFUNC need to be resolved by calling the function at the symbol's address. This is implemented by adding special stubs for all symbols of that type. Differential Revision: https://reviews.llvm.org/D105465
-
Nikita Popov authored
Use DL-aware ConstantFoldCompareInstOperands() API instead of ConstantExpr API. The practical effect of this is that SCCP can now fold comparisons that require DL.
-
Nikita Popov authored
This is a fairly large method that is unlikely to benefit from inlining.
-
Nikita Popov authored
-
Nikita Popov authored
Relative to the previous attempt, this also updates the ValueLattice unit tests. ----- Resolve the TODO about incorrect getCompare() behavior. This can be made more precise (e.g. by materializing the undef value and performing constant folding on it), but for now just return an unknown result to fix the correctness issue. This should be NFC in terms of user-visible behavior, because the only user of this method (SCCP) was already guarding against UndefValue results.
-
Nikita Popov authored
Having all these instruction-specific overloads does not seem to provide any compile-time benefit, so drop them in favor of the generic methods accepting "const Instruction *". Only leave behind the per-instruction AAQI overloads, which are part of the internal implementation.
-
Matthias Springer authored
This op dumps the associated payload IR to stderr. It has proven useful for printf-style debugging. Differential Revision: https://reviews.llvm.org/D137151
-
Guillaume Chatelet authored
The new framework makes it explicit which processor feature is being used and allows for easier per platform customization: - ARM cpu now uses trivial implementations to reduce code size. - Memcmp, Bcmp and Memmove have been optimized for x86 - Bcmp has been optimized for aarch64. This is a reland of https://reviews.llvm.org/D135134 (b3f1d58a, 02841488) Reviewed By: courbet Differential Revision: https://reviews.llvm.org/D136595
-
Muhammad Omair Javaid authored
This reverts commit 870fbf8e.
-
Bjorn Pettersson authored
Commit 359bc5c5 caused Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failures in decomposeGEP when the GEP pointer operand is a vector. Fix is to use DataLayout::getIndexTypeSizeInBits when fetching the index size, as it will use the scalar type in case of a ptr vector. Differential Revision: https://reviews.llvm.org/D137185
-
David Sherwood authored
This patch adds the assembly/disassembly for the following instructions: ld1q : Gather load quadwords st1q : Scatter store quadwords The reference can be found here: https://developer.arm.com/documentation/ddi0602/2022-09 Differential Revision: https://reviews.llvm.org/D137167
-
Guillaume Chatelet authored
This patch extracts the testing logic from `op_tests.cpp` into `memory_check_utils.h` so we can reuse it for mem* function integration tests. This makes testing consistent and thorough. For instance this catches a bug that got unnoticed during submission of D136595 and D135134. Integration test for memcmp was only testing a single size. This also leverages ASAN to make sure that data is not read / written outside permitted boundaries Differential Revision: https://reviews.llvm.org/D136865
-
David Sherwood authored
This patch adds the assembly/disassembly for the following predicate pair instructions: pext: Set pair of predicates from predicate-as-counter whilelt: While incrementing signed scalar less than scalar whilele: While incrementing signed scalar less than or equal to scalar whilegt: While incrementing signed scalar greater than scalar whilege: While incrementing signed scalar greater than or equal to scalar whilelo: While incrementing unsigned scalar lower than scalar whilels: While incrementing unsigned scalar lower or same as scalar whilehs: While decrementing unsigned scalar higher or same as scalar whilehi: While decrementing unsigned scalar higher than scalar The reference can be found here: https://developer.arm.com/documentation/ddi0602/2022-09 Differential Revision: https://reviews.llvm.org/D136759
-
Muhammad Omair Javaid authored
Flang build on windows with MSVC environment and clang-cl compiler requires clang_rt.builtin.${target} library. This patch allows us to locate and include this link library. This is mostly needed for flang runtime and associated unittests. Clang implicitly uses this library while calling lld-link via clang driver however a standalone call to lld-link doesnt link against clang_rt library on its own. Differential Revision: https://reviews.llvm.org/D137112 -
Muhammad Omair Javaid authored
c-strings.c and volatile-1.c failing due to alignment issue on WoA. I am going to mark them as XFAIL for now.
-
Fangrui Song authored
-
Nikita Popov authored
This is a continuation of D136939, adding the default attributes (nosync, nofree, nocallback and willreturn) to more readnone X86 intrinsics. This still doesn't cover all of them... Differential Revision: https://reviews.llvm.org/D137163
-
gonglingqin authored
-
Jean Perier authored
Use the utility to lower Constant<T> that was split from current lowering in https://reviews.llvm.org/D136955. The difference in HLFIR is the addition of a fir.declare on constant outlined in memory so that all the information about them is available. Lowering to HLFIR is enabled in Brideg::genExprValue to allow testing of scalar constant lowering. Differential Revision: https://reviews.llvm.org/D137084
-
Siva Chandra Reddy authored
-
Fangrui Song authored
PrivateLinkage and HiddenVisibility are implicitly dso_local.
-
Zi Xuan Wu (Zeson) authored
The logic to calculate the offset of lrw16 is complex and the Value before adjustFixupValue should in range of 0 <= (Value >> 2) <= 0xfe. It also influences the relax condition.
-
Zi Xuan Wu (Zeson) authored
.bss without symbol and num following can't be compiled in CSKY target, which is consistent to GCC behavior. So when --save-temps generates .bss, we should UsesELFSectionDirectiveForBSS to avoid such error.
-
Michał Górny authored
Replace the use of the deprecated `llvm-config` tool with LLVM's CMake files for detecting LLVM in standalone builds. Differential Revision: https://reviews.llvm.org/D137024
-
Carlos Alberto Enciso authored
The sanitizer reported memory leak issues; the command line used in the test case is: llvm-debuginfo-analyzer --attribute=level --print=instructions pr-incorrect-instructions-dwarf-clang.o When dealing with logical instruction lines associated with an artificial logical scope, skip the process of finding their enclosing scope. Just add them to the scope. Create logical debug lines only if the command line specifies: --print=lines or --print=elements or --print=all Reviewed By: jryans, vitalybuka Differential Revision: https://reviews.llvm.org/D137156 -
Jan Svoboda authored
The dependency scanner relies on the module map filtering logic in `ASTWriter`. The algorithm currently considers all system module maps affecting, which is not only sub-optimal, but can also cause failures when building a module explicitly (see attached test case). This patch applies the same filtering logic to system module maps. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D136007
-
chenglin.bi authored
The special case for bit extraction pattern is `((x >> C) & mask) << C`. It can be combined to `x & (mask << C)` by return true in isDesirableToCommuteWithShift. Fix: #56427 Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D136014
-
Thomas Raoux authored
When a value used in the forOp is defined outside the region but within the parent warpOp we need to return and distribute the value to pass it to new operations created within the loop. Also simplify the lambda interface. Differential Revision: https://reviews.llvm.org/D137146
-
Johannes Doerfert authored
The handling for MemIntrinsic is not dependent on optimistic information, no need to put it in update for now. Added a TODO though.
-
Johannes Doerfert authored
-
Johannes Doerfert authored
OpenMP offloading always uses uniform workgroups, see https://reviews.llvm.org/D135374. The runtime doesn't need to handle non-uniform workgroups at all either. Differential Revision: https://reviews.llvm.org/D135444
-
Craig Topper authored
This reverts commit 82c820b9. This failed llvm-testsuite in our downstream and a similar issue was reported by @rogfer01.
-
Jan Svoboda authored
In D106876, we stopped serializing module map files that didn't affect compilation of the current module. However, since each `SourceLocation` is simply an offset into `SourceManager`'s global buffer of concatenated input files in, these need to be adjusted during serialization. Otherwise, they can incorrectly point after the buffer or into subsequent input file. This patch starts adjusting `SourceLocation`s, `FileID`s and other `SourceManager` offsets in `ASTWriter`. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D136624
-
Jan Svoboda authored
This patch delays some `ASTWriter` logic until after we've checked whether the source location entry we're serializing as an affecting file or not. Depends on D137214. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D137216
-
Konstantin Varlamov authored
This makes the tests more minimal, and in particular it avoids relying on a complete `<cstdlib>`, which may not be available on all platforms. Differential Revision: https://reviews.llvm.org/D137188
-
Jan Svoboda authored
This is a prep-patch for D136624 which allows querying `SourceManager` with raw offsets instead of `SourceLocation`s. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D137215
-