1 //===-- OpenMP.cpp -- OpenACC directive lowering --------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // Coding style: https://mlir.llvm.org/getting_started/DeveloperGuide/ 10 // 11 //===----------------------------------------------------------------------===// 12 13 #include "flang/Lower/OpenACC.h" 14 #include "flang/Lower/Bridge.h" 15 #include "flang/Lower/FIRBuilder.h" 16 #include "flang/Lower/PFTBuilder.h" 17 #include "flang/Parser/parse-tree.h" 18 #include "llvm/Frontend/OpenACC/ACC.h.inc" 19 20 #define TODO() llvm_unreachable("not yet implemented") 21 22 void Fortran::lower::genOpenACCConstruct( 23 Fortran::lower::AbstractConverter &absConv, 24 Fortran::lower::pft::Evaluation &eval, 25 const Fortran::parser::OpenACCConstruct &accConstruct) { 26 27 std::visit( 28 common::visitors{ 29 [&](const Fortran::parser::OpenACCBlockConstruct &blockConstruct) { 30 TODO(); 31 }, 32 [&](const Fortran::parser::OpenACCCombinedConstruct 33 &combinedConstruct) { TODO(); }, 34 [&](const Fortran::parser::OpenACCLoopConstruct &loopConstruct) { 35 TODO(); 36 }, 37 [&](const Fortran::parser::OpenACCStandaloneConstruct 38 &standaloneConstruct) { TODO(); }, 39 [&](const Fortran::parser::OpenACCRoutineConstruct 40 &routineConstruct) { TODO(); }, 41 [&](const Fortran::parser::OpenACCCacheConstruct &cacheConstruct) { 42 TODO(); 43 }, 44 [&](const Fortran::parser::OpenACCWaitConstruct &waitConstruct) { 45 TODO(); 46 }, 47 [&](const Fortran::parser::OpenACCAtomicConstruct &atomicConstruct) { 48 TODO(); 49 }, 50 }, 51 accConstruct.u); 52 } 53