- Jun 30, 2023
-
-
Alexey Bataev authored
extractelements.
-
John Harrison authored
[lldb-vscode] Prior to running the launchCommands during a launch request set the launch info so the configured launch information is accessible by the launch commands. Reviewed By: wallace Differential Revision: https://reviews.llvm.org/D154028
-
John Harrison authored
Adds support for a reverse DAP request to startDebugging. The new request can be used to launch child processes from lldb scripts, for example it would be start forward to configure a debug configuration for a server and a client allowing you to launch both processes with a single debug configuraiton. Reviewed By: wallace, ivanhernandez13 Differential Revision: https://reviews.llvm.org/D153447
-
Aart Bik authored
We are in the progress of migrating to a much improved surface syntax for the Sparse Tensor Encoding Attribute (STEA). You can see a preview of this in the StableHLO RFC at https://github.com/openxla/stablehlo/blob/main/rfcs/20230210-sparsity.md //**This design is courtesy Wren Romano.**// This initial revision (1) Introduces the first version of a new parser written by Wren Romano (2) Introduces a simple "migration plan" using NEW_SYNTAX on the STEA, which will allow us to test the new parser with new examples, as well as migrate existing examples over without the need to rewrite them all This first "drop" merely provides the entry points to parse the new syntax. The parser is still under active development. For example, we need to address the "lookahead" issue when parsing the lvl spec (viz. do we see l0 = d0 or a direct d0). Another larger task is to actually implement "affine" parsing (since the MLIR affine parser is not accessible in other parts of the tree). EXAMPLE: Currently, CSR looks like #CSR = #sparse_tensor.encoding<{ lvlTypes = ["dense","compressed"], dimToLvl = affine_map<(i,j) -> (i,j)> }> but you can "force" the new parser with #CSR = #sparse_tensor.encoding<{ NEW_SYNTAX = (d0, d1) -> (l0 = d0 : dense, l1 = d1 : compressed) }> Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D153997
-
Arthur Eubanks authored
The source_set needs to depend on Support so llvm-config files are generated first.
-
Joseph Huber authored
The RPC calls all have delays associated with them. Currently the `exit` function does an async send and immediately exits the GPU. This can have the effect that the RPC server never sees the exit call and we continue. This patch changes that to first sync with the server before continuing to perform its exit. There is still a hazard here, where the kernel can complete before the RPC call reads back its response, but this is simply multi-threaded hazards. This change ensures that the server *will* always exit some time after the GPU exits. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D154112
-
Aiden Grossman authored
Test failures have been reported by some LLVM developers in regards to the low value of of the location where the memory is being mapped into the virtual address space as it causes problems with some default configurations of vm.mmap_min_addr. This patch sets it to 2^20 (1048576) to alleviate this issues as most distros seem to use a default value of 65536.
-
wlei authored
We tested the stale profile matching on several Meta's internal services, all results are positive, for instance, in one service that refreshed its profile every one or two weeks, it consistently gave 1~2% performance improvement. We also observed an instance that a trivial refactoring caused a 2% regression and the matching can successfully recover the whole regression. Therefore, we'd like to turn it on by default for CSSPGO. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D154027
-
Slava Zakharin authored
This patch adds 'unordered' attribute handling the HLFIR elementals' builders and fixes the attribute handling in lowering and transformations. Depends on D154031, D154032 Reviewed By: jeanPerier, tblah Differential Revision: https://reviews.llvm.org/D154035
-
Slava Zakharin authored
This patch just disables inlining of ordered hlfir.elemental operations. Proving the safeness of inlining is left for future development. Depends on D154032 Reviewed By: jeanPerier, tblah Differential Revision: https://reviews.llvm.org/D154034
-
Noah Goldstein authored
This increases the likelyhood `x` is single-use and is typically easier to analyze. Proofs: https://alive2.llvm.org/ce/z/8ZpS2W Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D154004
-
Mark de Wever authored
-
Igor Kirillov authored
This patch extends LoopVectorize to handle the vectorization of interleaved memory accesses with scalable vectors when mask is required or/and predicated tail folding is enabled. Differential Revision: https://reviews.llvm.org/D152258
-
Luke Lau authored
Building on D149889, this patch updates SLP to pass the vector type as the AccessTy to getGEPCost. This should have the effect of GEPs being costed for more often instead of being treated as foldable into the address mode and thus free, as some architectures, notably RISC-V, do not have offset+reg addressing modes for vector memory accesses. Note that in SLP, GEPs are costed in two places: getPointersChainCost and GetGEPCostDiff. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D153570
-
Luke Lau authored
Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D149888
-
Slava Zakharin authored
Depends on D154031, D154032 Reviewed By: jeanPerier, tblah Differential Revision: https://reviews.llvm.org/D154033
-
Slava Zakharin authored
By default, `hlfir.elemental` and `hlfir.elemental_addr` must process the elements in order. The `unordered` attribute may be set, if it is safe to process the elements out of order. This patch just adds parsing support for the new attribute. Reviewed By: jeanPerier, tblah Differential Revision: https://reviews.llvm.org/D154032
-
Slava Zakharin authored
This patch sets `unordered` `fir.do_loop` attribute during lowering of elemental subroutine calls to HLFIR, when it is safe to do so. Proper handling of `hlfir.elemental` will be done in a separate patch. Reviewed By: jeanPerier, tblah Differential Revision: https://reviews.llvm.org/D154031
-
Sergei Barannikov authored
Reviewed By: JOE1994 Differential Revision: https://reviews.llvm.org/D153694
-
Craig Topper authored
Reduces the amount of repeated template parameters for every class. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D154042
-
Joseph Huber authored
A previous patch by @arsenm adjusted these to find the `amdgpu-arch` tool correctly if we do a `LLVM_ENABLE_PROJECTS` build. This patch applies the same to `nvptx-arch` tool to keep it consistent. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D154107
-
Scott Todd authored
The `printReindented` function searches for Unix style line endings (`\n`), but strings may have Windows style line endings (`\r\n`). Prior to this change, generated document sections could have extra indentation, which some markdown renderers interpret as code blocks rather than paragraphs. Differential Revision: https://reviews.llvm.org/D153591
-
Emilia Kond authored
The annotator correctly annotates an overloaded operator call when called as a member function, like `x.operator+(y)`, however, when called as a free function, like `operator+(x, y)`, the annotator assumed it was an overloaded operator function *declaration*, instead of a call. This patch allows for a free function call to correctly be annotated as a call, but only if the current like cannot be a declaration, usually within the bodies of a function. Fixes https://github.com/llvm/llvm-project/issues/49973 Reviewed By: HazardyKnusperkeks, owenpan, MyDeveloperDay, Nuullll Differential Revision: https://reviews.llvm.org/D153798
-
Carlos Eduardo Seo authored
The macOS toolchain deprecated sprintf in favor of snprintf. This was blocking the build on macOS. Replaced all instances of sprintf by snprintf.
-
Valentin Clement authored
From OpenACC 3.2 specification: The async, wait, and device_type clauses may be specified on data constructs. This patch adds these clauses in the ACC.td file and adds some tests for them in flang parsing. Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D154013
-
Jean Perier authored
The code generation of the fir.embox op creating descriptors for array substring with a non constant length base was using the substring length to compute the first dimension result stride. Fix it to use the input length instead. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D154086
-
Fangrui Song authored
`MCExpr::evaluateAsAbsolute` has a longstanding bug. When the MCAssembler is non-null and the MCAsmLayout is null, it may incorrectly fold A-B even if A and B are separated by a linker-relaxable instruction. This behavior can suppress some ADD/SUB relocations and lead to wrong results if the linker performs relaxation. To fix the bug, ensure that linker-relaxable instructions only appear at the end of an MCDataFragment, thereby making them terminate the fragment. When computing A-B, suppress folding if A and B are separated by a linker-relaxable instruction. * `.subsection` now correctly give errors for non-foldable expressions. * gen-dwarf.s will pass even if we add back the .debug_line or .eh_frame/.debug_frame code from D150004 * This will fix suppressed relocation when we add R_RISCV_SET_ULEB128/R_RISCV_SUB_ULEB128. In the future, we should investigate the desired behavior for `MCExpr::evaluateAsAbsolute` when both MCAssembler and MCAsmLayout are non-null. (Note: MCRelaxableFragment is only for assembler-relaxation. If we ever need linker-relaxable MCRelaxableFragment, we would need to adjust RISCVMCExpr.cpp (D58943/D73211).) Depends on D153096 Differential Revision: https://reviews.llvm.org/D153097
-
Arthur Eubanks authored
Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D153784
-
Jean Perier authored
fir.rebox is emitting an llvm.sdiv to compute the character length given the byte size from the input descriptor. Inside a fir.global, this is not needed given the target length must be accessible via the type, and it caused MLIR to fail LLVM IR code generation (and crash). Use the input type length when available instead. Reviewed By: PeteSteinfeld, vzakhari Differential Revision: https://reviews.llvm.org/D154072
-
Arthur Eubanks authored
-
Arthur Eubanks authored
Followup to D153624. Allows for better exit count calculations for loops checking heap allocations against null. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D154001
-
Arthur Eubanks authored
-
Johannes Doerfert authored
While we can disallow AAs, liveness checks are everywhere and if the user doesn't want them it is costly to go through just to find out everything is assumed live.
-
Johannes Doerfert authored
The interface was changed to return pointers, so we need to check them for null now at they might actually be null in the future).
-
Johannes Doerfert authored
-
Johannes Doerfert authored
-
Zhiheng Xie authored
For variables with lvalue reference type in untied task loop, it now wrongly sets its actual type as ElementType. It should be converted to pointer type. It fixes https://github.com/llvm/llvm-project/issues/62965 Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D153321
-
Scott Linder authored
Clean up ahead of a patch to fix bugs in the AMDGPUDisassembler. Use split-file to simplify and extend existing kernel-descriptor disassembly tests. Add a comment to AMDHSAKernelDescriptor.h, as at least one small set towards keeping all kernel-descriptor sensitive code in sync. Reviewed By: MaskRay, kzhuravl, arsenm Differential Revision: https://reviews.llvm.org/D130105
-
Valentin Clement authored
Name resolution was failing when the routine name is a function/subroutine in the parent scope. Reviewed By: vzakhari Differential Revision: https://reviews.llvm.org/D154002
-
- Jun 29, 2023
-
-
sstwcw authored
Before: ``` c = // '{default: 0}; ``` After: ``` c = // '{default: 0}; ``` If the line has to be broken, the continuation part should be indented. Before this fix, it was not the case if the continuation part was a struct literal. The rule that caused the problem was added in 783bac6b. It was intended for aligning the field labels in ProtoBuf. The type `TT_DictLiteral` was only for colons back then, so the program didn't have to check whether the token was a colon when it was already type `TT_DictLiteral`. Now the type applies to more things including the braces enclosing a dictionary literal. In Verilog, struct literals start with a quote. The quote is regarded as an identifier by the program. So the rule for aligning the fields in ProtoBuf applied to this situation by mistake. Reviewed By: HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D152623
-