You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[flang][acc] Add infrastructure and tests for ACCImplicitData (#166797)
This PR adds the necessary infrastructure to enable testing of the
ACCImplicitData pass for FIR/HLFIR, along with comprehensive test
coverage for implicit data clause generation in OpenACC constructs.
New Infrastructure:
- Add FIROpenACCSupport analysis providing FIR-specific implementations
of OpenACCSupport interface methods for variable name extraction, recipe
name generation, and NYI emission
- Add FIROpenACCUtils with helper functions for:
* Variable name extraction from FIR operations (getVariableName)
* Recipe name generation with FIR type string representation
* Bounds checking for constant array sections
- Add ACCInitializeFIRAnalyses pass to pre-register FIR analyses
(OpenACCSupport and AliasAnalysis) for use by subsequent OpenACC passes
in the pipeline
Refactoring in flang/lib/Lower/OpenACC.cpp:
- Move bounds string generation and bounds checking to FIROpenACCUtils
- Refactor recipe name generation to use fir::acc::getRecipeName
Test Coverage:
- acc-implicit-firstprivate.fir: Tests implicit firstprivate behavior
for scalar types (i8, i16, i32, i64, f32, f64, logical, complex) in
parallel/serial constructs with recipe generation verification
- acc-implicit-data.fir: Tests implicit data clauses for scalars,
arrays, derived types, and boxes in kernels/parallel/serial with
default(none) and default(present) variations
- acc-implicit-data-fortran.F90: Fortran tests verifying implicit data
generation through bbc with both HLFIR and FIR
- acc-implicit-data-derived-type-member.F90: Tests correct ordering of
parent/child data clause operations for derived type members
- acc-implicit-copy-reduction.fir: Tests enable-implicit-reduction-copy
flag controlling whether reduction variables use copy or firstprivate
This enables proper testing of implicit data clause generation through
the flang optimizer pipeline for OpenACC directives.
0 commit comments