-
Notifications
You must be signed in to change notification settings - Fork 0
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
[Coroutines] ABI Object #5
[Coroutines] ABI Object #5
Commits on Sep 13, 2024
-
[LLD][COFF][NFC] Store live flag in ImportThunkChunk. (llvm#108459)
Instead of ImportFile. This is a preparation for ARM64EC support, which has both x86 and ARM64EC thunks and each of them needs a separate flag.
Configuration menu - View commit details
-
Copy full SHA for 6be9be5 - Browse repository at this point
Copy the full SHA 6be9be5View commit details -
[llvm][unittests] Strip unneeded uses of raw_string_ostream::str() (NFC)
Avoid excess layer of indirection.
Configuration menu - View commit details
-
Copy full SHA for 387bee9 - Browse repository at this point
Copy the full SHA 387bee9View commit details -
[DAG] Fold trunc(srl(extract_elt(vec,c1),c2)) -> extract_elt(bitcast(…
…vec),c3) (llvm#107987) Extends existing trunc(extract_elt(vec,c1)) -> extract_elt(bitcast(vec),c3) fold. Noticed while working on llvm#107404
Configuration menu - View commit details
-
Copy full SHA for 69a2115 - Browse repository at this point
Copy the full SHA 69a2115View commit details -
Configuration menu - View commit details
-
Copy full SHA for a3ea018 - Browse repository at this point
Copy the full SHA a3ea018View commit details -
[RISCV] Use CCValAssign::getCustomReg for fixed vector arguments/retu…
…rns with RVV. (llvm#108470) We need to insert a insert_subvector or extract_subvector which feels pretty custom. This should make it easier to support fixed vector arguments for GISel.
Configuration menu - View commit details
-
Copy full SHA for ee4582f - Browse repository at this point
Copy the full SHA ee4582fView commit details -
[X86] Cleanup lowerShuffleToEXPAND arg layout. NFC.
Reorder the arg layout to match (most) other lowerShuffle* calls. Rename to lowerShuffleWithEXPAND to match other lowering cases where we lower to a single node.
Configuration menu - View commit details
-
Copy full SHA for 4a9b6b0 - Browse repository at this point
Copy the full SHA 4a9b6b0View commit details -
Add missing FillOp to winograd lowering (llvm#108181)
Winograd lowering involves a number of matmul and batch_matmul which are currently passed tensor.empty result as out parameter, thereby are undefined behaviour. This commit adds the necessary linalg.fill. --------- Co-authored-by: Max191 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 326287f - Browse repository at this point
Copy the full SHA 326287fView commit details -
[clang][TableGen] Change TypeNodesEmitter to use const RecordKeeper (l…
…lvm#108476) Change TypeNodesEmitter to use const RecordKeeper. This is a part of effort to have better const correctness in TableGen backends: https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
Configuration menu - View commit details
-
Copy full SHA for 387ef59 - Browse repository at this point
Copy the full SHA 387ef59View commit details -
[clang][TableGen] Change SACheckersEmitter to use const RecordKeeper (l…
…lvm#108477) Change SACheckersEmitter to use const RecordKeeper. This is a part of effort to have better const correctness in TableGen backends: https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
Configuration menu - View commit details
-
Copy full SHA for f637273 - Browse repository at this point
Copy the full SHA f637273View commit details -
[clang][TableGen] Change SyntaxEmitter to use const RecordKeeper (llv…
…m#108478) Change SyntaxEmitter to use const RecordKeeper. This is a part of effort to have better const correctness in TableGen backends: https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
Configuration menu - View commit details
-
Copy full SHA for d757bbf - Browse repository at this point
Copy the full SHA d757bbfView commit details -
[clang][TableGen] Change MVE Emitter to use const RecordKeeper (llvm#…
…108500) Change MVE Emitter to use const RecordKeeper. This is a part of effort to have better const correctness in TableGen backends: https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
Configuration menu - View commit details
-
Copy full SHA for 75d8724 - Browse repository at this point
Copy the full SHA 75d8724View commit details -
[clang][TableGen] Change NeonEmitter to use const RecordKeeper (llvm#…
…108501) Change NeonEmitter to use const RecordKeeper. This is a part of effort to have better const correctness in TableGen backends: https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
Configuration menu - View commit details
-
Copy full SHA for a4b1617 - Browse repository at this point
Copy the full SHA a4b1617View commit details -
[clang][TableGen] Change RISCVVEmitter to use const RecordKeeper (llv…
…m#108502) Change RISCVVEmitter to use const RecordKeeper. This is a part of effort to have better const correctness in TableGen backends: https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
Configuration menu - View commit details
-
Copy full SHA for 974fa85 - Browse repository at this point
Copy the full SHA 974fa85View commit details -
Configuration menu - View commit details
-
Copy full SHA for ab06a18 - Browse repository at this point
Copy the full SHA ab06a18View commit details -
[clang][TableGen] Change SVE Emitter to use const RecordKeeper (llvm#…
…108503) Change SVE Emitter to use const RecordKeeper. This is a part of effort to have better const correctness in TableGen backends: https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
Configuration menu - View commit details
-
Copy full SHA for 711278e - Browse repository at this point
Copy the full SHA 711278eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 99fe595 - Browse repository at this point
Copy the full SHA 99fe595View commit details -
[LLD][COFF] Add Support for ARM64EC Import Thunks (llvm#108460)
ARM64EC import thunks function similarly to regular ARM64 thunks but use a mangled name and perform the call through the auxiliary IAT.
Configuration menu - View commit details
-
Copy full SHA for ea5d37f - Browse repository at this point
Copy the full SHA ea5d37fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a643836 - Browse repository at this point
Copy the full SHA a643836View commit details -
[llvm-exegesis] Remove getter for RegNameToRegNo mapping
This patch removes the getter for the mentioned mapping. This was only kept around to keep things in sync for some downstream codebases (that didn't even end up needing it), so removing it now that it is not needed anymore.
Configuration menu - View commit details
-
Copy full SHA for ff1de24 - Browse repository at this point
Copy the full SHA ff1de24View commit details -
[clang][analyzer][docs] Fix documentation of checker 'StackAddrAsyncE…
…scape' (NFC) (llvm#108586) The checker was indicated as a 'C' language checker but is only applicable to 'ObjC' code.
Configuration menu - View commit details
-
Copy full SHA for ffeb793 - Browse repository at this point
Copy the full SHA ffeb793View commit details -
[lldb] Add pc check for thread-step-by-bp algorithms (llvm#108504)
lldb-server built with NativeProcessLinux.cpp and NativeProcessFreeBSD.cpp can use breakpoints to implement instruction stepping on cores where there is no native instruction-step primitive. Currently these set a breakpoint, continue, and if we hit the breakpoint with the original thread, set the stop reason to be "trace". I am wrapping up a change to lldb's breakpoint algorithm where I change its current behavior of "if a thread stops at a breakpoint site, we set the thread's stop reason to breakpoint-hit, even if the breakpoint hasn't been executed" + "when resuming any thread at a breakpoint site, instruction-step past the breakpoint before resuming" to a behavior of "when a thread executes a breakpoint, set the stop reason to breakpoint-hit" + "when a thread has hit a breakpoint, when the thread resumes, we silently step past the breakpoint and then resume the thread". For these lldb-server targets doing breakpoint stepping, this means that if we are sitting on a breakpoint that has not yet executed, and instruction-step the thread, we will execute the breakpoint instruction at $pc (instead of $next-pc where it meant to go), and stop again -- at the same pc value. Then we will rewrite the stop reason to 'trace'. The higher level logic will see that we haven't hit the breakpoint instruction again, so it will try to instruction step again, hitting the breakpoint again forever. To fix this, I'm checking that the thread matches the one we are instruction-stepping-by-breakpoint AND that we've stopped at the breakpoint address we are stepping to. Only in that case will the stop reason be rewritten to "trace" hiding the implementation detail that the step was done by breakpoints.
Configuration menu - View commit details
-
Copy full SHA for 213c59d - Browse repository at this point
Copy the full SHA 213c59dView commit details -
[lldb] Set the stop reason when receiving swbreak/hwbreak (llvm#108518)
xusheng added support for swbreak/hwbreak a month ago, and no special support was needed in ProcessGDBRemote when they're received because lldb already marks a thread as having hit a breakpoint when it stops at a breakpoint site. However, with changes I am working on, we need to know the real stop reason a thread stopped or the breakpoint hit will not be recognized. This is similar to how lldb processes the "watch/rwatch/awatch" keys in a thread stop packet -- we set the `reason` to `watchpoint`, and these set it to `breakpoint` so we set the stop reason correctly later in these methods.
Configuration menu - View commit details
-
Copy full SHA for 65a4d11 - Browse repository at this point
Copy the full SHA 65a4d11View commit details -
[libc++][NFC] Mark P1869R1 as implemented (llvm#107746)
https://wg21.link/p1869r1: Rename `condition_variable_any` interruptible wait methods The paper was implemented as experimental feature in Clang 18 in: llvm@4fa812b Experimental status removed in: llvm#107900 Closes llvm#100031 --------- Co-authored-by: Hristo Hristov <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 51f5525 - Browse repository at this point
Copy the full SHA 51f5525View commit details -
Configuration menu - View commit details
-
Copy full SHA for 82987bd - Browse repository at this point
Copy the full SHA 82987bdView commit details -
[PowerPC][NFC] autogen mma tc checks via update_cc_test_checks (llvm#…
…108584) Update mma tests in prep for changes needed in a followup patch for llvm#107229. Checks for ``clang/test/CodeGen/PowerPC/builtins-ppc-pair-mma-types.c`` seem to have been manually upated to rename temp variables even though it says checks was auto generated. Regenerate via script. Add noopt checks for ``clang/test/CodeGen/PowerPC/builtins-ppc-build-pair-mma.c``.
Configuration menu - View commit details
-
Copy full SHA for cd6844c - Browse repository at this point
Copy the full SHA cd6844cView commit details -
[LLDB][Minidump] Minidump erase file on failure (llvm#108259)
In llvm#95312 Minidump file creation was moved from being created at the end, to the file being emitted in chunks. This causes some undesirable behavior where the file can still be present after an error has occurred. To resolve this we will now delete the file upon an error.
Configuration menu - View commit details
-
Copy full SHA for 661382f - Browse repository at this point
Copy the full SHA 661382fView commit details -
[SandboxIR][PassRegistry] Parse pipeline string (llvm#108103)
This patch implements a simple version of the pipeline parsing function. It currently only handles a single FPM and adds function passes to it.
Configuration menu - View commit details
-
Copy full SHA for f0f1b70 - Browse repository at this point
Copy the full SHA f0f1b70View commit details -
[RISCV][Docs] Change Zvbb and Zvkb from 'Assembly Support' to Support…
…ed. NFC (llvm#108572) We have generic isel support for Zvkb and Zvbb.
Configuration menu - View commit details
-
Copy full SHA for 8e2843b - Browse repository at this point
Copy the full SHA 8e2843bView commit details -
Adjust modulemap to mark mm3dnow as textual header. (llvm#107155)
This avoids issuing the deprecation diagnostic when building the module. Not building it into a module shouldn't cause any negative impacts, since it no longer has any declarations other than the header guard. It's also very rarely included by anything. Addresses llvm#96246 (comment)
Configuration menu - View commit details
-
Copy full SHA for f902339 - Browse repository at this point
Copy the full SHA f902339View commit details -
[SandboxIR] Implement DSOLocalEquivalent (llvm#108473)
This patch implements sandboxir::DSOLocalEquivalent mirroring llvm::DSOLocalEquivalent.
Configuration menu - View commit details
-
Copy full SHA for fffc7fb - Browse repository at this point
Copy the full SHA fffc7fbView commit details -
[X86] AMD Zen 5 Initial enablement (llvm#107964)
This patch enables the basic skeleton enablement of AMD next gen zen5 CPUs.
Configuration menu - View commit details
-
Copy full SHA for 02e4186 - Browse repository at this point
Copy the full SHA 02e4186View commit details -
[CodeGen] Use DenseMap::operator[] (NFC) (llvm#108489)
Once we modernize CopyInfo with default member initializations, Copies.insert({Unit, ...}) becomes equivalent to: Copies.try_emplace(Unit) which we can simplify further down to Copies[Unit].
Configuration menu - View commit details
-
Copy full SHA for b9d85b1 - Browse repository at this point
Copy the full SHA b9d85b1View commit details -
[NFC][clang-tidy] document fix to bugprone-return-const-ref-from-para…
…meter (llvm#107641) Describe how the issue that is diagnosed by this check can be resolved. Namely, by adding an overload for the xvalue case (`&&` parameter). Fixes llvm#107600
Configuration menu - View commit details
-
Copy full SHA for 4ef16e3 - Browse repository at this point
Copy the full SHA 4ef16e3View commit details -
[mlir][GPU] Plumb range information through the NVVM lowerings (llvm#…
…107659) Update the GPU to NVVM lowerings to correctly propagate range information on IDs and dimension queries, etiher from known_{block,grid}_size attributes or from `upperBound` annotations on the operations themselves.
Configuration menu - View commit details
-
Copy full SHA for a953982 - Browse repository at this point
Copy the full SHA a953982View commit details -
Configuration menu - View commit details
-
Copy full SHA for 02d8813 - Browse repository at this point
Copy the full SHA 02d8813View commit details -
Avoid expression evaluation in libStdC++ std::vector<bool> synthetic …
…children provider (llvm#108414) Our customers is reporting a serious performance issue (expanding a this pointer takes 70 seconds in VSCode) in a specific execution context. Profiling shows the hot path is triggered by an expression evaluation from libStdC++ synthetic children provider for `std::vector<bool>` since it uses `CreateValueFromExpression()`. This PR added a new `SBValue::CreateBoolValue()` API and switch `std::vector<bool>` synthetic children provider to use the new API without performing expression evaluation. Note: there might be other cases of `CreateValueFromExpression()` in our summary/synthetic children providers which I will sweep through in later PRs. With this PR, the customer's scenario reduces from 70 seconds => 50 seconds. I will add other PRs to further optimize the remaining 50 seconds (mostly from type/namespace lookup). Testing: `test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py` passes with the PR --------- Co-authored-by: jeffreytan81 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b6bf27e - Browse repository at this point
Copy the full SHA b6bf27eView commit details -
[lldb] Do not use LC_FUNCTION_STARTS data to determine symbol size as…
… symbols are created (llvm#106791) Summary: This improves the performance of ObjectFileMacho::ParseSymtab by removing eager and expensive work in favor of doing it later in a less-expensive fashion. Experiment: My goal was to understand LLDB's startup time. First, I produced a Debug build of LLDB (no dSYM) and a Release+NoAsserts build of LLDB. The Release build debugged the Debug build as it debugged a small C++ program. I found that ObjectFileMachO::ParseSymtab accounted for somewhere between 1.2 and 1.3 seconds consistently. After applying this change, I consistently measured a reduction of approximately 100ms, putting the time closer to 1.1s and 1.2s on average. Background: ObjectFileMachO::ParseSymtab will incrementally create symbols by parsing nlist entries from the symtab section of a MachO binary. As it does this, it eagerly tries to determine the size of symbols (e.g. how long a function is) using LC_FUNCTION_STARTS data (or eh_frame if LC_FUNCTION_STARTS is unavailable). Concretely, this is done by performing a binary search on the function starts array and calculating the distance to the next function or the end of the section (whichever is smaller). However, this work is unnecessary for 2 reasons: 1. If you have debug symbol entries (i.e. STABs), the size of a function is usually stored right after the function's entry. Performing this work right before parsing the next entry is unnecessary work. 2. Calculating symbol sizes for symbols of size 0 is already performed in `Symtab::InitAddressIndexes` after all the symbols are added to the Symtab. It also does this more efficiently by walking over a list of symbols sorted by address, so the work to calculate the size per symbol is constant instead of O(log n).
Configuration menu - View commit details
-
Copy full SHA for 0351dc5 - Browse repository at this point
Copy the full SHA 0351dc5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3a27458 - Browse repository at this point
Copy the full SHA 3a27458View commit details -
[AArch64][GISel] Scalarize i128 vector shifts.
Like most other i128 operations, this adds scalarization for i128 vector shifts. Which in turn allows a few other operations to legalize too.
Configuration menu - View commit details
-
Copy full SHA for 7582308 - Browse repository at this point
Copy the full SHA 7582308View commit details -
[AArch64][GISel] Scalarize i128 ICmp and Select.
Similar to other i128 bit operations, we scalarizer any icmps or selects larger than 64bits.
Configuration menu - View commit details
-
Copy full SHA for 3a4b30e - Browse repository at this point
Copy the full SHA 3a4b30eView commit details -
[Utils] add update-verify-tests.py (llvm#97369)
Adds a python script to automatically take output from a failed clang -verify test and update the test case(s) to expect the new behaviour.
Configuration menu - View commit details
-
Copy full SHA for d4f41be - Browse repository at this point
Copy the full SHA d4f41beView commit details -
[Coroutines] Move Shape to its own header (llvm#108242)
* To create custom ABIs plugin libraries need access to CoroShape. * As a step in enabling plugin libraries, move Shape into its own header * The header will eventually be moved into include/llvm/Transforms/Coroutines See RFC for more info: https://discourse.llvm.org/t/rfc-abi-objects-for-coroutines/81057
Configuration menu - View commit details
-
Copy full SHA for 4c040c0 - Browse repository at this point
Copy the full SHA 4c040c0View commit details -
[Coroutines] Refactor CoroShape::buildFrom to support ABI
* Refactor buildFrom to separate the analysis, abi related operations, tidying and bailout. * In a follow-up PR the code in initABI will be moved to an ABI object init method. And the Shape constructor will no longer perform any lowering, instead it will just call analysis. This will make the Shape object a bit more useful because it can be constructed and used anywhere. It may even be useful to make it an analysis pass. * In a follow-up PR the OptimizeFrame flag will also be removed from the Shape and instead will be passed directly to buildCoroutineFrame (although it would be nice to find another way to trigger this optimization). This is the only thing that Shape cannot determine from the Function/Coroutine, but it is only needed within buildCoroutineFrame. * Note, that it was necessary to introduce two new SmallVectors, one to track CoroFrames and the other for UnusedCoroSaves. The tidyCoroutine method requires both, while invalidateCoroutine (bailout) method just requires the former. See RFC for more info: https://discourse.llvm.org/t/rfc-abi-objects-for-coroutines/81057
tnowicki committedSep 13, 2024 Configuration menu - View commit details
-
Copy full SHA for ba9e523 - Browse repository at this point
Copy the full SHA ba9e523View commit details