- Jan 10, 2024
-
-
Mark de Wever authored
As pointed out by @Zingam the paper was implemented in libc++ as an extension. This patch does the bookkeeping. The inital release version is based on historical release dates. Completes: - Add a conditional noexcept specification to std::apply
-
Nikita Popov authored
This reverts commit 51bf0dff. There are test failures on Windows.
-
Valentin Clement (バレンタイン クレメン) authored
A couple of clauses are allowed multiple times when they are separated by a device_type clause. This patch updates the ACC.td file to move these clauses to the `allowedClause` list and the `CheckAllowedOncePerGroup` function is used to make sure they appear only once on the directive or for each device_type.
-
Valentin Clement (バレンタイン クレメン) authored
These tests were initially pushed together with https://github.com/llvm/llvm-project/pull/75864 but they were triggering some buildbot failure (sanitizers). They now make use of the `OwningOpRef` so all the resources are correctly destroyed at the end of each tests. They will be extended to includes all the extra getter functions added with device_type support.
-
David Green authored
Certain compilers do not seem to like the static assert with a string, causing a implicit conversion. It can be removed as it should not be reachable and the mlir::failure should handle it correctly in case it is.
-
Cyndy Ishida authored
An empty string attribute value (e.g. a parent-umbrella: "") is equivalent to omitting it. Theres no reason to write it out.
-
David Green authored
This adds a ReductionElementalConversion transform to OptimizedBufferizationPass, taking hlfir::count(hlfir::elemental) and generating the inline loop to perform the count of true elements. This lets us generate a single loop instead of ending up as two plus a temporary. Any and All should be able to share the same code with a different function/initial value.
-
Piotr Zegar authored
Replaced certain AST matchers in ExprMutationAnalyzer with a more direct utilization of AST classes. The primary bottleneck was identified in the canResolveToExpr AST matcher. Since this matcher was employed multiple times and used recursively, each invocation led to the constant creation and destruction of other matchers within it. Additionally, the continual comparison of DynTypedNode resulted in significant performance degradation. The optimization was tested on the TargetLowering.cpp file. Originally, the check took 156 seconds on that file, but after implementing this enhancement, it now takes approximately 40 seconds, making it nearly four times faster. Despite this improvement, there are still numerous issues in this file. To further reduce the computational cost of this class, it is advisable to consider removing the remaining matchers and exploring alternatives such as leveraging RecursiveASTVisitor and increasi...
-
Craig Topper authored
-Rename to GPRPair. -Rename registers to be named like X10_X11 instead of X10_PD. Except X0 which is now X0_Pair since it is not paired with X1. -Use unknown size and offset for the subreg indices. This might be a functional change, but does not affect any lit tests.
-
Andrey Ali Khan Bolshakov authored
Prior to this, attempts to bind a bit-field to an NTTP of reference type produced an error because references to subobjects in NTTPs are disallowed. But C++20 allows references to subobjects in NTTPs generally (see [P1907R1](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1907r1.html)). Without this change, implementing P1907R1 would cause a bug allowing bit-fields to be bound to reference template arguments. Extracted from https://reviews.llvm.org/D140996
-
Matt Arsenault authored
This is in preparation for moving the run of AMDGPUAttributor earlier. Currently it infers the lack of the corresponding intrinsic calls, so if we introduce new ones we need to remove the attribute from any possible transitive callers. This is more conservative than necessary, we could try to identify specific subgraphs where LDS globals are not used. Other options include teaching the attributor to avoid adding it in cases where the lowering may choose the table, but this seems more complex. Alternatively could add a second run which doesn't seem worth it. Depends #71349
-
Krzysztof Drewniak authored
Since vector loads and stores from scalar memrefs translate to llvm.load/store, add the ability to tag said loads and stores as nontemporal. This mirrors functionality available in memref.load/store.
-
Brad Smith authored
-
Matt Arsenault authored
Add the vop3p op_sel fields in getInsVOP3P instead of getInsVOP3Base. Also start using defvar for some of the intermediate fields. let overrides of all the visible fields are really difficult to follow.
-
Benjamin Kramer authored
-
Romaric Jodin authored
libclc does not have a half implementation for erf/erfc Add one based on the float implementation by extending the input and truncating the output.
-
Shan Huang authored
Fixes #77147.
-
Mark de Wever authored
This adds a subset of the C++20 calendar data formatters: - day, - month, - year, - month_day, - month_day_last, and - year_month_day. A followup patch will add the missing calendar data formatters: - weekday, - weekday_indexed, - weekday_last, - month_weekday, - month_weekday_last, - year_month, - year_month_day_last - year_month_weekday, and - year_month_weekday_last.
-
Michael Buch authored
This is required for users of `TypeQuery` that limit the set of languages of the query using APIs such as `GetSupportedLanguagesForTypes` or `GetSupportedLanguagesForExpressions`. Example usage: https://github.com/apple/llvm-project/pull/7885
-
- Jan 09, 2024
-
-
Nico Weber authored
Phab no longer knows about new revisions.
-
Nico Weber authored
-
Nico Weber authored
-
Congcong Cai authored
Fixes: #77411 When substituting deduced type, noexcept expr in method should be instantiated and evaluated. ThisScrope should be switched to method context instead of origin sema context
-
Guray Ozen authored
-
Louis Dionne authored
This patch adds a configuration of the libc++ test suite that enables optimizations when building the tests. It also adds a new CI configuration to exercise this on a regular basis. This is added in the context of [1], which requires building with optimizations in order to hit the bug. [1]: https://github.com/llvm/llvm-project/issues/68552
-
Qiongsi Wu authored
This PR exposes four PGO functions - `__llvm_profile_set_filename` - `__llvm_profile_reset_counters`, - `__llvm_profile_dump` - `__llvm_orderfile_dump` to user programs through the new header `instr_prof_interface.h` under `compiler-rt/include/profile`. This way, the user can include the header `profile/instr_prof_interface.h` to introduce these four names to their programs. Additionally, this PR defines macro `__LLVM_INSTR_PROFILE_GENERATE` when the program is compiled with profile generation, and defines macro `__LLVM_INSTR_PROFILE_USE` when the program is compiled with profile use. `__LLVM_INSTR_PROFILE_GENERATE` together with `instr_prof_interface.h` define the PGO functions only when the program is compiled with profile generation. When profile generation is off, these PGO functions are defined away and leave no trace in the user's program. Background: https://discourse.llvm.org/t/pgo-are-the-llvm-profile-functions-stable-c-apis-across-llvm-releases/75832
-
Zibi Sarbinowski authored
This change disables it on z/OS and AIX since it fails on both platforms with: fatal error: error in backend: Objective-C support is unimplemented for object file format
-
Razvan Lupusoru authored
This document captures the design philosophy of the acc dialect. It also shares the rationale behind the design and implementation of various operations - and ties that back to the dialect design goals. Co-authored-by:
Valentin Clement <clementval@gmail.com> Co-authored-by:
Slava Zakharin <szakharin@nvidia.com>
-
Pradeep Kumar authored
-
Sameer Sahasrabuddhe authored
-
Simon Pilgrim authored
-
Sergei Barannikov authored
Previously, registers created for temporary defs in apply patterns were rendered as uses, resulting in machine verifier errors.
-
HaohaiWen authored
LiveDebugValues requires CFG only has one entry. BranchFolding and MachineBlockPlacement may remove all predecessors of landing pad which leaves it to be another entry.
-
Alex Bradbury authored
This is the logical equivalent for #76710 for APInt and uses the same naming scheme. Converted existing users through: `git grep -l "cast<ConstantSDNode>\(.*\).*getAPIntValueValue" | xargs sed -E -i 's/cast<ConstantSDNode>\((.*)\)->getAPIntValue/\1->getAsAPIntVal/'`
-
Nikita Popov authored
-
Nikita Popov authored
-
Timm Bäder authored
-
David Sherwood authored
…9c849f42cf
-
agozillon authored
This patch is based on a previous PR https://reviews.llvm.org/D144657 that added alloca address space handling to MLIR's DataLayout and DLTI interface. This patch aims to add identical features to import and access the global and program memory space through MLIR's DataLayout/DLTI system.
-
agozillon authored
[Flang][Driver] Enable gpulibc/nogpulibc options for Flang, which allows linking of GPU LIBC for the fortran and OpenMP runtime (#77135) This patch seeks to add the -gpulibc and -nogpulibc for Flang, which allows the linking of the GPU libc library, this allows the use of memcpy and other useful library functions for GPU. In particular, this allows the Fortran runtime (written in C++) to be compiled for offload and then linked against the GPU LIBC library via this option to resolve memcpy and other C library functions that the fortran runtime depends on for AMD GPU devices (and likely other GPU devices). This is the current method I've tested and found to be able to utilise the Fortran runtime when compiled for AMD GPU, albeit it requires compiling libc for GPU and then the Fortran runtime for GPU, so not particularly straight forward or user friendly yet. Activating this option will allow the subset of C functions to also be utilised for GPU in other C/C++ based Fortran libraries if any are made when linking against GPU libc.
-