- Sep 29, 2023
-
-
Peiming Liu authored
…semble Pack/Unpack are overridden in many other places, rename the operations to avoid confusion.
-
Yingwei Zheng authored
This patch simplifies the overflow check of unsigned addition. `a + b <u a` implies `a + b <u b` `a + b >=u a` implies `a + b >=u b` Alive2: https://alive2.llvm.org/ce/z/H8oK8n Fixes #65863.
-
Lang Hames authored
-
Timm Bäder authored
This was never doing anything ever since it was introduced.
-
Timm Bäder authored
-
Lang Hames authored
The *Policy suffix came from the earlier MemAllocPolicy type, where it was included to distinguish the type from a memory-allocation operation. MemLifetime is a noun already, so the *Policy suffix is just dead weight now.
-
Matthias Springer authored
Add the `BufferizableOpInterface` implementation of `scf.index_switch`.
-
Peiming Liu authored
-
Raghu Maddhipatla authored
[Flang] [OpenMP] [Semantics] Add semantic support for IS_DEVICE_PTR nd HAS_DEVICE_ADDR clauses on OMP TARGET directive and add more semantic checks for OMP TARGET. (#67290) Summary of this patch - Add semantic support for HAS_DEVICE_ADDR and IS_DEVICE_PTR clauses. - A list item that appears in an IS_DEVICE_PTR clause must be a valid device pointer for the device data environment. - A list item may not be specified in both an IS_DEVICE_PTR clause and a HAS_DEVICE_ADDR clauses on the directive. - A list item that appears in an IS_DEVICE_PTR or a HAS_DEVICE_ADDR clauses must not be specified in any data-sharing attribute clause on the same target construct.
-
Rafael Auler authored
Previously we would crash with an assertion failure (unreachable code) whenever we had an error in JITLink. Change this to use JITLink API correctly and let it print the error to output, so we can read and more easily diagnose what's happening. Before this patch: unexpected abandoned allocation UNREACHABLE executed at... After this patch: BOLT-ERROR: JITLink failed: In graph in-memory object file, section .local.foo: relocation target .text + 0x1 at address 0xa7c00000 is out of range of BranchPCRel32 fixup at 0x132d40f1 (bar, 0x132d40f0 + 0x1)
-
Hiroshi Yamauchi authored
[AArch64][Win] Emit SEH instructions for the swift async context-related instructions in the prologue and the epilogue. (#66967) This fixes an error from checkARM64Instructions() in MCWin64EH.cpp.
-
Alexey Bataev authored
Need to consider the length of the original vector for extractelements, not the length, matched number of the scalars. It fixes 2 issues: 1) improves cost estimation; 2) Fixes crashes after D158449.
-
Jan Svoboda authored
This patch adopts `FileEntryRef` in the `HeaderFileInfo`-writing part of `ASTWriter`. First, this patch removes the loop over `FileManager::VirtualFileEntries`. It's redundant, since all virtual file entries are also present in `SeenFileEntries` and thus already in `UIDToFiles`. Second, since we now no longer rely on `FileEntry::getLastRef()`/`FileEntry::getName()`, this patch takes care to establish which path gets used for each UID by picking the `FileEntryRef` with the most "`<`" name (instead of just relying on the `StringMap` iteration order). Note that which `FileEntry`/`FileEntryRef` objects we pick for each UID for serialization into the `llvm::OnDiskChainedHashTable` doesn't really matter. The hash function only includes the file size and modification time. The file name only plays role during resolution of hash collisions, in which case it goes through `FileManager` and resolves to a `FileEntry` that gets pointer-compared with the queried `FileEntry`. (Reincarnation of [D143414](https://reviews.llvm.org/D143414) and [D142780](https://reviews.llvm.org/D142780).)
-
Joseph Huber authored
Summary: We use these image wrappers to do runtime specifica registration of variables and to load the device image that was compiled. This was intended to support multiple of these running at the same time, e.g. you can have a CUDA instance running with OpenMP and they should both function so long as you do not share state between the two. However, because we did not use a unique name for this file it would cause conflicts when included. This patch names the image based off of the language runtime it's using so that they remain separate. Fixes: https://github.com/llvm/llvm-project/issues/67583
-
David Green authored
This is failing in a few buildbots to link due to missing references to undefined reference to llvm::Triple::Triple from DataLayoutTest_UEFI_Test. Attempt to fix them by adding the TargetParser lib for IR unit tests.
-
Thurston Dang authored
HWAddressSanitizerPass::run sanitizes functions one by one. The sanitization of each function - which may split blocks via insertShadowTagCheck - may result in some cached analyses are invalid. This matters because sanitizeFunction(F', FAM) may indirectly call the global stack safety analysis, hence we need to make sure the analyses of F are up to date. Bug report: https://github.com/llvm/llvm-project/issues/66934
-
Manna, Soumi authored
Reviewed By: tahonermann Differential Revision: https://reviews.llvm.org/D159474
-
jeanPerier authored
When a MODULE SUBROUTINE or MODULE FUNCTION is implemented in the same scope as its interface and appears in a generic with the same name, the parse::Name of the implementation was not correctly reset and remained the SubprogramNameDetails symbol after semantics, causing a crash in lowering that picks up the procedure symbols on the parser names. Reset the parser::Name symbol before the new symbol is created.
-
- Sep 28, 2023
-
-
Corentin Jabot authored
Theses tests were part of https://reviews.llvm.org/D140184, which is no longer necessary but preserving the tests seems useful. Thanks to Richard Trieu for providing these tests and the work on this PR.
-
Arjun P authored
-
Akash Banerjee authored
This patch adds the OutlineableOpenMPOpInterface to omp.target. This prevents other operations inside the target region such as WSLoop from hoisting new allocas outside the region.
-
Valentin Clement (バレンタイン クレメン) authored
Assumed shape array are using descriptor and must be handled differently than known shape arrays. This patch adds support to generate the `init` and `combiner` region for the reduction recipe operation with assumed shape array by using the descriptor and the HLFIR lowering path. `createTempFromMold` function is moved from `flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp` to `flang/include/flang/Optimizer/Builder/HLFIRTools.h` to be reused to create the private copy.
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/56794 And see https://github.com/llvm/llvm-project/issues/67582 for a detailed backgrond for the issue. As required by the Itanium ABI, the module units have to generate the initialization function. However, the importers are allowed to elide the call to the initialization function if they are sure the initialization function doesn't do anything. This patch implemented this semantics.
-
Nick Desaulniers authored
Splitting up patches for #20571. I found these comments generally useful to add and not predicated on those changes. Hopefully they help future travelers.
-
Nikita Popov authored
Check the result of constant folding here, as I'm not confident that no constant expressions can make it in here.
-
Nikita Popov authored
Use the constant folding API instead, which should always succeed in this case.
-
jeanPerier authored
There is a crash before hitting the TODO when the length parameter kind depends on a KIND parameter. I do not want to fix it since I cannot test it because of the TODO, so I just moved to TODO up and added a comment.
-
Nikita Popov authored
Add helpers getLosslessUnsignedTrunc/getLosslessSignedTrunc for this common pattern.
-
Joseph Huber authored
Summary: These wrapper headers need to work around things in the standard headers. The existing workarounds didn't correctly handle the macros for `iscascii` and `toascii`. Additionally, `memrchr` can't be used because it has a different declaration for C++ mode. Fix this so it can be compiled.
-
Nikita Popov authored
Use the constant folding API instead. In preparation for dropping zext constant expressions.
-
Krzysztof Drewniak authored
Define operations that wrap the gfx940's new operations for converting between f32 and registers containing packed sets of four 8-bit floats. Define rocdl operations for the intrinsics and an AMDGPU dialect wrapper around them (to account for the fact that MLIR distinguishes the two float formats at the type level but that the LLVM IR does not). Define an ArithToAMDGPU pass, meant to run before conversion to LLVM, that replaces relevant calls to arith.extf and arith.truncf with the packed operations in the AMDGPU dialect. Note that the conversion currently only handles scalars and vectors of rank <= 1, as we do not have a usecase for multi-dimensional vector support right now. Reviewed By: jsjodin Differential Revision: https://reviews.llvm.org/D152457
-
René Rebe authored
This addresses missing cmake files needed to build some sub-projects like libstdcxx. Co-authored-by:René Rebe <rene@exactcode.de>
-
Andrew Gozillon authored
Fix mistyped syntax in omptarget-region-parallel-llvm.mlir test added by b05d436e
-
Andrzej Warzynski authored
This patch updates `transform.loop.peel` so that this Op returns two rather than one handle: * one for the peeled loop, and * one for the remainder loop. Also, following this change this Op will fail if peeling fails. This is consistent with other similar Ops that also fail if no transformation takes place. Relands #67482 with an extra fix for transform_loop_ext.py
-
Fabio D'Urso authored
-
Nikita Popov authored
Instead work on APInt.
-
Nikita Popov authored
Work on APInt instead.
-
Nikita Popov authored
Use IRBuilder instead, which will either insert an instruction or constant fold.
-
Younan Zhang authored
From two aspects: - For function templates, emit additional template argument placeholders in the context where it can't be a call in order to specify an instantiation explicitly. - Consider expressions with base type specifier such as 'Derived().Base::foo^' a function call. Reviewed By: nridge Differential Revision: https://reviews.llvm.org/D156605
-