- Aug 23, 2023
-
-
Jianjian GUAN authored
This patch supports Zvfhmin for RISCV codegen. Reviewed By: michaelmaitland Differential Revision: https://reviews.llvm.org/D151414
-
Krasimir Georgiev authored
Allows more easily to manage custom additions and removals.
-
esmeyi authored
-
Guray Ozen authored
This works makes links more readable in NVVM dialect's tablegen file. Differential Revision: https://reviews.llvm.org/D158585
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Martin Braenne authored
These are broken out from https://reviews.llvm.org/D156658, which it now seems obvious isn't the right way to solve the non-convergence. Instead, my plan is to address the non-convergence through pointer value widening, but the exact way this should be implemented is TBD. In the meantime, I think there's value in getting these repros submitted to record the current undesirable behavior. Reviewed By: ymandel, xazax.hun Differential Revision: https://reviews.llvm.org/D158513
-
Karl-Johan Karlsson authored
When compiling compiler-rt with -fsanitize=undefined and running testcases you end up with the following warning: UBSan: floatsidf.c:32:9: negation of -2147483648 cannot be represented in type 'si_int' (aka 'long'); cast to an unsigned type to negate this value to itself The same kind of pattern exists in floatsisf.c This was found in an out of tree target. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D146123
-
Aiden Grossman authored
Currently BenchmarkRunner.cpp stores the return code of recvmsg as size_t. Not only is this incorrect (as recvmsg returns ssize_t), but it also makes the error code check after the statement completely irrelvant as it checks if the number of bytes read is greater than zero (which will always be true for an unsigned type).
-
eopXD authored
This was an oversight in D146872, where function calls with tuple type was not covered. This commit fixes this. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D157953
-
eopXD authored
Specification PR: riscv-non-isa/rvv-intrinsic-doc#256 Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D158402
-
Sameer Sahasrabuddhe authored
This is in preparation for using the same convergence verifier for both LLVM IR and Machine IR. Reviewed By: yassingh Differential Revision: https://reviews.llvm.org/D158394
-
Xiaolei Shi authored
This revision adds LLVM_MARK_AS_BITMASK_ENUM to HoistingKind to avoid static_cast when performing bitwise operations. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D158580
-
Peiming Liu authored
Fix copied from https://reviews.llvm.org/D156946 but with a legit test case that triggers the bug. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D158578
-
Mehdi Amini authored
It is surprising for the user that only some fields were honored. Also make the FrozenRewritePatternSet a shared_ptr<const T>. Fixes #64543 Differential Revision: https://reviews.llvm.org/D157469
-
wren romano authored
These methods are needed for use with `Diagnostic::operator<<` etc. The definitions follow the pattern of `Diagnostic::str` by simply wrapping the underlying `print(raw_ostream)` method. Although there is some overhead for constructing the `std::string`, this seems like the overall most-efficient option: since this overhead only occurs on the error path (under the current intended usage). An alternative approach would be to have one method construct a `Twine` directly, and then have the print method pass the twine to the stream; however, that would mean introducing the overhead of twine construction on the common/happy path of simply printing things out. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D157643
-
wren romano authored
These new methods help clean up some code for doing LvlExpr-analysis during DimExpr-inference. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D157647
-
Lang Hames authored
For many interesting process-symbols setups we need access to the LLJIT instance (e.g. to mangle symbols, or inspect the process triple). This patch updates the ProcessSymbolsJITDylibSetupFunction to take an LLJIT reference and return the process symbols JITDylib, which the callback must now create.
-
Kai Luo authored
According to https://www.ibm.com/docs/en/xl-c-and-cpp-linux/16.1.1?topic=functions-vec-promote, the index should be input modulo the number of elements in the vector. When the type is `vector char`, the number of elements should be 16. Reviewed By: qiucf Differential Revision: https://reviews.llvm.org/D158484
-
Slava Zakharin authored
This implements the proposal from https://discourse.llvm.org/t/adding-flang-specific-header-files-to-clang/72442/6 Since ISO_Fortran_binding.h is supposed to be included from users' C/C++ codes, it would better have no dependencies on other header files. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D158549
-
Reid Kleckner authored
This is a quick fix forward to get bots green again.
-
wanglei authored
Prior to this change, stack realignment was achieved using the SRLI/SLLI instructions in two steps. With this patch, stack realignment is optimized using a single `BSTRINS` instruction. Reviewed By: SixWeining, xen0n Differential Revision: https://reviews.llvm.org/D158384
-
Rahman Lavaee authored
The test does not require asserts. So it can't check the stats.
-
Reid Kleckner authored
This reverts commit f2583f3a. There is a large body of non-conforming C-like code using format strings like this: #define PRIuS "zu" void h(size_t foo, size_t bar) { printf("foo is %"PRIuS", bar is %"PRIuS, foo, bar); } Rejecting this code would be very disruptive. We could decide to do that, but it's sufficiently disruptive that I think it requires gathering more community consensus with an RFC, and Aaron indicated [1] it's OK to revert for now so continuous testing systems can see past this issue while we decide what to do. [1] https://reviews.llvm.org/D153156#4607717
-
Rahman Lavaee authored
This reverts commit ab531091 which was commited by mistake.
-
Eymen Ünay authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D157215
-
Aart Bik authored
These checks have been fired when comparing same elements like comp(a, a). Let's fix it. I don't have commit rights. Danila Kutenin kutdanila@yandex.ru Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D152152
-
Nico Weber authored
-
Xiaolei Shi authored
This update implements the usage of AllocationOpInterface in the buffer hoisting/promotion passes. Two interface methods, namely `getHoistingKind` and `buildPromotedAlloc`, have been added. The former indicates which kind of hoisting (loop, block) an allocation operation supports, while the latter builds a stack allocation operation for promotable allocations used by the promote-buffers-to-stack pass. This update makes these passes be functional for user customized allocation operation. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D158398
-
Xiaolei Shi authored
Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D158401
-
erichkeane authored
Undoing test commit. This reverts commit 3e50bcb4.
-
Alex Lorenz authored
This reverts commit 649004ae. This commit caused regression in TSAN tests on Darwin: https://green.lab.llvm.org/green/job/clang-stage1-RA/35380/ These tests have been failing: SanitizerCommon-tsan-x86_64-Darwin.Darwin.symbolizer-function-offset-dladdr.cpp SanitizerCommon-tsan-x86_64h-Darwin.Darwin.symbolizer-function-offset-dladdr.cpp ThreadSanitizer-x86_64.Darwin.symbolizer-dladdr.cpp ThreadSanitizer-x86_64h.Darwin.symbolizer-dladdr.cpp
-
erichkeane authored
-
Nico Weber authored
-
Rahman Lavaee authored
-
Mehdi Amini authored
-
Rahman Lavaee authored
Propeller and pseudo-probes map profiles back to Machine IR via basic block addresses that are stored in metadata sections. Empty basic blocks (basic blocks without real code) obfuscate the profile mapping because their addresses collide with their next basic blocks. For instance, the fallthrough block of an empty block should always be adjacent to it. Otherwise, a completely unnecessary jump would be added. This patch adds a MachineFunction pass named `GCEmptyBasicBlocks` which attempts to garbage-collect the empty blocks before the `BasicBlockSections` and pass. This pass removes each empty basic block after redirecting its incoming edges to its fall-through block. The garbage-collection is not complete. We keep the empty block in 4 cases: 1. The empty block is an exception handling pad. 2. The empty block has its address taken. 3. The empty block is the last block of the function and it has predecessors. 4. The empty block is the only block of the function. The first three cases are extremely rare in normal code (no cases for the clang binary). Removing the blocks under the first two cases requires modifying exception handling structures and operands of non-terminator instructions -- which is doable but not worth the additional complexity in the pass. Reviewed By: tmsriram Differential Revision: https://reviews.llvm.org/D107534 -
Jessica Clarke authored
On FreeBSD and NetBSD we don't use .weak due to differing semantics. Currently we end up using no directive, which gives a local symbol, whereas the closer thing to a weak symbol would be a global one. In particular, both GNU and LLVM toolchains cannot handle a GOT-indirect reference to a local symbol at a non-zero offset within a section on AArch64 (see https://github.com/ARM-software/abi-aa/issues/217), and so interceptors do not work on FreeBSD/arm64, failing to link with LLD. Switching to .globl both works around this bug and more closely aligns such non-weak platforms with weak ones. Fixes https://github.com/llvm/llvm-project/issues/63418 Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D158552
-
Daniel Thornburgh authored
-
Paul Robinson authored
-