forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pull] main from llvm:main #768
Merged
Merged
Conversation
This file contains 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
InlineCostCallAnalyzer encourages inlining of the last call to the static function by subtracting LastCallToStaticBonus from Cost. This patch introduces getStaticBonusApplied to make available the amount of LastCallToStaticBonus applied. The intent is to allow the module inliner to determine whether inlining a given call site is expected to reduce the caller size with an expression like: IC.getCost() + IC.getStaticBonusApplied() < 0 This patch does not add a use of getStaticBonus yet. Differential Revision: https://reviews.llvm.org/D134373
…s XOrIOp. This patch adds commutative canonicalization support for D116383. Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D134258
The utility function should live in `StaticValueUtils.h` as it provides a convenient way to convert a vector of OpFoldResults into a vector of Values. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D134451
…onstructor See #57475 Differential Revision: https://reviews.llvm.org/D134607
This reverts commit 730ae80. It fails with a linking errors: `undefined reference to `mlir::getValueOrCreateConstantIndexOp` in `libMLIRDialectUtils`.
This reverts commit b4cc363. The change which needed this BUILD fix was reverted.
Absolute symbol should contain its absolute value, but LLD had been writing its RVA instead. Write its VA instead. DefinedSynthetic were being skipped before with the reasoning "Relative symbols are unrepresentable in a COFF symbol table", which is only true if the RVA points to outside of a section. LLD does create synthetic symbols which points to actual data chunks (typical for symbols embedded into the load config directory). Write these symbols to the COFF symbol table too. Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D134462
Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D134528
…le threads If a process has multiple threads, the thread with the stop info might not be the first one in the thread list. On Windows, under certain circumstances, processes seem to have one or more extra threads that haven't been launched by the executable itself, waiting in NtWaitForWorkViaWorkerFactory. If the main (stopped) thread isn't the first one in the list (the order seems nondeterministic), DidProcessStopAbnormally() would return false prematurely, instead of inspecting later threads. The main observable effect of DidProcessStopAbnormally() erroneously returning false, is when running lldb with multiple "-o" parameters to specify multiple commands to execute on the command line. After an abnormal stop, lldb would stop executing "-o" parameters and execute "-k" parameters instead - but due to this issue, it would instead keep executing "-o" parameters as if there was no abnormal stop. (If multiple parameters are specified via a script file via the "-s" option, all of the commands in that file are executed regardless of whether there's an abnormal stop inbetween.) Differential Revision: https://reviews.llvm.org/D134037
This reverts commit ec8f08c. The change that needed this BUILD fix was reverted.
Found by ClangTidy.
Prefer using 'override' instead of 'virtual'.
…rs' is deactivated 'misc-const-correctness' previously considered arrays as 'Values' independent of the type of the elements. This is inconsistent with the configuration of the check to disable treating pointers as values. This patch rectifies this inconsistency. Fixes #56749 Reviewed By: njames93 Differential Revision: https://reviews.llvm.org/D130793
The commit D120104 enabled FeatureFuseAdrpAdd for -mcpu=generic, allowing the linker to relax adrp;add pairs where possible. D132075 extended that to neoverse-n1, this patch extends it to all other cortex and neoverse cpus for the same reasons. Differential Revision: https://reviews.llvm.org/D134521
In case when the prvalue is returned from the function (kind is one of `SimpleReturnedValueKind`, `CXX17ElidedCopyReturnedValueKind`), then it construction happens in context of the caller. We pass `BldrCtx` explicitly, as `currBldrCtx` will always refer to callee context. In the following example: ``` struct Result {int value; }; Result create() { return Result{10}; } int accessValue(Result r) { return r.value; } void test() { for (int i = 0; i < 2; ++i) accessValue(create()); } ``` In case when the returned object was constructed directly into the argument to a function call `accessValue(create())`, this led to inappropriate value of `blockCount` being used to locate parameter region, and as a consequence resulting object (from `create()`) was constructed into a different region, that was later read by inlined invocation of outer function (`accessValue`). This manifests itself only in case when calling block is visited more than once (loop in above example), as otherwise there is no difference in `blockCount` value between callee and caller context. This happens only in case when copy elision is disabled (before C++17). Reviewed By: NoQ Differential Revision: https://reviews.llvm.org/D132030
Precommit test for D134360 Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D134358
The `CodeGenPrepare` pass can sink bitwise `and` used by compare to zero into the basic blocks where the users are. This operation is guarded by lowering hook, which is disabled for ARM. In the ARM architecture versions from v7-M up these two operations can be folded into `tst rN, #imm` instruction. Sinking of `and` can also enable the cmov-to-bfi DAG combiner. This patch fixes some benchmark regressions caused by https://reviews.llvm.org/D129370 as well scoring slightly better overall. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D134360
We have some 500 ish uses of the bool plus ref version so changing them all at once isn't a great idea. This adds an overload that doesn't take a RegisterInfo& and returns an optional. Once I'm done switching all the existing callers I'll remove the original function. Benefits of optional over bool plus ref: * The intent of the function is clear from the prototype. * It's harder to forget to check if the return is valid, and if you do you'll get an assert. * You don't hide ununsed variables, which happens because passing by ref marks a variable used. * You can't forget to reset the RegisterInfo in between calls. Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D134536
Summary: Use the new enum in TilingIterface and verify that `iterator_type` attribute in LinalgOp interface is compatible with the enum values. Later IteratorType enum will be used in LinalgInterface to replace the current `iterator_type` attribute array of string. Existing enums in Linalg are moved into a separate td file and tablegen build target. This is necessary, have one I32EnumAttr in a shared space that generated enum class definition and EnumAttrs is dialect-specific location. Otherwise there might be a conflict that I32EnumAttr generates enum definitions in multiple places. Differential Revision: https://reviews.llvm.org/D134634
Test case for #50940, to be fixed by D134606.
This allows for easier discovery.
Support smax/smin in VEInstrInfo.td. Remove obsolete patterns for smax/smin. Add regression tests for smax/smin/umax/umin. Reviewed By: efocht Differential Revision: https://reviews.llvm.org/D134583
Disable FMAX/FMIN selection from select_cc in VEInstrInfo.td because of the lack of NaN consideration. This patch removes such selection from VEInstrInfo.td and lets llvm work on it in combineMinNumMaxNum. Reviewed By: efocht Differential Revision: https://reviews.llvm.org/D134595
Copy-in/copy-out was not triggered when calling a procedure with a CONTIGUOUS assumed shape. The actual argument must be copied-in/out if it is not contiguous. The copy-in/copy-out takes care of argument optionality, and uses a runtime check in order to only do the copy if the actual is not contiguous at runtime. This was already implemented for explicit shape dummy arguments. This patch takes advantage of this implementation to deal with the copy-in copy-out aspects. It only need add code to deals with wrapping the created bare contiguous address into a fir.box (runtime descriptor), taking care of the optional box aspects. Using this existing code is only possible for actual argument that can be passed via a bare address. Add a TODO for polymorphic entity, PDTs and assumed rank where the existing copy-in/copy-out code may fail (these copies are more complex) and that cannot be tested currently. Differential Revision: https://reviews.llvm.org/D134543
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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]
Can you help keep this open source service alive? 💖 Please sponsor : )