[pull] main from llvm:main - #1706
Merged
Merged
Conversation
…xtensions (#213509) Follow-up to #180986, which completed the series started in #178290: it switched the last python bindings off the C++ LLVM APIs and dropped `LLVMSupport` from the support library in `AddMLIRPython.cmake`. But the per extension `PRIVATE_LINK_LIBS LLVMSupport` in `mlir/python/CMakeLists.txt` was missed, so the dependency is still there for every extension module. Assisted by: Claude
Fixes CodeGen/CSKY/fpu-abi-attribute.ll, failing since #212975. emitTargetAttributes is implemented only by CSKYTargetELFStreamer, so llc -filetype=asm drops every .csky_attribute directive. Move it to CSKYTargetStreamer, as ARM and RISC-V do.
Remove runAsVoidFunction and runAsIntFunction from
ExecutorProcessControl and all its implementations, along with the
now-unused RunAs{Void,Int}FunctionWrapperName bootstrap symbols and
SimpleRemoteEPC's corresponding address fields. Their only in-tree
users, COFFPlatform and COFFVCRuntimeSupport, now use
rt::sps::Int32VoidCaller and rt::sps::Int32Int32Caller.
runAsMain is likewise routed through rt::sps::MainCaller's controller-
interface symbol, so it is looked up under the same orc_rt_ci_sps_* name
the target-process bootstrap registers.
This is a step towards decoupling the ExecutorProcessControl interface
from SPS serialization.
The functions here have irreducible control flow, but none of them pins down how mass is divided among the entries of an irreducible region. Add four cases whose exact frequencies follow from the branch weights: - equalrows: all blocks share one successor distribution; 5:3:2. - selfloops: self edges of differing probability; ignoring them, each block splits evenly between the other two; 8:5:5. - unequalrows: symmetric non-header successors, differing header row; 8:3:3. - nonentry: a member of the region that is not an entry, so its mass is never adjusted; 6:4:3. BFI computes the first two exactly and the last two not. #213488 will show up as a diff.
) Skip load type canonicalization for elementwise atomic loads, which would otherwise drop the vector type and produce an invalid scalar elementwise load. Reference: #204556
The lower atomic pass demotes atomic loads to non atomic by calling setAtomic(NotAtomic), but left the elementwise flag untouched. Since elementwise is only valid on atomic operations, this produced a non-atomic elementwise load, which the verifier rejects with "non-atomic load cannot be elementwise". Reference: #204556
Add facts for SRem, if operands are known to be non-negative. Add signed bounds for `srem x, n`: * `x s>= 0` => result s>= 0 and result s<= x * `n s> 0` => result s<= n Alive2 Proofs: https://alive2.llvm.org/ce/z/e-zoAP Compile-time is in the noise https://llvm-compile-time-tracker.com/compare.php?from=60f965b1f62c0c77bcdb2997ea9bb6603aa0d002&to=ebc652af5700d569884e27812d33735d604990a1&stat=instructions:u InstCombine already has a similar fold, but with more limited reasoning. It does not trigger any changes on dtcxzyw/llvm-opt-benchmark-nightly#841 It simplifies a few times on other C/C++ workloads, including ffmpeg and OpenColorIO. Extracted end-to-end examples simplified with the change: https://clang.godbolt.org/z/1co6rvjKs This is part of an effort to improve ConstraintElimination support for IR generated by the Swift compiler, where such patterns are more common due to a number of signed runtime checks. PR: #213453
This updates a number of scalar types in CallLowering to use integer.
…hen available (#212845) On ARM64X targets, CRT provides separate TLS directory chunks, expecting the linker to sort it out. TLS directory uses _tls_start and _tls_end symbols to reference .tls section. Those symbols use section sorting to ensure that they are emitted at the start and end of .tls section, but that's not enough when we have two separate chunks for views: only one of them can really be the first one. Following MSVC, merge those chunks instead so that both symbol tables point to the same chunk. Additionally apply the same logic to _tls_used and _tls_index. This allows entire TLS directory to be shared between EC and native views. To achieve that, CRT additionally needs to mark each TLS callback with -arm64xsameaddress. This matches how MSVC linker and libraries work, but it requires EC and native views to use the same set of TLS callbacks. We may emit separate TLS directories in the future to make it more robust.
These .release() calls are legacy from the std::auto_ptr to std::unique_ptr transition.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )