From e7d37742a2a584fef9002778b33f9453647ab43c Mon Sep 17 00:00:00 2001 From: Sourabh Singh Tomar Date: Fri, 23 Oct 2020 20:29:12 +0530 Subject: [PATCH] [flang][OpenMP] Upstream lowering of OpenMP `Flush` construct Note: This patch reflects the work that can be upstreamed from PR's(merged): - https://github.com/flang-compiler/f18-llvm-project/pull/476 Reviewed By: kiranchandramohan, clementval Differential Revision: https://reviews.llvm.org/D90048 --- flang/lib/Lower/OpenMP.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/flang/lib/Lower/OpenMP.cpp b/flang/lib/Lower/OpenMP.cpp index 9c9c0a298dd6e..5b69800176ea7 100644 --- a/flang/lib/Lower/OpenMP.cpp +++ b/flang/lib/Lower/OpenMP.cpp @@ -104,7 +104,16 @@ genOMP(Fortran::lower::AbstractConverter &converter, genOMP(converter, eval, simpleStandaloneConstruct); }, [&](const Fortran::parser::OpenMPFlushConstruct &flushConstruct) { - TODO(); + SmallVector operandRange; + if (const auto &ompObjectList = + std::get>( + flushConstruct.t)) + genObjectList(*ompObjectList, converter, operandRange); + if (std::get>( + flushConstruct.t)) + TODO("Handle OmpFlushMemoryClause"); + converter.getFirOpBuilder().create( + converter.getCurrentLocation(), operandRange); }, [&](const Fortran::parser::OpenMPCancelConstruct &cancelConstruct) { TODO("");