Fix Cray GPU routine macros: INLINENEVER directive and cray_inline scoping#1406
Fix Cray GPU routine macros: INLINENEVER directive and cray_inline scoping#1406sbryngelson wants to merge 2 commits intoMFlowCode:masterfrom
Conversation
ⓘ You've reached your Qodo monthly free-tier limit. Reviews pause until next month — upgrade your plan to continue now, or link your paid account if you already have one. |
📝 WalkthroughWalkthroughThe pull request updates GPU routine compilation directives for Cray Fortran. The 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1406 +/- ##
==========================================
- Coverage 64.75% 64.73% -0.02%
==========================================
Files 71 71
Lines 18721 18719 -2
Branches 1551 1547 -4
==========================================
- Hits 12123 12118 -5
Misses 5640 5640
- Partials 958 961 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Summary
!DIR$ NOINLINE→!DIR$ INLINENEVERin thecray_noinlinebranch ofGPU_ROUTINE(the correct Cray CCE directive name)$:cray_noinline_directiveemission in the Cray+OpenACC pathcray_inline=Trueoption forGPU_ROUTINEemitting!DIR$ INLINEALWAYS, used bys_compute_pressure!DIR$ INLINEALWAYSwas incorrectly emitted on non-Cray OpenACC builds (e.g. NVIDIA nvfortran); the directive is now Cray-only, matching thecray_noinlinepatternTest plan
!DIR$ INLINENEVER/!DIR$ INLINEALWAYSdirectives on targeted routines!DIR$directives./mfc.sh precheck -j 8passes (all 6 lint gates)