- May 12, 2023
-
-
LLVM GN Syncbot authored
-
Vitaly Buka authored
-
Arash Taheri-Dezfouli authored
Add C and python bindings for InferShapedTypeOpInterface and ShapedTypeComponents. This allows users to invoke InferShapedTypeOpInterface for ops that implement it. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D149494
-
Zequan Wu authored
https://reviews.llvm.org/rGc5b94ea265133a4a28006929643155fc8fbeafe6 allows N >= 10.
-
Florian Hahn authored
Apply missed cleanups.
-
Lei Zhang authored
Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D150391
-
Joseph Huber authored
The AMDGPU linker is `lld`, which has full support for standard features like static libraries. Previously the AMDGPU toolchain did not forward `-L` arguments so we could not tell it where to find certain libraries. This patch simply forwards it like the other toolchains. Reviewed By: yaxunl, MaskRay Differential Revision: https://reviews.llvm.org/D150013
-
Florian Hahn authored
When generating code for the epilogue vector loop, we need to re-use the expansion results for induction steps generated for the main vector loop, as the pre-header of the epilogue vector loop may not dominate the vector preheader of the epilogue. This fixes a reported crash. Note that this is a workaround which should be removed soon once induction resume value creation is handled in VPlan directly.
-
Lei Zhang authored
Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D150389
-
Louis Dionne authored
This allows backends to customize arbitrary parallel algorithms, which was requested pretty often. Reviewed By: #libc, ldionne Spies: arichardson, miyuki, crtrott, dalg24, __simt__, philnik, libcxx-commits Differential Revision: https://reviews.llvm.org/D149686
-
Fangrui Song authored
For the "C" Standard Extension/Zca, D45560 enabled 2-byte alignment for assembly output (e.g. `clang -S a.c`) and D102052 enabled 2-byte alignment for assembly input and object file output (e.g. `clang -c a.s`). This patch ports the behavior for code generation and object file output by adding RISCVELFTargetObjectFile::getTextSectionAlignment (e.g. `clang -c a.c`). Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D150240
-
Akira Hatanaka authored
Stop reordering the pointers passed in ProvenanceAnalysis::related based on their values. That was causing non-determinism as the call to relatedCheck(A, B) isn't guaranteed to return the same result as relatedCheck(B, A). Revert the following three commits (except the original test case in related-check.ll): 665e4777 29586151 d877e3fe These changes shouldn't be necessary once the call to std::swap is removed. Differential Revision: https://reviews.llvm.org/D150296
-
Adrian Prantl authored
-
Dave Lee authored
When `disassemble --mixed` is run, do not show source for line zero, as intended. Differential Revision: https://reviews.llvm.org/D150383
-
Jorge Gorbe Moya authored
According to the spec, RestartRequest has an optional "arguments" field, which is a RestartArguments object. RestartArguments has its own optional "arguments" field, which is a (LaunchRequestArguments | AttachRequestArguments) object. So we need to to the "arguments" lookup twice to get to the actual launch arguments. Differential Revision: https://reviews.llvm.org/D150392
-
Jordan Rupprecht authored
-
David Green authored
I have not seen this be a problem, but the Changed status should be updated not reset on new instruction to get the total Changed status overall.
-
Nikolas Klauser authored
Reviewed By: aaron.ballman Spies: H-G-Hristov, cfe-commits Differential Revision: https://reviews.llvm.org/D150321
-
Rafael Auler authored
https://github.com/facebookincubator/BOLT/pull/255 accidentally omitted a relocation type when refactoring the code. Add this type back and change function name so its intent is more clear. Reviewed By: #bolt, Amir Differential Revision: https://reviews.llvm.org/D150335
-
Philip Reames authored
Mostly just avoiding the need to keep both Value and SCEVs flowing through with consistent handling. We can do everything in terms of SCEV - aside from the profitability heuristics which are now isolated in one spot.
-
Jonathon Penix authored
This patch adds a check for whether the memory operand is known to be a jump table and, if so, allows shrinkwrapping to continue. In the case that we are looking at a jump table, I believe it is safe to assume that the access will not be to the stack (but please correct me if I am wrong here). In the test attached, this is helpful in that we are able to generate only one instruction for each non-default case in the original switch statement. Differential Revision: https://reviews.llvm.org/D149886
-
Rahman Lavaee authored
This patch encapsulates the encoding and decoding logic of basic block metadata into the Metadata struct, and also reduces the decoded size of `SHT_LLVM_BB_ADDR_MAP` section. The patch would've looked more readable if we could use designated initializer, but that is a c++20 feature. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D148360
-
Philip Reames authored
LV/LAA will speculate that (some) strided access patterns have unit stride, and insert runtime checks if required. LV cost models a multiply by such a stride as free. We did this by keeping around the StrideSet structure, just to check if one of the operands were one of the strides we speculated. We can instead just ask PredicatedScalarEvolution if either of the operands are one (after predicates are applied). We get mostly the same result - PSE can prove it in more cases in theory - and simpler code.
-
Mircea Trofin authored
-
Joseph Huber authored
Summary: We need this function from the test.cpp but need to declare it manually.
-
Hanhan Wang authored
The revision adds support for tensor.pack op decomposition when all inner tile sizes are static. The generated tensor.expand_shape op is still valid because only one of the expanding dimension is dynamic. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D150233
-
Aart Bik authored
Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D150382
-
Valentin Clement authored
The information needed for translation is now encoded in the dialect operations and does not require a dedicated pass to be extracted. Remove the obsolete passes that were performing operand legalization. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D150248
-
Philip Reames authored
The original commit wasn't quite NFC, and this was caught by an arguably overly strong assert. Specifically, I'd failed to strip off the integer cast off the SCEV before saving it in the map. The result - other than a failed assert - is that we'd speculate on the casted unknown, not the unknown. The only case I can think of where that might change behavior would be a sext(i1 load). I doubt that case is interesting in practice, but it's good to be strictly NFC on this change regardless. Original commit message follows.. The existing code makes it hard to tell that collectStridedAccess is really about identifying some loop invariant SCEV which is *profitable* to speculate is equal to one. The odd dual usage structure of Value and SCEV confuses this point. We could choose to loosen the profitability analysis if desired. I'm not proposing doing so at this time as it exposes too many cases where the speculation is unprofitable. Differential Revision: https://reviews.llvm.org/D147750
-
Joseph Huber authored
Currently we provide the `send_n` and `recv_n` functions. These were somewhat divergent and not tested on the GPU. This patch changes the support to be more common. We do this my making the CPU provide an array equal the to at least the lane size while the GPU can rely on the private memory address of its stack variables. This allows us to send data back and forth generically. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D150379
-
Philip Reames authored
This reverts commit d5b84013. Running this through broader testing after rebasing is revealing a crash. Reverting while I investigate.
-
Teresa Johnson authored
I noticed that we are converting llvm.public.type.test to regular llvm.type.test too early, and thus not updating those in imported functions. This would result in losing out on WPD opportunities. Move the update to after function importing, and improve test to cover this case. Differential Revision: https://reviews.llvm.org/D150326
-
- May 11, 2023
-
-
Florian Hahn authored
Update skeleton creation logic to use SCEV expansion results from expanding the pre-header. This avoids another set of SCEV expansions that may happen after the CFG has been modified. Fixes #58811. Depends on D147964. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D147965
-
Slava Zakharin authored
The bufferization pass must create the tuple for these operations, because the users may require it. For example, in case of ElementalOp inlining a DestroyOp may be generated for the operand of YieldElementOp, and the operand may be ApplyOp->NoReassocOp chain. Differential Revision: https://reviews.llvm.org/D150343
-
Philip Reames authored
The existing code makes it hard to tell that collectStridedAccess is really about identifying some loop invariant SCEV which is *profitable* to speculate is equal to one. The odd dual usage structure of Value and SCEV confuses this point. We could choose to loosen the profitability analysis if desired. I'm not proposing doing so at this time as it exposes too many cases where the speculation is unprofitable. Differential Revision: https://reviews.llvm.org/D147750
-
David Truby authored
On Windows, global string literals with "linkonce" linkage is not supported without using comdat. As a simpler fix than adding comdat support we can use internal linkage instead. This fixes a bug where two string literals with the same value in different fortran files would cause a linker error due to the use of linkonce linkage. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D149859
-
NAKAMURA Takumi authored
Differential Revision: https://reviews.llvm.org/D149513
-
Felipe de Azevedo Piovezan authored
This commit implements the serialization and deserialization of the Machine Function's EntryValueObjects. Depends on D149879, D149778 Differential Revision: https://reviews.llvm.org/D149880
-
Joseph Huber authored
I forgot that we still used these variables in the loaders. Differential Revision: https://reviews.llvm.org/D150362
-
Aaron Ballman authored
This fixes the visualizers for: Type DeclContext QualType TypedefNameDecl NestedNameSpecifier FunctionDecl and adds visualizers for: VariableArrayType ElaboratedType ParenType BitIntType
-