| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang] Main program symbol no longer conflicts with the other symbols (#149169) The following code is now accepted: module m end program m use m end The PROGRAM name doesn't really have an effect on the compilation result, so it shouldn't result in symbol name conflicts. This change makes the main program symbol name all uppercase in the cooked character stream. This makes it distinct from all other symbol names that are all lowercase in cooked character stream. Modified the tests that were checking for lower case main program name. | 1 年前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][NFC] use hlfir.declare first result when both results are raw pointers (#132261) Currently, the helpers to get fir::ExtendedValue out of hlfir::Entity use hlfir.declare second result ( #1) in most cases. This is because this result is the same as the input and matches what FIR was getting before lowering to HLFIR. But this creates odd situations when both hlfir.declare are raw pointers and either result ends-up being used in the IR depending on whether the code was generated by a helper using fir::ExtendedValue, or via "pure HLFIR" helpers using the first result. This will typically prevent simple CSE and easy identification that two operation (e.g load/store) are touching the exact same memory location without using alias analysis or "manual detection" (looking for common hlfir.declare defining op). Hence, when hlfir.declare results are both raw pointers, use #0 when producing fir::ExtendedValue. When #0 is a fir.box, keep using #1 because these are not the same. The only code change is in HLFIRTools.cpp and is pretty small, but there is a big test fallout of #1 to #0. | 1 年前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang] Main program symbol no longer conflicts with the other symbols (#149169) The following code is now accepted: module m end program m use m end The PROGRAM name doesn't really have an effect on the compilation result, so it shouldn't result in symbol name conflicts. This change makes the main program symbol name all uppercase in the cooked character stream. This makes it distinct from all other symbol names that are all lowercase in cooked character stream. Modified the tests that were checking for lower case main program name. | 1 年前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][OpenACC] remap common block member symbols (#163752) | 9 个月前 | |
[flang][debug] Track dummy argument positions explicitly. (#167489) CHARACTER dummy arguments were treated as local variables in debug info. This happened because our method to get the argument number was not robust. It relied on DeclareOp having a direct reference to arguments which was not the case for character arguments. This is fixed by storing source-level argument positions in DeclareOp. Fixes #112886 | 8 个月前 | |
[flang][NFC] use hlfir.declare first result when both results are raw pointers (#132261) Currently, the helpers to get fir::ExtendedValue out of hlfir::Entity use hlfir.declare second result ( #1) in most cases. This is because this result is the same as the input and matches what FIR was getting before lowering to HLFIR. But this creates odd situations when both hlfir.declare are raw pointers and either result ends-up being used in the IR depending on whether the code was generated by a helper using fir::ExtendedValue, or via "pure HLFIR" helpers using the first result. This will typically prevent simple CSE and easy identification that two operation (e.g load/store) are touching the exact same memory location without using alias analysis or "manual detection" (looking for common hlfir.declare defining op). Hence, when hlfir.declare results are both raw pointers, use #0 when producing fir::ExtendedValue. When #0 is a fir.box, keep using #1 because these are not the same. The only code change is in HLFIRTools.cpp and is pretty small, but there is a big test fallout of #1 to #0. | 1 年前 | |
[flang][acc] Update assembly formats to include asyncOnly, async, and wait (#140122) The async implementation is inconsistent in terms of the assembly format. While renaming UpdateOp's async to asyncOnly, this PR handles asyncOnly along with async operands in every operation. Regarding EnterDataOp and ExitDataOp, they do not accept device types; thus, the async and the wait clauses without values lead to the async and the wait attributes (not asyncOnly nor waitOnly). This PR also processes them with async and wait operands all together. | 1 年前 | |
[acc][flang] lowering of acc declare on COMMON variables (#163676) COMMON variables are treated as locals and lowered to structured declares currently. This is incorrect because variables that are COMMON should be treated as globals. Added implementation to treat these variables differently. | 9 个月前 | |
[flang][acc] Generate constructors and destructors for common blocks (#137691) | 1 年前 | |
[flang][debug] Track dummy argument positions explicitly. (#167489) CHARACTER dummy arguments were treated as local variables in debug info. This happened because our method to get the argument number was not robust. It relied on DeclareOp having a direct reference to arguments which was not the case for character arguments. This is fixed by storing source-level argument positions in DeclareOp. Fixes #112886 | 8 个月前 | |
[flang][openacc] Support multiple device_type when lowering (#78634) routine, data, parallel, serial, kernels and loop construct all support the device_type clause. This clause takes a list of device_type. Previously the lowering code was assuming that the list s a single item. This PR updates the lowering to handle any number of device_types. | 2 年前 | |
[flang][debug] Track dummy argument positions explicitly. (#167489) CHARACTER dummy arguments were treated as local variables in debug info. This happened because our method to get the argument number was not robust. It relied on DeclareOp having a direct reference to arguments which was not the case for character arguments. This is fixed by storing source-level argument positions in DeclareOp. Fixes #112886 | 8 个月前 | |
[flang][acc] Update assembly formats to include asyncOnly, async, and wait (#140122) The async implementation is inconsistent in terms of the assembly format. While renaming UpdateOp's async to asyncOnly, this PR handles asyncOnly along with async operands in every operation. Regarding EnterDataOp and ExitDataOp, they do not accept device types; thus, the async and the wait clauses without values lead to the async and the wait attributes (not asyncOnly nor waitOnly). This PR also processes them with async and wait operands all together. | 1 年前 | |
[flang][OpenACC] generate Destroy region to free memory of private and firstprivate if needed (#162702) This patch extends the MappableTypeInterface to: - allow genPrivateInit to indicate that a Destroy region will be needed. - add genPrivateDestroy to generate the destruction code - Implement both interfaces in FIR - Update OpenACC lowering to generate the Destroy region when needed using those interfaces. | 9 个月前 | |
[flang][debug] Track dummy argument positions explicitly. (#167489) CHARACTER dummy arguments were treated as local variables in debug info. This happened because our method to get the argument number was not robust. It relied on DeclareOp having a direct reference to arguments which was not the case for character arguments. This is fixed by storing source-level argument positions in DeclareOp. Fixes #112886 | 8 个月前 | |
[flang][openacc] map data operand results to symbols inside compute region (#162306) Variable references inside OpenACC compute and loop region were currently always lowered to usages of the same SSA values than in the host thread, even for variables that appear in data clauses and for which acc data operations are created. This makes it a non-trivial task to identify implicit data usages vs usage of data appearing in clauses because the SSA addresses used in the region may have a non-trivial SSA relationship with the SSA addresses used as inputs of the data operations, especially after CSE runs that may merge component or array element addressing operations with similar addressing on the host thread (fir.coordinate/hlfir.designate). This patch updates OpenACC lowering to remap the Symbol that appear in data clauses to the related acc data operation result for the scope of the compute or loop region. To allow FIR passes to reason about these addresses, a new hlfir.declare operation is created with the acc data operation result. This gives access to the shape, contiguity, attributes, and dummy argument relationships inside the region without having FIR extended to understand the data operations. | 9 个月前 | |
[flang][openacc] map data operand results to symbols inside compute region (#162306) Variable references inside OpenACC compute and loop region were currently always lowered to usages of the same SSA values than in the host thread, even for variables that appear in data clauses and for which acc data operations are created. This makes it a non-trivial task to identify implicit data usages vs usage of data appearing in clauses because the SSA addresses used in the region may have a non-trivial SSA relationship with the SSA addresses used as inputs of the data operations, especially after CSE runs that may merge component or array element addressing operations with similar addressing on the host thread (fir.coordinate/hlfir.designate). This patch updates OpenACC lowering to remap the Symbol that appear in data clauses to the related acc data operation result for the scope of the compute or loop region. To allow FIR passes to reason about these addresses, a new hlfir.declare operation is created with the acc data operation result. This gives access to the shape, contiguity, attributes, and dummy argument relationships inside the region without having FIR extended to understand the data operations. | 9 个月前 | |
[flang][openacc][NFC] Remove run line for FIR only checks (#73050) Remove the run lines that check for the FIR lowering. HLFIR lowering produce the same check lines. | 2 年前 | |
[flang][cuda][openacc] Create new symbol in host_data region for CUDA Fortran interop (#161613) | 10 个月前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][openacc] Allow multiple device_type clauses on init and shutdown (#135314) Relax the restriction for init and shutdown directives for device_type clause. The clause can be allowed multiple times. | 1 年前 | |
[flang][acc] Lower zero modifier for Copyout clause (#166660) From the OpenACC 3.4 Specification: 1924 2.7.9 copyout clause 1925 The copyout clause may appear on structured data and compute constructs, on declare di 1926 rectives, and on exit data directives. The clause may optionally have a zero modifier if the 1927 copyout clause appears on a structured data or compute construct. 1928 Only the following modifiers may appear in the optional modifier-list: always, alwaysin or zero. 1929 Additionally, on structured data and compute constructs capture modifier may appear readonly is not a legal modifier for the copyout clause. The call to genDataOperandOperationsWithModifier should be checking the parsed modifier for the copyout clause against the Zero modifier. | 8 个月前 | |
[flang][acc] Lower zero modifier for Copyout clause (#166660) From the OpenACC 3.4 Specification: 1924 2.7.9 copyout clause 1925 The copyout clause may appear on structured data and compute constructs, on declare di 1926 rectives, and on exit data directives. The clause may optionally have a zero modifier if the 1927 copyout clause appears on a structured data or compute construct. 1928 Only the following modifiers may appear in the optional modifier-list: always, alwaysin or zero. 1929 Additionally, on structured data and compute constructs capture modifier may appear readonly is not a legal modifier for the copyout clause. The call to genDataOperandOperationsWithModifier should be checking the parsed modifier for the copyout clause against the Zero modifier. | 8 个月前 | |
[flang][acc] allow and ignore DIR between ACC and loops (#106522) The current pattern was failing OpenACC semantics in acc parse tree canonicalization: !acc loop !dir vector aligned do i=1,n ... Fix it by moving the directive before the OpenACC construct node. Note that I think it could make sense to propagate the $dir info to the acc.loop, at least with classic flang, the $dir seems to make a difference. This is not done here since few directives are supported anyway. | 1 年前 | |
[flang][openacc] Add support for force clause for loop collapse (#162534) Currently the force clause collapse (force:num_level) is NYI. Added support to sink any prologue and epilogue code to the inner most level as specified. | 9 个月前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][openacc] Allow open acc routines from other modules. (#136012) OpenACC routines annotations in separate compilation units currently get ignored, which leads to errors in compilation. There are two reason for currently ignoring open acc routine information and this PR is addressing both. - The module file reader doesn't read back in openacc directives from module files. - Simple fix in flang/lib/Semantics/mod-file.cpp - The lowering to HLFIR doesn't generate routine directives for symbols imported from other modules that are openacc routines. - This is the majority of this diff, and is address by the changes that start in flang/lib/Lower/CallInterface.cpp. | 1 年前 | |
[flang][acc] Lower zero modifier for Copyout clause (#166660) From the OpenACC 3.4 Specification: 1924 2.7.9 copyout clause 1925 The copyout clause may appear on structured data and compute constructs, on declare di 1926 rectives, and on exit data directives. The clause may optionally have a zero modifier if the 1927 copyout clause appears on a structured data or compute construct. 1928 Only the following modifiers may appear in the optional modifier-list: always, alwaysin or zero. 1929 Additionally, on structured data and compute constructs capture modifier may appear readonly is not a legal modifier for the copyout clause. The call to genDataOperandOperationsWithModifier should be checking the parsed modifier for the copyout clause against the Zero modifier. | 8 个月前 | |
[flang][acc] Lower zero modifier for Copyout clause (#166660) From the OpenACC 3.4 Specification: 1924 2.7.9 copyout clause 1925 The copyout clause may appear on structured data and compute constructs, on declare di 1926 rectives, and on exit data directives. The clause may optionally have a zero modifier if the 1927 copyout clause appears on a structured data or compute construct. 1928 Only the following modifiers may appear in the optional modifier-list: always, alwaysin or zero. 1929 Additionally, on structured data and compute constructs capture modifier may appear readonly is not a legal modifier for the copyout clause. The call to genDataOperandOperationsWithModifier should be checking the parsed modifier for the copyout clause against the Zero modifier. | 8 个月前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][debug] Track dummy argument positions explicitly. (#167489) CHARACTER dummy arguments were treated as local variables in debug info. This happened because our method to get the argument number was not robust. It relied on DeclareOp having a direct reference to arguments which was not the case for character arguments. This is fixed by storing source-level argument positions in DeclareOp. Fixes #112886 | 8 个月前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][openacc] Allow open acc routines from other modules. (#136012) OpenACC routines annotations in separate compilation units currently get ignored, which leads to errors in compilation. There are two reason for currently ignoring open acc routine information and this PR is addressing both. - The module file reader doesn't read back in openacc directives from module files. - Simple fix in flang/lib/Semantics/mod-file.cpp - The lowering to HLFIR doesn't generate routine directives for symbols imported from other modules that are openacc routines. - This is the majority of this diff, and is address by the changes that start in flang/lib/Lower/CallInterface.cpp. | 1 年前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][acc] Lower zero modifier for Copyout clause (#166660) From the OpenACC 3.4 Specification: 1924 2.7.9 copyout clause 1925 The copyout clause may appear on structured data and compute constructs, on declare di 1926 rectives, and on exit data directives. The clause may optionally have a zero modifier if the 1927 copyout clause appears on a structured data or compute construct. 1928 Only the following modifiers may appear in the optional modifier-list: always, alwaysin or zero. 1929 Additionally, on structured data and compute constructs capture modifier may appear readonly is not a legal modifier for the copyout clause. The call to genDataOperandOperationsWithModifier should be checking the parsed modifier for the copyout clause against the Zero modifier. | 8 个月前 | |
[flang][acc] Lower zero modifier for Copyout clause (#166660) From the OpenACC 3.4 Specification: 1924 2.7.9 copyout clause 1925 The copyout clause may appear on structured data and compute constructs, on declare di 1926 rectives, and on exit data directives. The clause may optionally have a zero modifier if the 1927 copyout clause appears on a structured data or compute construct. 1928 Only the following modifiers may appear in the optional modifier-list: always, alwaysin or zero. 1929 Additionally, on structured data and compute constructs capture modifier may appear readonly is not a legal modifier for the copyout clause. The call to genDataOperandOperationsWithModifier should be checking the parsed modifier for the copyout clause against the Zero modifier. | 8 个月前 | |
[flang][test] Fix filecheck annotation typos (#92387) | 1 年前 | |
[flang][openacc] parse and ignore non-standard shortloop clause (#106564) shortloop is a non standard OpenACC extension (https://docs.nvidia.com/hpc-sdk/pgi-compilers/2015/pgirn157.pdf) that can be found on loop directives. f18 parser was choking when seeing it. Since it can be found in existing apps and is mainly an optimization hint, parse it on loop directives and ignore it with a warning. For the records, here is shortloop meaning according to the manual linked above: "If the shortloop clause appears on a loop directive with the vector clause, it tells the compiler that the loop trip count is less than or equal to the number of vector lanes created for that loop. This means the value of the vector() clause on the loop directive in a kernels region, or the value of the vector_length() clause on the parallel directive in a parallel region will be greater than or equal to the loop trip count. This allows the compiler to generate more efficient code for the loop" | 1 年前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][OpenACC] lower acc loops with early exits (#164992) Lower acc loop with early exit using the newly added "unstructured" attribute. The core change of this patch is to refactor the loop control variable so that for loop with early exits, the induction variables are privatized, but no bounds operands are added to the acc.loop. The logic of the loop is implemented by the FIR loop lowering logic by generating explicit control flow. | 8 个月前 | |
[flang][acc] Update assembly formats to include asyncOnly, async, and wait (#140122) The async implementation is inconsistent in terms of the assembly format. While renaming UpdateOp's async to asyncOnly, this PR handles asyncOnly along with async operands in every operation. Regarding EnterDataOp and ExitDataOp, they do not accept device types; thus, the async and the wait clauses without values lead to the async and the wait attributes (not asyncOnly nor waitOnly). This PR also processes them with async and wait operands all together. | 1 年前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang][acc] Update assembly formats to include asyncOnly, async, and wait (#140122) The async implementation is inconsistent in terms of the assembly format. While renaming UpdateOp's async to asyncOnly, this PR handles asyncOnly along with async operands in every operation. Regarding EnterDataOp and ExitDataOp, they do not accept device types; thus, the async and the wait clauses without values lead to the async and the wait attributes (not asyncOnly nor waitOnly). This PR also processes them with async and wait operands all together. | 1 年前 | |
[flang][openacc] map data operand results to symbols inside compute region (#162306) Variable references inside OpenACC compute and loop region were currently always lowered to usages of the same SSA values than in the host thread, even for variables that appear in data clauses and for which acc data operations are created. This makes it a non-trivial task to identify implicit data usages vs usage of data appearing in clauses because the SSA addresses used in the region may have a non-trivial SSA relationship with the SSA addresses used as inputs of the data operations, especially after CSE runs that may merge component or array element addressing operations with similar addressing on the host thread (fir.coordinate/hlfir.designate). This patch updates OpenACC lowering to remap the Symbol that appear in data clauses to the related acc data operation result for the scope of the compute or loop region. To allow FIR passes to reason about these addresses, a new hlfir.declare operation is created with the acc data operation result. This gives access to the shape, contiguity, attributes, and dummy argument relationships inside the region without having FIR extended to understand the data operations. | 9 个月前 | |
[flang][NFC] Strip trailing whitespace from tests (5 of N) Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits | 8 个月前 | |
[flang] Add OpenACC flag to bbc Add -fopenacc flag to the bbc tool. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D121117 | 4 年前 | |
[flang] Do not produce result for void runtime call (#123155) Runtime function call to a void function are producing a ssa value because the FunctionType result is set to NoneType with is later translated to a empty struct. This is not an issue when going to LLVM IR but it breaks when lowering a gpu module to PTX. This patch update the RTModel to correctly set the FunctionType result type to nothing. This is one runtime call before this patch at the LLVM IR dialect step. %45 = llvm.call @_FortranAAssign(%arg0, %1, %44, %4) : (!llvm.ptr, !llvm.ptr, !llvm.ptr, i32) -> !llvm.struct<()> After the patch the call would be correctly formed llvm.call @_FortranAAssign(%arg0, %1, %44, %4) : (!llvm.ptr, !llvm.ptr, !llvm.ptr, i32) -> () Without the patch it would lead to error like: ptxas /tmp/mlir-cuda_device_mod-nvptx64-nvidia-cuda-sm_60-e804b6.ptx, line 10; error : Output parameter cannot be an incomplete array. ptxas /tmp/mlir-cuda_device_mod-nvptx64-nvidia-cuda-sm_60-e804b6.ptx, line 125; error : Call has wrong number of parameters The change is pretty much mechanical. | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 2 年前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 2 年前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 4 年前 | ||
| 1 年前 |