- Dec 23, 2022
-
-
Florian Hahn authored
-
Mark Mendell authored
StreamingInterfaceINTEL has been recently added to the SPIR-V headers: https://github.com/KhronosGroup/SPIRV-Headers/commit/70ff9d939cd7fd0c758756ac57ab0c7c6d6c64d6 Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D140476
-
Blue Gaston authored
We are in the process of enabling sanitizer_common unit tests on arm64 for apple devices. rdar://101436019 The test `CompactRingBuffer.int64` is failing on arm64 with the error: ```==17265==ERROR: SanitizerTool failed to deallocate 0xfffffffffffff000 (-4096) bytes at address 0x000105c30000 SanitizerTool: CHECK failed: sanitizer_posix.cpp:63 "(("unable to unmap" && 0)) != (0)" (0x0, 0x0) (tid=157296)``` If page size is sufficiently larger than alignment then this code: UnmapOrDie((void*)end, map_end - end); end is will be greater than map_end causing the value passed to UnmapOrDie to be negative. This is caused when GetPageSizeCached returns 16k and alignment is 8k. map_size and what is mapped by mmap uses size and alignment which is smaller than what is calculated by end using the actual page size. Therefore, map_end ends up being less than end. The call to mmap is allocating sufficent page-aligned memory, because it calls RoundUp within MmapOrDieOnFatalError. But this size is not being captured by map_size. We can address this by rounding up map_size here to be page-aligned. This ensures that map_end will be greater than or equal to end and that it will match mmaps use of page-aligned value, and the subsequent call to munmap will also be page-aligned. Differential Revision: https://reviews.llvm.org/D140353
-
Jessica Paquette authored
Add `nooutline` + update LangRef to say it exists. This makes it possible to say "don't outline from this function ever." We want to be able to toggle whether or not a function should be in the search set regardless of default behaviour. Add testcases for the IR Outliner + Machine Outliner. Also remove an unnecessary check for an empty function in the Machine Outliner. Differential Revision: https://reviews.llvm.org/D140438
-
Michael Jones authored
Add support for the %e/E conversion in printf, as well as unit tests. It does not yet support long doubles. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D140042
-
Augusto Noronha authored
Make the lldb test target depend on LTO, since TestFullLtoStepping needs it (prior to this patch, running "ninja check-lldb" would not build libLTO). Differential Revision: https://reviews.llvm.org/D140051
-
Matt Arsenault authored
Use the readfirstlane hack for the scalar cases as a hack to combine globalisel and sdag tests. gfx6 stores are a bit broken in globalisel, and scalar returns are totally broken in sdag.
-
Mitch Phillips authored
New symbol used by libcxx as of https://reviews.llvm.org/D138196, needs to be added to the symbol deps list.
-
Matt Arsenault authored
Currently the process is terminated after the timeout. Add an option to let the process resume after the timeout instead. https://reviews.llvm.org/D138952
-
Matt Arsenault authored
This was never updated for the address space number shuffle.
-
Matt Arsenault authored
-
Chenguang Wang authored
Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D139234
-
David Green authored
This adds some tablegen patterns for RSHRN, which performs a rounding shift with narrow. This is similar to the existing SHRN patterns with an extra addition to perform the rounding, that adds 1<<(shift-1) before the right shift. Because the round immediate and the shift amount are tied, it goes via a ComplexPattern that uses a SelectRoundingVLShr method to perform the selection checks. aarch64_neon_rshrn are expanded into the sequence of equivalent instructions (trunc(shr(add(x, 1<<(sht-1)), sht))) so that they can be converted back into RSHRN. Which also allows us to match raddhn through the adjusted patterns that previously used aarch64_neon_rshrn. DIfferential Revision: https://reviews.llvm.org/D140297
-
Amy Huang authored
Specify python3, and replace / with // to do integer division.
-
Ramkumar Ramachandra authored
attr-or-type-format.td contains tests for various attributes and types, but nowhere in the testsuite is the customAssemblyFormat for an EnumAttr (enum class in C++) exercised. Fix this by adding a test. Signed-off-by:
Ramkumar Ramachandra <r@artagnon.com> Differential Revision: https://reviews.llvm.org/D140034
-
Ties Stuij authored
Ensure scalar is at least as wide as type, but only if the specified condition is met. Reviewed By: paquette Differential Revision: https://reviews.llvm.org/D140305
-
Ayke van Laethem authored
The attiny4/attiny5/attiny9/attiny10 have a slightly modified instruction set that drops a number of useful instructions. This patch makes sure to not emit them on these "reduced tiny" cores. The affected instructions are: * lds and sts (load/store directly from data) * ldd and std (load/store with displacement) * adiw and sbiw (add/sub register pairs) * various other instructions that were emitted without checking whether the chip actually supports them (movw, adiw, etc) There is a variant on lds and sts on these chips, but it can only address a limited portion of the address space and is mainly useful to load/store I/O registers (as an extension to the in and out instructions). I have not implemented it here, implementing it can be done in a separate patch. This patch is not optimal. I'm sure it can be improved a lot. For example, we could teach the instruction selector to not select lddw/stdw instructions so that the weird pointer adjustments are not necessary. But for now I've focused just on correctness, not on code quality. Updates: https://github.com/llvm/llvm-project/issues/53459 Differential Revision: https://reviews.llvm.org/D131867
-
- Dec 22, 2022
-
-
Jay Foad authored
D72845 implemented the equivalent IR optimization in InstCombine so it seems that there's no advantage to doing it during isel too. This partially reverts D72844. Differential Revision: https://reviews.llvm.org/D140546
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Nikita Popov authored
-
Nikita Popov authored
-
Nikita Popov authored
-
Aliia Khasanova authored
Differential Revision: https://reviews.llvm.org/D140535
-
Alex Richardson authored
C++17 defines the C11 `aligned_alloc`, so we can use that instead of posix_memalign. This change allows building against picolibc without defining _DEFAULT_SOURCE/_GNU_SOURCE. The C11 `aligned_alloc` function should be available on all supported non-Windows platforms except for macOS where we need version 10.15. There is one caveat: aligned_alloc() requires that __size is a multiple of __alignment, but [new.delete.general] only states "if the value of an alignment argument passed to any of these functions is not a valid alignment value, the behavior is undefined". To handle calls such as ::operator new(1, std::align_val_t(128)), we round up __size to __alignment (and check for wrap-around). This is required at least for macOS where aligned_alloc(128, 1) returns an error instead of allocating memory (glibc ignores the specification). Differential Revision: https://reviews.llvm.org/D138196
-
Nikita Popov authored
-
Nikita Popov authored
There is a minor change in operand order (of a commutative instruction).
-
Nikita Popov authored
The asm test has minor differences in instruction scheduling only.
-
Yitzhak Mandelbaum authored
The handling of return statements, added in support of context-sensitive analysis, has a bug relating to functions that return reference types. Specifically, interpretation of such functions can result in a crash from a bad cast. This patch fixes the bug and guards all of that code with the context-sensitive option, since there's no reason to execute at all when context-sensitive analysis is off. Differential Revision: https://reviews.llvm.org/D140430
-
Matt Arsenault authored
This fixes an annoying assymmetry in the test organization. We have known-never-nan.ll for dedicated isKnownNeverNaN handling tests, but the isKnownNeverInfinity were in floating-point-compare.ll. Move the more targeted tests into a separate file to match.
-
Matt Arsenault authored
-
Matt Arsenault authored
This didn't have a negative test.
-
Yitzhak Mandelbaum authored
Previously, the analysis modeled global variables appearing in the _body_ of any function (including constructors). But, that misses those appearing in constructor _initializers_. This patch adds the initializers to the set of expressions used to determine which globals to model. Differential Revision: https://reviews.llvm.org/D140501
-
Yitzhak Mandelbaum authored
Previously, in the case of an optional constructed from `nullopt`, we relied on the value constructed for the `nullopt`. This complicates the implementation and exposes it to bugs (indeed, one such was found), yet doesn't improve the engine. Instead, this patch constructs a fresh optional representation, rather than relying on the underlying nullopt representation. Differential Revision: https://reviews.llvm.org/D140506
-
Matt Arsenault authored
-
Matthias Springer authored
* Rewrite vector.transfer_write of vectors with 1 element to memref.store * Rewrite vector.extract(vector.transfer_read) to memref.load Differential Revision: https://reviews.llvm.org/D140391
-
Matt Arsenault authored
-
Nikita Popov authored
-
Jordan Rupprecht authored
I don't think the intent of this test is to make sure we only have one compile unit; it's to make sure request_compileUnits returns something sensible. Relax the test case to just make sure that the main source file is one of the compile units returned, even if there are others. Fixes llvm.org/pr49418. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D138344
-
Matt Arsenault authored
-