- Dec 28, 2021
-
-
Kazu Hirata authored
Identified with readability-const-return-type.
-
Kazu Hirata authored
Identified with readability-string-compare.
-
Kazu Hirata authored
Identified with llvm-header-guard.
-
Fangrui Song authored
-
Craig Topper authored
Due to a copy/paste mistake we were always testing float. This required splitting up the f16 tests into separate files since we don't have an appropriate libcall to use when the types involved aren't legal.
-
Craig Topper authored
-
Joseph Huber authored
This patch uses the return alignment attribute now present in the `__kmpc_alloc_shared` runtime call to set the alignment of the shared memory global created to replace it. Depends on D115971 Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D116319
-
Joseph Huber authored
This patch changes the default aligntment from 8 to 16, and encodes this information in the `__kmpc_alloc_shared` runtime call to communicate it to the HeapToStack pass. The previous alignment of 8 was not sufficient for the maximum size of primitive types on 64-bit systems, and needs to be increaesd. This reduces the amount of space availible in the data sharing stack, so this implementation will need to be improved later to include the alignment requirements in the allocation call, and use it properly in the data sharing stack in the runtime. Depends on D115888 Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D115971
-
Joseph Huber authored
This patch changes the HeapToStack optimization to attach the return alignment attribute information to the created alloca instruction. This would cause problems when replacing the heap allocation with an alloca did not respect the alignment of the original heap allocation, which would typically be aligned on an 8 or 16 byte boundary. Malloc calls now contain alignment attributes, so we can use that information here. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D115888
-
Fangrui Song authored
-
Fangrui Song authored
Ensure addresses are unchanged after finalizeAddressDependentContent.
-
Gulfem Savrun Yeniceri authored
This patch adds support to read all the PT_NOTE segments in the executable to find the binary ids. Previously, it was only reading the first PT_NOTE segment, and this was missing the cases where binary id is in the following segments. As a result, binary-id.c and binary-id-padding.c test were failing in the following cases: 1) sanitizer-x86_64-linux bot https://lab.llvm.org/staging/#/builders/97 2) OpenSuse Tumbleweed https://github.com/llvm/llvm-project/issues/52695 Differential Revision: https://reviews.llvm.org/D115830
-
Sanjay Patel authored
The callee does the casting too; this matches a plain call later in the same function for 'shl'.
-
Sanjay Patel authored
-
Shilei Tian authored
Currently CUDA streams are managed by `StreamManagerTy`. It works very well. Now we have the need that some resources, such as CUDA stream and event, will be hold by `libomptarget`. It is always good to buffer those resources. What's more important, given the way that `libomptarget` and plugins are connected, we cannot make sure whether plugins are still alive when `libomptarget` is destroyed. That leads to an issue that those resouces hold by `libomptarget` might not be released correctly. As a result, we need an unified management of all the resources that can be shared between `libomptarget` and plugins. `ResourcePoolTy` is designed to manage the type of resource for one device. It has to work with an allocator which is supposed to provide `create` and `destroy`. In this way, when the plugin is destroyed, we can make sure that all resources allocated from native runtime library will be released correctly, no matter whether `libomptarget` starts its destroy. Reviewed By: ye-luo Differential Revision: https://reviews.llvm.org/D111954
-
- Dec 27, 2021
-
-
Alexey Bataev authored
NFC.
-
David Green authored
A 'CMOV 1, 0, CC, %cpsr, Cmp' is the same as a 'CSINC 0, 0, CC, Cmp', and can be treated the same in IsCMPZCSINC added in D114013. This allows us to remove the unnecessary CMOV in the same way that we could remove a CSINC. Differential Revision: https://reviews.llvm.org/D115188
-
Nikita Popov authored
We need to check that result and source element types match, as this is no longer automatically enforced with opaque pointers.
-
Nikita Popov authored
This change may not be entirely NFC, because a number of early returns will now only early return from this particular fold, rather than the whole visitGetElementPtr() implementation. This is also the reason why I'm doing this change, as I don't think this was intended.
-
Groverkss authored
This patch replaces usage of FlatAffineConstraints in Simplex with IntegerPolyhedron. This removes dependency of Simplex on FlatAffineConstraints and puts it on IntegerPolyhedron, which is part of Presburger library. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D116287
-
Simon Pilgrim authored
These match the port behaviour of reg-reg predicated xmm/ymm/zmm moves Fixes #34958
-
Groverkss authored
This patch moves `FlatAffineConstraints::print` and `FlatAffineConstraints::dump()` to IntegerPolyhedron. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D116289
-
Anton Daubert authored
Fix forward for "signed version of createExpression" change in https://github.com/llvm/llvm-project/commit/ec501f15a8b8ace2b283732740d6d65d40d82e09 Reviewed By: bgraur, achieveartificialintelligence Differential Revision: https://reviews.llvm.org/D116301
-
Chuanqi Xu authored
call Add two tests to address the problem for missing oppotunities to convert calls to musttail call.
-
Simon Pilgrim authored
Basic zmm reg-reg moves (with predication) are more port limited than xmm/ymm moves, so we need to add a separate class for them. We still appear to be missing move-elimination patterns for most of the intel models, which looks to be one of the main diffs for basic codegen analysis between llvm-mca and uops.info Load/stores are a bit messier and might be better handled as overrides.
-
Nikita Popov authored
The number of elements is always a SizeTy here.
-
Simon Pilgrim authored
-
Nikita Popov authored
Remove the assertion about the pointer element type, only check that the stride is one. Ultimately, the actual pointer type here doesn't matter, because SCEVExpander would insert appropriate casts if necessary.
-
Petar Avramovic authored
-
Chuanqi Xu authored
Revert "[NFC] [Coroutines] Add a test for icmp use of coro.suspend to prevent musttail call converting" This reverts commit 21aa4d5d. The test added is not proper. It would be passed all the time since it is in the ramp function.
-
Nikita Popov authored
-
Florian Hahn authored
Suggested separately in D116123.
-
Chuanqi Xu authored
Add a test to show the false negative optimization oppotunity to not convert a resume call to musttail call. It should could be.
-
Arjun P authored
The Support directory was removed from the unittests cmake when the directory was removed in 204c3b55. Subsequent commits added the directory back but seem to have missed adding it back to the cmake. This patch also removes MLIRSupportIndentedStream from the list of linked libraries to avoid an ODR violation (it's already part of MLIRSupport which is also being linked here). Otherwise ASAN complains: ``` ================================================================= ==102592==ERROR: AddressSanitizer: odr-violation (0x7fbdf214eee0): [1] size=120 'vtable for mlir::raw_indented_ostream' /home/arjun/llvm-project/mlir/lib/Support/IndentedOstream.cpp [2] size=120 'vtable for mlir::raw_indented_ostream' /home/arjun/llvm-project/mlir/lib/Support/IndentedOstream.cpp These globals were registered at these points: [1]: #0 0x28a71d in __asan_register_globals (/home/arjun/llvm-project/build/tools/mlir/unittests/Support/MLIRSupportTests+0x28a71d) #1 0x7fbdf214a61b in asan.module_ctor (/home/arjun/llvm-project/build/lib/libMLIRSupportIndentedOstream.so.14git+0x661b) [2]: #0 0x28a71d in __asan_register_globals (/home/arjun/llvm-project/build/tools/mlir/unittests/Support/MLIRSupportTests+0x28a71d) #1 0x7fbdf2061c4b in asan.module_ctor (/home/arjun/llvm-project/build/lib/libMLIRSupport.so.14git+0x11bc4b) ==102592==HINT: if you don't care about these errors you may set ASAN_OPTIONS=detect_odr_violation=0 SUMMARY AddressSanitizer: odr-violation: global 'vtable for mlir::raw_indented_ostream' at /home/arjun/llvm-project/mlir/lib/Support/IndentedOstream.cpp ==102592==ABORTING ``` This patch also fixes a build issue with `DebugAction::classof` under Windows. This commit re-lands this patch, which was previously reverted in 21329068 due to a buildbot failure that turned out to be because of a flaky test. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D116027
-
Justas Janickas authored
-
Nikita Popov authored
X86 allows inlining functions if the callee target features are a subset of the caller target features. This ensures that we don't inline something into a caller that does not support it. However, this does not account for possible call ABI mismatches as a result of inlining. If a call passing a vector argument was originally in a -avx function, calling another -avx function, the vector is passed in xmm. If we now inline it into a +avx function, then it will be passed in ymm, even though the callee expects it in xmm. Fix this by scanning over all calls in the function and checking whether ABI incompatibility is possible. Calls that only pass scalar types are excluded, as I believe those always use the same ABI independent of target features. Fixes https://github.com/llvm/llvm-project/issues/52660. Differential Revision: https://reviews.llvm.org/D116036
-
Fangrui Song authored
Make post-thinlto-index symbol resolution passes closer.
-
Fangrui Song authored
-
Kazu Hirata authored
-
Fangrui Song authored
New deleteFallThruJmpInsn calls `make<JumpInstrMod>` which cannot be called concurrently. Losing parallelism is unfortunate but we can think of a better approach if parallelism here justifies itself.
-