- Dec 28, 2021
-
-
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.
-
Fangrui Song authored
Windows sizeof(InputSection) seems to match non-Windows now.
-
Fangrui Song authored
and make them more space efficient. This decreases sizeof(InputSection) from 176 to 160, and decreases peak memory usage by 0.3% when linking Chrome.
-
Shao-Ce SUN authored
Fix a TODO. Remove the callers of this signed version and delete. Reviewed By: CodaFi Differential Revision: https://reviews.llvm.org/D116014
-
Hsiangkai Wang authored
The implicit defines may come from a partial define in an instruction. It does not mean the defining instruction and the COPY instruction have the same vl and vtype. When the source comes from the implicit defines, do not convert the whole register copies to vmv.v.v. Differential Revision: https://reviews.llvm.org/D115866
-
Chuanqi Xu authored
We didn't support noop_coroutine for GCC in previous conforming patch. So that GCC couldn't use noop_coroutine() defined in <coroutine>. And after this patch, GCC should be able to compile the whole <coroutine> header. Reviewed By: Quuxplusone Differential Revision: https://reviews.llvm.org/D116144
-
Fangrui Song authored
-
Fangrui Song authored
Placeholders (-y and redirectSymbols removed versioned symbols) are very rare and the check just makes symbol table iteration slower. Most iterations filter out placeholders anyway, so this change just drops the filter behavior. For "Add symbols to symtabs", we need to ensure that redirectSymbols sets isUsedInRegularObj to false when making a symbol placeholder, to avoid an assertion failure in SymbolTableSection<ELFT>::writeTo. My .text is 2KiB smaller. The speed-up linking chrome is 0.x%.
-
Shao-Ce SUN authored
Trying to improve code reuse in F,D,Zfh *.td files. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D116089
-
Fangrui Song authored
"Process symbol versions" may take 2+% time. "Redirect symbols" may take 0.6% time. This change speeds up the two passes and makes `*sym.getVersionSuffix() == '@'` in the `undefined reference` diagnostic cleaner. Linking chrome (no debug info) and another large program is 1.5% faster. For empty-ver2.s: the behavior now matches GNU ld, though I'd consider the input invalid and the exact behavior does not matter.
-
Fangrui Song authored
-
Fangrui Song authored
-