- Aug 27, 2020
-
-
Ryan Prichard authored
* When _LIBUNWIND_SUPPORT_COMPACT_UNWIND is defined in config.h, define it to "1" like the other macros. These macros are still checked using "#if defined(...)", however. * Include libunwind.h in AddressSpace.hpp before using _LIBUNWIND_ARM_EHABI. * Rename ProcessFrameHeaderCache to TheFrameHeaderCache, because some configurations (e.g. Android / hermetic static libraries) can have one cache per shared object in the process. (When there are more copies, it's more important not to waste memory in the cache.) * Add 3 missing header files to LIBUNWIND_HEADERS. Differential Revision: https://reviews.llvm.org/D86254
-
Matt Arsenault authored
I forgot to squash this with 0b7f6cc7
-
Matt Arsenault authored
AArch64, X86 and Mips currently directly consumes these and custom lowering to produce a libcall, but really these should follow the normal legalization process through the libcall/lower action.
-
Lang Hames authored
This will make stateful registrars (e.g. a future TargetProcessControl based registrar) easier to deal with.
-
Joseph Huber authored
Summary: This patch changes the libomptarget runtime to always emit debug messages that occur before offloading failure. The goal is to provide users with information about why their application failed in the target region rather than a single failure message. This is only done in regions that precede offloading failure so this should not impact runtime performance. if the debug environment variable is set then the message is forwarded to the debug output as usual. A new environment variable was added for future use but does nothing in this current patch. LIBOMPTARGET_INFO will be used to report runtime information to the user if requrested, such as grid size, SPMD usage, or data mapping. It will take an integer indicating the level of information verbosity and a value of 0 will disable it. Reviewers: jdoerfort Subscribers: guansong sstefan1 yaxunl ye-luo Tags: #OpenMP Differential Revision: https://reviews.llvm.org/D86483
-
Craig Topper authored
-
Arthur Eubanks authored
Caused by https://reviews.llvm.org/D85159
-
Arthur Eubanks authored
As discussed in http://lists.llvm.org/pipermail/llvm-dev/2020-July/143801.html. Currently no users outside of unit tests. Replace all instances in tests of -constprop with -instsimplify. Notable changes in tests: * vscale.ll - @llvm.sadd.sat.nxv16i8 is evaluated by instsimplify, use a fake intrinsic instead * InsertElement.ll - insertelement undef is removed by instsimplify in @insertelement_undef llvm/test/Transforms/ConstProp moved to llvm/test/Transforms/InstSimplify/ConstProp Reviewed By: lattner, nikic Differential Revision: https://reviews.llvm.org/D85159
-
Greg Clayton authored
Breakpad creates minidump files that can a module loaded multiple times. We found that when a process mmap's the object file for a library, this can confuse breakpad into creating multiple modules in the module list. This patch fixes the GetFilteredModules() to check the linux maps for permissions and use the one that has execute permissions. Typically when people mmap a file into memory they don't map it as executable. This helps people to correctly load minidump files for post mortem analysis. Differential Revision: https://reviews.llvm.org/D86375
-
Craig Topper authored
Clang now defaults to -march=pentium4 -mtune=generic so we don't need modern tune settings on pentium4.
-
Alina Sbirlea authored
Summary: When looking for all reaching definitions, we sort basic blocks on dominance. When sorting looking for properlyDominates() handles the case A == B. Authored by: pranavb Differential Revision: https://reviews.llvm.org/D86661
-
Adrian Prantl authored
-
Craig Topper authored
[X86] Default to -mtune=generic unless -march is passed to the driver. Add TuneCPU to the AST serialization This patch defaults to -mtune=generic unless -march is present. If -march is present we'll use the empty string unless its overridden by mtune. The back should use the target cpu if the tune-cpu isn't present. It also adds AST serialization support to fix some tests that emit AST and parse it back. These tests diff the IR against the output from not going through AST. So if we don't serialize the tune CPU we fail the diff. Differential Revision: https://reviews.llvm.org/D86488
-
Juneyoung Lee authored
As discussed in D86576, noundef attribute is removed from masked store/load/gather/scatter's pointer operands. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D86656
-
Ahmed Bougacha authored
It was added for GISel, but SDAG could use it too!
-
Juneyoung Lee authored
According to the current LangRef, Memset/memcpy/memmove can take a null/dangling pointer if the size is zero. (Relevant thread: http://lists.llvm.org/pipermail/llvm-dev/2017-July/115665.html ) This patch expands it and allows the functions to take undef/poison pointers too. This required the updates in the align attribute since it isn't specified what is the alignment of undef/poison pointers. This patch states that their alignment is 1. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D86643
-
Thomas Raoux authored
Based on the RFC discussed here: https://llvm.discourse.group/t/rfc-vector-standard-add-bitcast-operation/1628/ Adding a vector.bitcast operation that allows casting to a vector of different element type. The most minor dimension bitwidth must stay unchanged. Differential Revision: https://reviews.llvm.org/D86580
-
JonChesterfield authored
-
Sanjay Patel authored
A >2x insert might crash if we do not generate the shuffle mask carefully. D86160
-
Nikita Popov authored
This is a reboot of D84655, now performing the inner icmp simplification query without undef folds. It should be possible to handle the current foldMinMaxSharedOp() fold based on this, by moving the logic into icmp of min/max instead, making it more general. We can't drop the folds for constant operands, because those also allow undef, which we exclude here. The tests use assumes for exhaustive coverage, and have a few more examples of misc folds we get based on icmp simplification. Differential Revision: https://reviews.llvm.org/D85929
-
Nikita Popov authored
A sample of some folds we get if we perform icmp simplification on min/max intrinsics.
-
Muhammad Asif Manzoor authored
Add the functionality to lower fceil for passthru variant Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D84548
-
Arthur Eubanks authored
Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D86653
-
Owen Anderson authored
Original Commit Message: After the commit r368987 (rG643adb55) was landed, the frame record (FP and LR register) may be placed in the middle of a stack frame if a function has both callee-saved general-purpose registers and floating point registers. This will break the stack unwinders that simply walk through the frame records (based on the guarantee from AAPCS64 "The Frame Pointer" section). This commit fixes the problem by adding the frame record offset. Patch By: logan
-
Sanjay Patel authored
We have a gap in our store merging capabilities for shift+truncate patterns as discussed in: https://llvm.org/PR46662 I generalized the code/comments for this function in earlier commits, so we only need ease the type restriction and adjust the address/endian checking to make this work. AArch64 lets us switch endian to make sure that patterns are matched either way. Differential Revision: https://reviews.llvm.org/D86420
-
aartbik authored
Thumb2 test for the fixed issue with unusual length. https://bugs.llvm.org/show_bug.cgi?id=47299 Reviewed By: SjoerdMeijer Differential Revision: https://reviews.llvm.org/D86646
-
Aleksandr Platonov authored
[Support][Windows] Fix incorrect GetFinalPathNameByHandleW() return value check in realPathFromHandle() `GetFinalPathNameByHandleW(,,N,)` returns: - `< N` on success (this value does not include the size of the terminating null character) - `>= N` if buffer is too small (this value includes the size of the terminating null character) So, when `N == Buffer.capacity() - 1`, we need to resize buffer if return value is > `Buffer.capacity() - 2`. Also, we can set `N` to `Buffer.capacity()`. Thus, without this patch `realPathFromHandle()` returns unfilled buffer when length of the final path of the file is equal to `Buffer.capacity()` or `Buffer.capacity() - 1`. Reviewed By: andrewng, amccarth Differential Revision: https://reviews.llvm.org/D86564
-
Jon Chesterfield authored
-
AndreyChurbanov authored
Patch by mati865@gmail.com Differential Revision: https://reviews.llvm.org/D86552
-
Kazuaki Ishizaki authored
Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D86563
-
Eric Christopher authored
it's being built and called (and substituted).
-
Arthur Eubanks authored
InstSimplify should do all transformations that ConstProp does, but one thing that ConstProp does that InstSimplify wouldn't is inline vector instructions that are constants, e.g. into a ret. Previously vector instructions wouldn't be inlined in InstSimplify because llvm::Simplify*Instruction() would return nullptr for specific instructions, such as vector instructions that were actually constants, if it couldn't simplify them. This changes SimplifyInsertElementInst, SimplifyExtractElementInst, and SimplifyShuffleVectorInst to return a vector constant when possible. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D85946
-
Arthur Eubanks authored
-
Francesco Petrogalli authored
The version of `st1d` that operates with vector plus immediate addressing mode uses the alias `st1d { <Zn>.d }, <Pg>, [<Za>.d]` for rendering `st1d { <Zn>.d }, <Pg>, [<Za>.d, #0]`. The disassembler was generating `<Zn>.s` instead of `<Zn>.d>`. Differential Revision: https://reviews.llvm.org/D86633 -
Steven Wu authored
For `ld64` which uses legacy LTOCodeGenerator, it relies on writeMergedModule to perform `ld -r` (generates a linked object file). If all the inputs to `ld -r` is fullLTO bitcode, `ld64` will linked the bitcode module, internalize all the symbols and write out another fullLTO bitcode object file. This bitcode file doesn't have all the bitcode inputs and it should not have LTOPostLink module flag. It will also cause error when this bitcode object file is linked with other LTO object file. Fix the issue by not applying LTOPostLink flag during writeMergedModule function. The flag should only be added when all the bitcode are linked and ready to be optimized. rdar://problem/58462798 Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D84789
-
Michael Kruse authored
As suggested by David Blaikie at ihttps://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20200824/822584.html
-
Michael Kruse authored
As suggested by David Blaike at https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20200824/822584.html
-
Christopher Tetreault authored
Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D82582
-
Krzysztof Parzyszek authored
-
Matt Arsenault authored
This would assert with unaligned DS access enabled. The offset may not be aligned. Theoretically the pattern predicate should check the memory alignment, although it is possible to have the memory be aligned but not the immediate offset. In this case I would expect it to use ds_{read|write}_b64 with unaligned access, but am not clear if there's a reason it doesn't.
-