- Jul 22, 2022
-
-
Augie Fackler authored
This probably should have been part of D123089, but the effects of it don't show up until we start removing functions from the table in D130107. Oops. Differential Revision: https://reviews.llvm.org/D130184
-
Augie Fackler authored
This allows us to accept annotations from out-of-tree languages (the example test is derived from Rust) so they can enjoy the benefits of LLVM's optimizations without requiring LLVM to have language-specific knowledge. Differential Revision: https://reviews.llvm.org/D123091
-
Augie Fackler authored
Prior to this change, we relied on the hard-coded list for all of the information performed by MemoryBuiltins. With this change, we're able to start relying on properites of functions described in attributes, which opens the door to out-of-tree compilers being able to describe their allocator functions to LLVM's optimizer logic without having to register their implementation details with LLVM. Differential Revision: https://reviews.llvm.org/D123090
-
Sanjay Patel authored
[PatternMatch][InstCombine] match a vector with constant expression element(s) as a constant expression The InstCombine test is reduced from issue #56601. Without the more liberal match for ConstantExpr, we try to rearrange constants in Negator forever. Alternatively, we could adjust the definition of m_ImmConstant to be more conservative, but that's probably a larger patch, and I don't see any downside to changing m_ConstantExpr. We never capture and modify a ConstantExpr; transforms just want to avoid it. Differential Revision: https://reviews.llvm.org/D130286
-
Sanjay Patel authored
-
Arthur Eubanks authored
No need to add checks for every type per pointer that we couldn't create a check for the first time around, just the types that weren't successful. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D119376
-
Philip Reames authored
Turns out this has a large effect of tail folding, so split out a single test to cover that case and remove it from the others.
-
John Ericson authored
First of all, `LLVM_TOOLS_INSTALL_DIR` put there breaks our NixOS builds, because `LLVM_TOOLS_INSTALL_DIR` defined the same as `CMAKE_INSTALL_BINDIR` becomes an *absolute* path, and then when downstream projects try to install there too this breaks because our builds always install to fresh directories for isolation's sake. Second of all, note that `LLVM_TOOLS_INSTALL_DIR` stands out against the other specially crafted `LLVM_CONFIG_*` variables substituted in `llvm/cmake/modules/LLVMConfig.cmake.in`. @beanz added it in d0e1c2a5 to fix a dangling reference in `AddLLVM`, but I am suspicious of how this variable doesn't follow the pattern. Those other ones are carefully made to be build-time vs install-time variables depending on which `LLVMConfig.cmake` is being generated, are carefully made relative as appropriate, etc. etc. For my NixOS use-case they are also fine because they are never used as downstream install vari...
-
Jacques Pienaar authored
At least two weeks passed since flipped to _Both. Made some additional NFC changes in .td files that were not converted earlier.
-
Daniel Thornburgh authored
-
Slava Zakharin authored
Try 2 to merge 4fbd1d6c. Flang algebraic simplification pass will run algebraic simplification rewrite patterns for Math/Complex/etc. dialects. It is enabled under opt-for-speed optimization levels (i.e. for O1/O2/O3; Os/Oz will not enable it). With this change the FIR/MLIR optimization pipeline becomes affected by the -O* optimization level switches. Until now these switches only affected the middle-end and back-end. Differential Revision: https://reviews.llvm.org/D130035
-
George Petterson authored
This is the same as the existing multiplier-1 variant of DepthwiseConv2D, but in PyTorch dim order. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D128575
-
Daniel Thornburgh authored
This change implements the contextual symbolizer markup elements: reset, module, and mmap. These provide information about the runtime context of the binary necessary to resolve addresses to symbolic values. Summary information is printed to the output about this context. Multiple mmap elements for the same module line are coalesced together. The standard requires that such elements occur on their own lines to allow for this; accordingly, anything after a contextual element on a line is silently discarded. Implementing this cleanly requires that the filter drive the parser; this allows skipped sections to avoid being parsed. This also makes the filter quite a bit easier to use, at the cost of some unused flexibility. Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D129519
-
Zequan Wu authored
If error occurs on constructing coverage info for one of the object files, it prints the name of the object file, so that users know which one is the cause of error. Differential Revision: https://reviews.llvm.org/D130196
-
Zequan Wu authored
[SemaCXX] Set promotion type for enum if its type is promotable to integer type even if it has no definition. EnumDecl's promotion type is set either to the parsed type or calculated type after completing its definition. When it's bool type and has no definition, its promotion type is bool which is not allowed by clang. Fixes #56560. Differential Revision: https://reviews.llvm.org/D130210
-
Philip Reames authored
-
Philip Reames authored
-
Anubhab Ghosh authored
-
Jez Ng authored
`advanceSubsection()` didn't account for the possibility that a section could have no subsections. Reviewed By: #lld-macho, thakis, BertalanD Differential Revision: https://reviews.llvm.org/D130288
-
Javed Absar authored
Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D130274
-
Philip Reames authored
-
Johannes Doerfert authored
A copy-paste error caused UB in the definition of the unsigned long long versions of the shfl intrinsics. Reported and diagnosed by @trws. Differential Revision: https://reviews.llvm.org/D129536
-
Johannes Doerfert authored
We can help optimizations by making sure we use the team state whenever it is clear there is no thread state. To this end we introduce a new state flag (`state::HasThreadState`) and explicit control for the `state::ValueRAII` helpers, including a dedicated "assert equal". Differential Revision: https://reviews.llvm.org/D130113
-
Johannes Doerfert authored
Our conditional writes in the runtime look like this: ``` if (active) *ptr = value; ``` In the RAII we need to assign `ptr` which comes from a lookup call. If a thread that is not the main thread calls lookup with the intention to write the pointer, we'll create a new thread state. As such, we need to avoid calling lookup for inactive threads. We used to use `nullptr` as their `ptr` value but that can cause pessimistic reasoning. We now use `undef` instead. Differential Revision: https://reviews.llvm.org/D130114 -
Johannes Doerfert authored
We used to inline the `lookup` calls such that the runtime had "known" access offsets when it was shipped. With the new static library build it doesn't as the lookup is an indirection we cannot look through. This should help us optimize the code better until we can do LTO for the runtime again. Differential Revision: https://reviews.llvm.org/D130111
-
Joseph Huber authored
This patch extends the `is_valid_binary` routine to also check if the binary's architecture string matches the one parsed from the runtime. This should allow us to only use the binary whose compute capability matches, allowing us to support basic multi-architecture binaries for CUDA. Depends on D127432 Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D127505
-
Joseph Huber authored
The previous path changed the linker wrapper to embed the offloading binary format inside the target image instead. This will allow us to more generically bundle metadata with these images, such as requires clauses or the target architecture it was compiled for. I wasn't sure how to handle this best, so I introduced a new type that replaces the old `__tgt_device_image` struct that we can expand inside the runtime library. I made the new `__tgt_device_binary` struct pretty much the same for now. In the future we could change this struct to pretty much be the `OffloadBinary` class in the future. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D127432
-
Joseph Huber authored
The OpenMP offloading runtine currently uses an array of linked offloading images. One downside to this is that we cannot know the architecture or triple associated with the given image. In this patch, instead of embedding the image itself, we embed an offloading binary instead. This binary is simply a binary format that wraps around the original linked image to provide some additional metadata. This will allow us to support offloading to multiple architecture, or performing future JIT compilation inside of the runtime, more clearly. Additionally, these can be placed at a special section such that the supported architectures can be identified using objdump with the support from D126904. This needs to be stored in a new section name `.llvm.offloading.images` because the `.llvm.offloading` section implicitly uses the `SHF_EXCLUDE` flag and will always be stripped. This patch does not contain the necessary code to parse these in libomptarget. Depends on D127246 Reviewed By: saiislam Differential Revision: https://reviews.llvm.org/D127304
-
Pengxuan Zheng authored
Ignore the flag for now, but we can start using it for verbose output if needed. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D130202
-
Jakub Kuderski authored
This is to improve consistency within the SPIR-V dialect and make these ops a bit shorter. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D130280
-
Louis Dionne authored
In particular, create sections for deprecations and removals, and also for announcing upcoming deprecations/removals.
-
Abraham Corea Diaz authored
Adds `sarif` option to the existing `-fdiagnostics-format` flag for intended future work with SARIF diagnostics. Currently issues a warning against the use of diagnostics in SARIF mode, then defaults to clang style for diagnostics. Reviewed By: cjdb, denik, aaron.ballman Differential Revision: https://reviews.llvm.org/D129886
-
Louis Dionne authored
-
Tarun Prabhu authored
Lower F08 merge_bits intrinsic. Differential Revision: https://reviews.llvm.org/D129779
-
Christopher Bate authored
This change modifies `structured.tile_to_foreach_thread_op` so that it accepts either `tile_sizes` or `num_threads` parameters. If `tile_sizes` are specified, then the number of threads required is derived the tile sizes rather than the other way around. In both cases, more aggressive folding of loop parameters is enabled during the transformation, allowing for the potential elimination of `affine.min` and `affine.max` operations in the static shape case when calculating the final adjusted tile size. Differential Revision: https://reviews.llvm.org/D130139
-
Tarun Prabhu authored
Test compile-time folding of the F2008 merge_bits intrinsic. Differential Revision: https://reviews.llvm.org/D129780
-
Jorge Gorbe Moya authored
Extract a bit of copy/pasted regex filtering logic into a separate function and simplify it a little bit. Differential Revision: https://reviews.llvm.org/D130219
-
David Sherwood authored
This patch adds the AArch64 hook for preferPredicateOverEpilogue, which currently returns true if SVE is enabled and one of the following conditions (non-exhaustive) is met: 1. The "sve-tail-folding" option is set to "all", or 2. The "sve-tail-folding" option is set to "all+noreductions" and the loop does not contain reductions, 3. The "sve-tail-folding" option is set to "all+norecurrences" and the loop has no first-order recurrences. Currently the default option is "disabled", but this will be changed in a later patch. I've added new tests to show the options behave as expected here: Transforms/LoopVectorize/AArch64/sve-tail-folding-option.ll Differential Revision: https://reviews.llvm.org/D129560
-
- Jul 21, 2022
-
-
Kadir Cetinkaya authored
Differential Revision: https://reviews.llvm.org/D130261
-
Kadir Cetinkaya authored
That way when looking at logs it's clear whether diagnostics are a result of compile flags mismatch. Differential Revision: https://reviews.llvm.org/D130228
-