| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir][acc] Check legality of symbols in acc regions (#167957) This PR adds a new utility function to check whether symbols used in OpenACC regions are legal for offloading. Functions must be marked with acc routine or be built-in intrinsics. Global symbols must be marked with acc declare. The utility is designed to be extensible, and the OpenACCSupport analysis has been updated to allow handling of additional symbols that do not necessarily use OpenACC attributes but are marked in a way that still guarantees the symbol will be available when offloading. For example, in the Flang implementation, CUF attributes can be validated as legal symbols. | 9 个月前 | |
[mlir][acc][flang] Introduce OpenACC interfaces for globals (#168614) Introduce two new OpenACC operation interfaces for identifying global variables and their address computations: - GlobalVariableOpInterface: Identifies operations that define global variables. Provides an isConstant() method to query whether the global is constant. - AddressOfGlobalOpInterface: Identifies operations that compute the address of a global variable. Provides a getSymbol() method to retrieve the symbol reference. This is being done in preparation for ACCImplicitDeclare pass which will automatically ensure that acc declare is applied to globals when needed. The following operations now implement these interfaces: - memref::GlobalOp implements GlobalVariableOpInterface - memref::GetGlobalOp implements AddressOfGlobalOpInterface - fir::GlobalOp implements GlobalVariableOpInterface - fir::AddrOfOp implements AddressOfGlobalOpInterface | 9 个月前 | |
[mlir][acc] Adds attr to acc.present to identify default clause origin (#169114) The acc.present Op as generated by ACCImplicitData does not provide a way to differentiate between acc.present ops that are generated implicitly and the ones that are generated as result of an explicit default(present) clause in the source code. This differentiation would allow for better communication to the user on the decisions made by the compiler while managing data automatically between the host and the device. This commit adds this information as a discardable attribute on the acc.present op. | 8 个月前 | |
[mlir][acc] Check legality of symbols in acc regions (#167957) This PR adds a new utility function to check whether symbols used in OpenACC regions are legal for offloading. Functions must be marked with acc routine or be built-in intrinsics. Global symbols must be marked with acc declare. The utility is designed to be extensible, and the OpenACCSupport analysis has been updated to allow handling of additional symbols that do not necessarily use OpenACC attributes but are marked in a way that still guarantees the symbol will be available when offloading. For example, in the Flang implementation, CUF attributes can be validated as legal symbols. | 9 个月前 | |
[mlir][acc] Add OpenACCSupport for extensible dialect handling (#164510) The OpenACC dialect must coexist with source language dialects (FIR, CIR, etc.) to enable offloading. While type interfaces ( PointerLikeType and MappableType) provide the primary contract for variable mapping, some scenarios require pipeline-specific customization or need to express information that cannot be adequately captured through operation and type interfaces alone. This commit introduces the OpenACCSupport analysis, which provides extensible support APIs that can be customized per-pipeline. The analysis follows the Concept-Model pattern used in MLIR's AliasAnalysis and is never invalidated, persisting throughout the pass pipeline. The initial API, getVariableName(Value) -> string, retrieves variable names from MLIR values by: - Checking for acc.var_name attributes - Extracting names from ACC data clause operations (e.g., acc.copyin) - Walking through ViewLikeOpInterface operations to find the source This will be used in the implicit data mapping pass to automatically generate device mappings with correct user-visible variable names. Usage: Passes call getAnalysis<OpenACCSupport>() to get a cached instance with either the default or a previously- registered custom implementation. Custom implementations can be registered in a setup pass by calling setImplementation() before the consumer pass runs. | 9 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 个月前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 9 个月前 | ||
| 9 个月前 |