forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 3
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
[AutoBump] Merge with f74879cf (Oct 04) (7) #444
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
This patch fixes: clang/lib/AST/MicrosoftMangle.cpp:1008:11: error: enumeration value 'S_Float8E8M0FNU' not handled in switch [-Werror,-Wswitch]
…lvm#110864) `selectExtInst` tries to add the intrinsic to the SPIRV GL extension instruction. `MO_IntrinsicID` is always the first operand when we come from `selectIntrinsic`. For all those cases `selectExtInst` needs to know to start at index 2.
…ILOpLowering (llvm#110750) Updates tests and moves the code accordingly.
Should get the signedness info from the original scalar instructions, if possible, to correctly generate sext/zext instructions. Also, the clustered node must be assigned a gather node user info to correctly estimate its bitwidth/sign.
SelectionDAG uses ISD::REGISTER and uses RISCV::X0 to represent VLMAX. Then in ComplexPattern VLOpt uses selectVLOp to convert RISCV::X0 to RISCV::VLMaxSentinel. The original legalization patch for G_SPLAT_VECTOR used Register RISCV::X0 directly. $x0 has no LLT type, so GIComplexOperandMatcher has no way of matching. The approach we are changing to here will allow us to successfully use GIComplexOperandMatcher to implement the ComplexMatcherFn selectVLOp in GISEL since the operand now has a type.
…r of attrsets Prior impl would fail if the number of attribute sets on the two calls wasn't the same which is unnecessary as long as we aren't throwing away and must-preserve attrs. Closes llvm#110896
…m#110841) Eliminate `llvm::` namespace qualifier for commonly used types in MLIR TableGen backends to reduce code clutter.
…llvm#110845) Change `Record::getSuperClasses` to return a const pointer to the superclass records. 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
We introduce a new strategy to track how many bytes are not released because of the contraint of release interval. This will change the `TryReleaseThreshold` adaptively so that we avoid releasing the same pages multiple times (and wasting time on the case of no pages to release). On Android, the number of release attempts decreases 33% (572 to 382) and the worst case drops from 251 to 33. At the same time, it maintains almost the same RSS usage (with some improvements as well). Note that in this CL, this is only applied to non small blocks. We will bring the strategy to all the size classes later.
…m#110568) Parse the lastprivate clause with a modifier. Codegen for it is not yet implemented.
For MI bundles, the instruction count remark doesn't count the instructions inside the bundle.
llvm#110923) …ead of #ifdef (llvm#110883)" This reverts commit 1905cdb, which causes lots of failures where LLVM doesn't have the right header guards. The errors can be seen on [BuildKite](https://buildkite.com/llvm-project/upstream-bazel/builds/112362#01924eae-231c-4d06-ba87-2c538cf40e04), where the source uses `#ifndef NDEBUG`, but the content in question is defined when `LLVM_ENABLE_ABI_BREAKING_CHECKS == 1`. For example, `llvm/include/llvm/Support/GenericDomTreeConstruction.h` has the following: ```cpp // Helper struct used during edge insertions. struct InsertionInfo { // ... #ifdef LLVM_ENABLE_ABI_BREAKING_CHECKS SmallVector<TreeNodePtr, 8> VisitedUnaffected; #endif }; // ... InsertionInfo II; // ... #ifndef NDEBUG II.VisitedUnaffected.push_back(SuccTN); #endif ```
Following up on llvm#110904. Signed-off-by: Benoit Jacob <jacob.benoit.1@gmail.com>
We need to explicitly specify template argument for llvm::ArrayRef when building with gcc.
The missing header is necessary to keep building with Bazel happy, and the dependency was erroneously added.
It turns out that we cannot rely on the presence of `-i64:64` as a position reference when adding the `-i128:128` datalayout string due to some custom datalayout strings lacking it (e.g ones used by bugpoint, among other things). Do not add the `-i128:128` string in that case. This fixes the regression introduced in llvm#106951.
This PR fixes a test failure introduced in llvm#109135
…ifdef (llvm#110938) This macros is always defined: either 0 or 1. The correct pattern is to use #if. Re-apply llvm#110185 with more fixes for debug build with the ABI breaking checks disabled.
These classes mirror the existing FunctionPass/FunctionPassManager, and will be used by the sandbox vectorizer to run a pipeline of region passes.
Add support for using a thread-local variable with a specified offset for holding the stack guard canary value. Closes: llvm#46685
…m#110770) This makes the type checker handle blocks with input parameters and return types, branches, and polymorphic stacks correctly. We maintain the stack of "block info", which contains its input parameter type, return type, and whether it is a loop or not. And this is used when checking the validity of the value stack at the `end` marker and all branches targeting the block. `StackType` now supports a new variant `Polymorphic`, which indicates the stack is in the polymorphic state. `Polymorphic`s are not popped even when `popType` is executed; they are only popped when the current block ends. When popping from the value stack, we ensure we don't pop more than we are allowed to at the given block level and print appropriate error messages instead. Also after a block ends, the value stack is guaranteed to have the right types based on the block return type. For example, ```wast block i32 unreachable end_block ;; You can expect to have an i32 on the stack here ``` This also adds handling for `br_if`. Previously only `br`s were checked. `checkEnd` and `checkBr` were removed and their contents have been inlined to the main `typeCheck` function, because they are called only from a single callsite. This also fixes two existing bugs in AsmParser, which were required to make the tests passing. I added Github comments about them inline. This modifies several existing invalid tests, those that passed (incorrectly) before but do not pass with the new type checker anymore. Fixes llvm#107524.
…#110889) When adding new SEH pseudo instructions in llvm#110024 I noticed that some of the tests were changing their output since these new instructions were counting towards thresholds for branching versus folding decisions. These instructions do not result in real machine instructions being emitted, so they should be marked as meta instructions.
…analysis (llvm#99656) - In Sema, when encountering Decls with function effects needing verification, add them to a vector, DeclsWithEffectsToVerify. - Update AST serialization to include DeclsWithEffectsToVerify. - In AnalysisBasedWarnings, use DeclsWithEffectsToVerify as a work queue, verifying functions with declared effects, and inferring (when permitted and necessary) whether their callees have effects. --------- Co-authored-by: Doug Wyatt <dwyatt@apple.com> Co-authored-by: Sirraide <aeternalmail@gmail.com> Co-authored-by: Erich Keane <ekeane@nvidia.com>
…-captures (llvm#110887) Otherwise, we would probably have an unmatched instantiated declaration for init-captures when they come after a non-init capture. No release note because the bug only affects the trunk so far. Fixes llvm#110721
Adds support to exporting regions.
…lvm#111169) The second part of the change introduced circular dependency between LLVMDialect and BasicPtxBuilderInterface.
The `memref.alloca` lowering computed the allocation size incorrectly when there were 0 dimensions. Previously: ``` memref.alloca() : memref<10x0x2xf32> --> llvm.alloca 20xf32 ``` Now: ``` memref.alloca() : memref<10x0x2xf32> --> llvm.alloca 0xf32 ``` From the `llvm.alloca` documentation: ``` Allocating zero bytes is legal, but the returned pointer may not be unique. ```
We only do this if the attributes of the two callsites are compatible (intersectable) which is probably not in fact necessary. Closes llvm#110929
…ypes Need to check not only parents, but also types for compatible loads, when trying to build the vectorizable sequences. Fixes crash reported in llvm#107461 (comment)
…lvm#111172) While doing an integrate into downstream https://github.com/iree-org/iree, I ran into a typical Bazel error with `BasicPtxBuilderInterface.cpp` including `NVVMDialect.h` which was not exposed as a header by a declared dependency. I tried fixing this the straightforward way, by letting `:BasicPtxBuilderInterface` depend on `:NVVMDialect` , but that caused another Bazel error: circular dependency between these two targets, as `:NVVMDialect` was already depending on `:BasicPtxBuilderInterface`. I tried breaking that circle by dropping the latter dependency, but it was a real dependency in the code, specifically in the TableGen-generated code. So in the end it seems that these two targets just need to be fused, which this PR does. Signed-off-by: Benoit Jacob <jacob.benoit.1@gmail.com>
This pass is not needed when the IR was bufferized with `-one-shot-bufferize`.
…m#111064) Change TableGen backend callback function to require a const RecordKeeper argument (by changing it from function_ref to just a function pointer). This undoes parts of llvm#104716 which was added to enable gradual migration of TableGen backends to use const RecordKeeper (by allowing either const or non-const references). Now that all backends have been migrated to const reference, we do not need this. 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
…m#111152) Add assert to verify that the `IIT_Vecs` list for IIT encoding of vector types is not empty for vector types (else it will generate an invalid IIT encoding). Remove `llvm_v2048i1_ty` for which this assert fails, since the `Intrinsics.td` file does not define any IIT encoding for vectors of size 2048.
This is stacked on llvm#110778. This PR adds and tests renderVLOp too, as that is needed from vmclr.
…nt, ensure we're only accepting ConstantInt splat scalars. Fixes llvm#111170
…er.*.pN (llvm#110714)" (llvm#111059) This reverts commit 650c41a. The test failures appear to be from conflicts with other PRs that landed around this time.
- set the default on z/OS to use the XL pragma semantics - add in additional pragma pack values such as twobyte & reset supported by XL on z/OS
partially fixes llvm#99151 ### Changes * Added int_spv_radians intrinsic in IntrinsicsSPIRV.td * Added lowering for int_spv_radians in SPIRVInstructionSelector.cpp * Added DXIL backend test case ### Related PRs * [[clang][HLSL] Add radians intrinsic llvm#110802](llvm#110802) * [[DXIL] Add radians intrinsic llvm#110616](llvm#110616)
Trivially lift the Opcode limitation on hoistBOAssociation to also hoist and, or, and xor. Alive2 proofs: https://alive2.llvm.org/ce/z/rVNP2X
… usage after optimization (llvm#110835) This PR introduces changes into processing of internal/service data in SPIRV Backend so that Duplicates Tracker accounts for possible changes in Constant usage after optimization, namely this PR fixes the case when a Constant register stored in Duplicates Tracker after all passes is represented by a non-constant expression. In this case we may be sure that it neither is able to create a duplicate nor is in need of a special placement as a Constant instruction. This PR doesn't introduce a new feature, and in this case we rely on existing set of test cases in the SPIRV Backend test suite to ensure that this PR doesn't break existing assumptions without introducing new test cases. There is a reproducer of the issue available as part of SYCL CTS test suite, however it's a binary of several MB's size. Given the subtlety of the issue, reduction of the reproducer to a reasonable site for inclusion into the SPIRV Backend test suite doesn't seem realistic.
Reviewers: efriedma-quic Reviewed By: efriedma-quic Pull Request: llvm#110529
jorickert
approved these changes
Jan 13, 2025
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.
No description provided.