- Sep 10, 2021
-
-
Siva Chandra Reddy authored
Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D109538
-
Amy Kwan authored
This patch updates the PC-Relative load and store patterns to utilize the refactored load/store implementation introduced in D93370. PC-Relative implementation has been added to PPCISelLowering.cpp, and also the patterns in PPCInstrPrefix.td have been updated and no longer require AddedComplexity. All existing test cases pass with this update. Differential Revision: https://reviews.llvm.org/D95116
-
Julian Lettner authored
Add integration tests for dyld interposition: DYLD_LIBRARY_PATH and DYLD_INSERT_LIBRARIES. DYLD_INSERT_LIBRARIES is also relevant for TSan thread finalization/destruction sequence in the presence of additional pthread introspection hooks (libBacktraceRecording.dylib for Xcode 'Queue Debugging' feature). rdar://78739125 Differential Revision: https://reviews.llvm.org/D109332
-
Nilay Vaish authored
Reviewed By: ymandel Differential Revision: https://reviews.llvm.org/D109470
-
Craig Topper authored
Soft deprecrate isNullValue/isAllOnesValue and update in tree callers. This matches the changes to the APInt interface from D109483. Reviewed By: lattner Differential Revision: https://reviews.llvm.org/D109535
-
Xing Xue authored
Summary: AIX have 2 byte wchar in 32 bit mode and 4 byte wchar in 64 bit mode. This patch add more missing short wchar handling under the existing _LIBCPP_SHORT_WCHAR macro. Marked test case ctor_move.pass.cpp as XFAIL for 32-bit mode on AIX because UTF-8 constants used cannot be converted to 2-byte wchar (by xingxue). Authored by: jasonliu Reviewed by: ldionne, zibi, SeanP, libc++ Differential Revision: https://reviews.llvm.org/D100777
-
Nikita Popov authored
If the constant is a constant expression, then getAggregateElement() will return null. Guard against this before calling HasFn().
-
Joe Nash authored
This test is very verbose and appears generated by a script. Make it truly autogenerated for easy updates. NFC Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D109530 Change-Id: I1352b17b6d13ab9c5650dbe95ef0da97f71f1930
-
Craig Topper authored
We should have CGP copy the splats into the same basic block as the shift so that SelectionDAG can fold them.
-
Eli Friedman authored
In general, howManyLessThans doesn't really want to work with pointers at all; the result is an integer, and the operands of the icmp are effectively integers. However, isLoopEntryGuardedByCond doesn't like extra ptrtoint casts, so the arguments to isLoopEntryGuardedByCond need to be computed without those casts. Somehow, the values got mixed up with the recent howManyLessThans improvements; fix the confused values, and add a better comment to explain what's happening. Differential Revision: https://reviews.llvm.org/D109465
-
Alexander Slepko authored
This PR adds missing AtomicRMWKind::min/max cases which we would like to use for min/max reduction loop vectorizations. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D104881
-
Louis Dionne authored
-
Steven Wu authored
Don't print stderr to commandline when configuring compiler-rt for darwin platforms. NFC. Reviewed By: delcypher Differential Revision: https://reviews.llvm.org/D108156
-
Sanjay Patel authored
-
Louis Dionne authored
For consistency with the other surrounding tests.
-
Louis Dionne authored
-
Jameson Nash authored
This constrains the Mov* and similar pseudo instruction to take GPR64common register classes rather than GPR64. GPR64 includs XZR which is invalid here, because this pseudo instructions expands into an adrp/add pair sharing a destination register. XZR is invalid on add and attempting to encode it will instead increment the stack pointer causing crashes (downstream report at [1]). The test case there reproduces on LLVM11, but I do not have a test case that reaches this code path on main, since it is being masked by improved dead code elimination introduced in D91513. Nevertheless, this seems like a good thing to fix in case there are other cases that dead code elimination doesn't clean up (e.g. if `optnone` is used and the optimization is skipped). I think it would be worth auditing uses of GPR64 in pseudo instructions to see if there are any similar issues, but I do not have a high enough view of the backend or knowledge of the Aarch64 architecture to do this quickly. [1] https://github.com/JuliaLang/julia/issues/39818 Reviewed By: t.p.northover Differential Revision: https://reviews.llvm.org/D97435
-
Artem Belevich authored
This allows handling i128 values and fixes https://bugs.llvm.org/show_bug.cgi?id=51789. Differential Revision: https://reviews.llvm.org/D109458
-
Louis Dionne authored
[libc++][NFC] Remove remnants of _LIBCPP_HAS_NO_STDOUT, which should have been removed by 87dd5198
-
Saiyedul Islam authored
Sphinx was giving warning on unescaped special symbol *. It was an issue on systems treating warning as error.
-
Simon Pilgrim authored
As reported on PR51796, the _mm256_loadu2_m128i in particular was inserting bitcasts and shuffles with different types making it trickier for some combines, and prevented the value tracker from identifying the shuffle sequences as a single insert_subvector style concat_vectors pattern. This patch instead concatenate the 128-bit unaligned loads with _mm256_set_m128*, which was written to avoid the unnecessary bitcasts and only emits a single shuffle. Differential Revision: https://reviews.llvm.org/D109497
-
Louis Dionne authored
-
Louis Dionne authored
Also, include <type_traits> unconditionally. There really isn't much of a benefit in skipping it when exceptions are disabled.
-
Craig Topper authored
Followup to D109483
-
Stella Stamenova authored
The original change to add the workaround is from 10 years ago and a lot has happened with msvc and cmake and llvm's usage of cmake since and we no longer need the workaround for any scenarios that I am aware of. Build more is now correctly configured for multi-configuration generators such as Visual Studio. The workaround is, however, causing issues with some of the recent mlir tests as because of the workaround we cannot correctly determine whether assertions are enabled (see https://reviews.llvm.org/D105961). The original change is: ``` commit b46fdac4 Author: Andrew Trick <atrick@apple.com> Date: Tue Jun 28 16:32:01 2011 cmake: Our MSVC build does not support config-time build mode. llvm-svn: 134008 ``` Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D109521
-
Nick Desaulniers authored
Follow up to suggestions in D109103 via hans: I think UnreachableDefault (or UnreachableFallthrough) would be a better name now, since it doesn't just omit the range check, it also omits the last bit test. Reviewed By: hans Differential Revision: https://reviews.llvm.org/D109455
-
Louis Dionne authored
-
Louis Dionne authored
-
Louis Dionne authored
This will simplify an upcoming diff.
-
Chris Lattner authored
-
Craig Topper authored
This library function only exists in compiler-rt not libgcc. So this would fail to link unless we were linking with compiler-rt. This is consistent with the recent removal of calls to mulodi4 on 32-bit targets like D108928. I suppose maybe we could keep the libcalls for platforms like Darwin that use compiler-rt exclusively? Reviewed By: nickdesaulniers, MaskRay Differential Revision: https://reviews.llvm.org/D109385
-
Chris Lattner authored
This renames the primary methods for creating a zero value to `getZero` instead of `getNullValue` and renames predicates like `isAllOnesValue` to simply `isAllOnes`. This achieves two things: 1) This starts standardizing predicates across the LLVM codebase, following (in this case) ConstantInt. The word "Value" doesn't convey anything of merit, and is missing in some of the other things. 2) Calling an integer "null" doesn't make any sense. The original sin here is mine and I've regretted it for years. This moves us to calling it "zero" instead, which is correct! APInt is widely used and I don't think anyone is keen to take massive source breakage on anything so core, at least not all in one go. As such, this doesn't actually delete any entrypoints, it "soft deprecates" them with a comment. Included in this patch are changes to a bunch of the codebase, but there are more. We should normalize SelectionDAG and other APIs as well, which would make the API change more mechanical. Differential Revision: https://reviews.llvm.org/D109483
-
Sam Clegg authored
In the case that TLS is used in the single-threaded program, and therefore effectively lowered away, we still optionally create a `__tls_base` symbols, but the code for setting it was assuming it was always created. Differential Revision: https://reviews.llvm.org/D109518
-
Aart Bik authored
new flag requirements crossed the checkin of this new test Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D109524
-
Jon Chesterfield authored
The hsa library must be initialized before any calls into it and destructed after the last call into it. There have been a number of bugs in this area related to member variables which would like to use raii to manage resources acquired from hsa. This patch moves the init/shutdown of hsa into a class, such that when used as the first member variable (could be a base), the lifetime of other member variables are reliably scoped within it. This will allow other classes to use raii reliably when used as member variables within the global. Reviewed By: pdhaliwal Differential Revision: https://reviews.llvm.org/D109512
-
Fangrui Song authored
llvm::errs() is unbuffered. On a POSIX platform, composing a diagnostic string may invoke the ::write syscall multiple times, which can be slow. Buffer writes to a temporary SmallString when composing a single diagnostic to reduce the number of ::write syscalls to one (also easier to read under strace/truss). For an invocation of ld.lld with 62000+ lines of `ld.lld: warning: symbol ordering file: no such symbol: ` warnings (D87121), the buffering decreases the write time from 1s to 0.4s (for /dev/tty) and from 0.4s to 0.1s (for a tmpfs file). This can speed up `relocation R_X86_64_PC32 out of range` diagnostic printing as well with `--noinhibit-exec --no-fatal-warnings`. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D87272
-
Neumann Hon authored
This patch adds class SystemZFrameLowering which is a SystemZ-specific class detailing special registers used by calling conventions on the target. SystemZELFFrameLowering and SystemZXPLINKFrameLowering implement this class for ELF and XPLINK64 respectively. Previous functionality in SystemZFrameLowering is moved to SystemZELFFrameLowering. SystemZXPLINKFrameLowering can then be implemented in future patches. Reviewed By: uweigand, Kai Differential Revision: https://reviews.llvm.org/D108777
-
Jon Chesterfield authored
Given D109057, change test runner to use the libomptarget-x-bc-path argument instead of the LIBRARY_PATH environment variable to find the device library. Also drop the use of LIBRARY_PATH environment variable as it is far too easy to pull in the device library from an unrelated toolchain by accident with the current setup. No loss in flexibility to developers as the clang commandline used here is still available. Reviewed By: jdoerfert, tianshilei1992 Differential Revision: https://reviews.llvm.org/D109061
-
- Sep 09, 2021
-
-
Ryan Mansfield authored
Reviewed By: teemperor Differential Revision: https://reviews.llvm.org/D109508
-
Akira Hatanaka authored
module lookup by name alone This removes the need to create a fake source file that imports a module. rdar://64538073 Differential Revision: https://reviews.llvm.org/D109485
-