- Apr 05, 2023
-
-
Lang Hames authored
This simplifies checking of the result (it's just an Error, rather than an optional<Expected<T>>), and allows T to be deduced rather than requiring that it be specified.
-
Nico Weber authored
-
Nico Weber authored
-
Tomás Longeri authored
Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D147583
-
David Blaikie authored
-
Joseph Huber authored
Some configurations may require `-DCUDAToolkit_ROOT` to find CUDA properly. This is currently not forwarded to the CMake invocation. This patch adds a prefix so it will be visible when the runtimes build is started. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D147582
-
Joseph Huber authored
The `clang-offload-packager`. `nvptx-arch`, and `amdgpu-arch` tools are required for building the GPU target of `libc`. This patch ensures that we build this tool when directly building `libc` via `ninja libc` or similar. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D147581
-
Joseph Huber authored
This patch loads the CUDA driver library directly via its real `DT_SONAME`. This prevents the filesystem from needing to reload it in cases when it's already loaded. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D147579
-
Hongtao Yu authored
This is the first change for FS-AFDO integration with CSSPGO. There are more patches coming. With pseudo probes, we do not assign FS discriminators to any other instructions since we will be using only probes for profile correlation. Also call instructions are excluded since their dwarf discriminators are used for other purposes, i.e, storing probe ids. Since they are not getting a FS discriminator, they will also be excluded from MIR profile loading. The corresponding changes will be in the subsequent patches. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D147286
-
Ian Douglas Scott authored
This makes it possible to use TRAP to make Linux system calls using inline assembly for instance. Differential Revision: https://reviews.llvm.org/D147102
-
Sanjeet Karan Singh authored
Calling symbolization directly from stopTheWorld was causing deadlock. For libc dep systems, symbolization uses dl_iterate_phdr, which acquire a dl write lock. It could deadlock if the lock is already acquired by one of suspended. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D146990
-
Adrian Prantl authored
This test doesn't actually depend on being able to launch the process. This may or may not explain why this test behaves oddly on some of our bots.
-
Adrian Prantl authored
-
Francesco Petrogalli authored
This is useful for retriving crash reports of LIT runs when the temporary folder is not accessible. Reviewed By: michaelplatings Differential Revision: https://reviews.llvm.org/D147209
-
Eduard Zingerman authored
Fixes BPF assembler parsing errors for the following instructions: - atomic_fetch_add - atomic_fetch_and - atomic_fetch_xor - atomic_fetch_or - cmpxchg32_32 - cmpxchg_64 - xchg32_32 - xchg_64 Also add a test to verify that all instructions could be assembled and disassembled. Differential Revision: https://reviews.llvm.org/D147421
-
Michal Paszkowski authored
IRTranslator lowers switches to [G_SUB] + G_ICMP + G_BRCOND + G_BR sequences. Since values and destination MBBs are included in the spv_switch intrinsics, the sequences are not needed for ISel. Before this commit, the information decoded by these sequences were added to spv_switch intrinsics in SPIRVPreLegalizer and the sequences were kept until SPIRVModuleAnalysis where they were marked skipped for emission. After this commit, the [G_SUB] + G_ICMP + G_BRCOND + G_BR sequences and MBBs containing only these MIs are erased in SPIRVPreLegalizer. Differential Revision: https://reviews.llvm.org/D146923
-
Sam Clegg authored
This code currently assumes that all bulk memory operations occur on memory 0 which who's type is determined by the wasm32 vs wasm64 target triple. Further improvements would be need to support multi-memory. Differential Revision: https://reviews.llvm.org/D147540
-
Evgenii Stepanov authored
Ironically, MSan copies uninitialized data off the stack into VAArgTLSCopy in the callee-side handling of va_start. Clamp the copy size to the actual length of the buffer, and zero-initialize the remainder. Differential Revision: https://reviews.llvm.org/D146858
-
ziqingluo-90 authored
For an expression of the form `&DRE[any]` under an Unspecified Pointer Context (UPC), we generate a fix-it for it with respect to a strategy. In case the strategy is `std::span` (it is the only supported one for now), the fix-it replaces the expression with `&DRE.data()[any]`. A UPC includes at least the contexts where - the expression is being casted to an integer; and - the expression is an argument of a call to a function that is not marked unsafe. Reviewed by: NoQ, malavikasamak, t-rasmud, jkorous Differential revision: https://reviews.llvm.org/D143128
-
Brooks Davis authored
Commit 392d9eb0 added a dependency on FPE_FLTIDO which was only defined in FreeBSD main on May 19, 2022 and is not in all supported releases. Just define it if it's missing as we could use a debugger compiled on an older system to debug a newer one. Reviewed by: DavidSpickett, emaste, dim Differential Revision: https://reviews.llvm.org/D147300
-
Florian Hahn authored
This preserves the spirit of the tests even if a follow-up changes only generates exit values for recurrences if they are actually used.
-
Wael Yehia authored
This is a follow up on D146976. Reviewed By: stephenpeckham Differential Revision: https://reviews.llvm.org/D147559
-
Philip Reames authored
-
Philip Reames authored
This matches the actual lowering. The previous costing was "as if" it had been fully scalarized.
-
Florian Hahn authored
Extend the verifier to check if the size of the matrix operands of matrix.multiply match the sizes specified by the numeric arguments. Reviewed By: thegameg Differential Revision: https://reviews.llvm.org/D147466
-
Vladimir Radosavljevic authored
This issue is caused by incomplete implementation of isKeyOf for DIStringType. Differential Revision: https://reviews.llvm.org/D147140
-
Kirill Stoimenov authored
-
Ethan Luis McDonough authored
This revision implements HLFIR to FIR lowering for complex parts. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D146487
-
Mathieu Fehr authored
This patch introduces the IRDL dialect, which allow users to represent dynamic dialect definitions as an MLIR program. The IRDL dialect defines operations, attributes, and types, using attribute constraints. For example: ``` module { irdl.dialect @cmath { irdl.type @complex { %0 = irdl.is f32 %1 = irdl.is f64 %2 = irdl.any_of(%0, %1) irdl.parameters(%2) } irdl.operation @norm { %0 = irdl.any %1 = irdl.parametric @complex<%0> irdl.operands(%1) irdl.results(%0) } } ``` This program will define a new `cmath.complex` type, which expects a single parameter, which is either an `f32` or an `f64`. It also defines an `cmath.norm` operation, which expects a single `cmath.complex` type as operand, and returns a value of the underlying type. Note that like PDL (which IRDL is heavily inspired from), both uses of `%0` are expected to be of the same attribute. IRDL handles attributes and types with the same operations, and does this by always wrapping types in a `TypeAttr`. This is to simplify the language. Depends on D144690 Reviewed By: rriddle, mehdi_amini Differential Revision: https://reviews.llvm.org/D144692 -
Chia-hung Duan authored
This avoids `-Wformat` complains the placeholder type specifier mismatch on `lld`/`llu`(used for `s64`/`u64`) which have slightly different interpretation in string_utils.cpp. Also enable Timer build which was disabled because of the complaining of `-Wformat`. Differential Revision: https://reviews.llvm.org/D147496
-
David Majnemer authored
All the IEEE formats are quite similar, we can merge their code effectively by writing it parametrically via the fltSemantics object. We can metaprogram the implementation such that this parametricity is zero-cost.
-
Jon Chesterfield authored
The premise here is to allow non-kernel functions to locate external LDS variables without using LDS or extra magic SGPRs to do so. 1/ First it crawls the callgraph to work out which external LDS variables are reachable from a given kernel 2/ Then it creates a new `extern char[0]` variable for each kernel, which will alias all the other extern LDS variables because that's the documented behaviour of these variables 3/ The address of that variable is written to a lookup table. The global variable is tagged with metadata to track what address it was allocated at by codegen 4/ The assembler builds the lookup table using the metadata 5/ Any non-kernel functions use the same magic intrinsic used by table lookups of non-dynamic LDS variables to find the address to use Heavy overlap with the code paths taken for other lowering, in particular the same intrinsic is used to pass the dynamic scope information through the same sgpr as for table lookups of static LDS. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D144233
-
Jeff Byrnes authored
Since memory does not have an intrinsic type, we do not need to require value type matching on stores in order to sink them. To facilitate that, this patch finds stores which are sinkable, but have conflicting types, and bitcasts the ValueOperand so they are easily sinkable into a PHINode. Rather than doing fancy analysis to optimally insert the bitcast, we always insert right before the relevant store in the diamond branch. The assumption is that later passes (e.g. GVN, SimplifyCFG) will clean up bitcasts as needed. Differential Revision: https://reviews.llvm.org/D147348
-
Sam Clegg authored
Also, fix checking of first line in ::parse. We can't use the ::getLines helper here since that already does comment stripping internally. Differential Revision: https://reviews.llvm.org/D147548
-
Keith Smiley authored
This should be implied by --use-reproducer instead as a path is required for this mode Differential Revision: https://reviews.llvm.org/D147499
-
Changpeng Fang authored
Revert "AMDGPU: Created a subclass for the return address operand in the tail call return instruction" This reverts commit 461a559b.
-
serge-sans-paille authored
This is overly conservative, but at least it's safe. This is a follow-up to https://reviews.llvm.org/D137707
-
Ivan Tadeu Ferreira Antunes Filho authored
Currently, the --thinlto-prefix-replace="oldpath;newpath" option is used during distributed ThinLTO thin links to specify the mapping of the input bitcode object files' directory tree (oldpath) to the directory tree (newpath) used for both: 1) the output files of the thin link itself (the .thinlto.bc index files and the optional .imports files) 2) the specified object file paths written to the response file given in the --thinlto-index-only=${response} option, which is used by the final native link and must match the paths of the native object files that will be produced by ThinLTO backend compiles. This patch expands the --thinlto-prefix-replace option to allow a separate directory tree mapping to be specified for the object file paths written to the response file (number 2 above). This is important to support builds and build systems where the same output directory may not be written by multiple build actions (e.g. the thin link and the ThinLTO backend compiles). The new format is: --thinlto-prefix-replace="origpath;outpath[;objpath]" This replaces the origpath directory tree of the thin link input files with outpath when writing the thin link index and imports outputs (number 1 above). If objpath is specified it replaces origpath of the input files with objpath when writing the response file (number 2 above), otherwise it falls back to the old behavior of using outpath for this as well. Reviewed By: tejohnson, MaskRay Differential Revision: https://reviews.llvm.org/D144596 -
Amara Emerson authored
We had this patch downstream for a long time, we need to find the users of the IR load to guess the bank since with opaque pointers we lost the type information.
-
Roy Sundahl authored
The test "big-file-copy.test" introduced in D146189 and constrained to darwin by D147094, is by this differential further constrained to only those devices with sufficient resources. Also correct the test to read the environment variable "result" from the same shell in which it was stored (which may differ on devices). Reviewed By: thetruestblue Differential Revision: https://reviews.llvm.org/D147502
-