This patch adds a new series of passes (currently only 1 and two
helper pass) called FinalizeOMP which are to be executed as
the final OpenMP pass step before semantic error checking, which
allows previous passes to have finished their rewriting
and symbol resolution giving the passes all the information
they need to work.
The main pass in FinalizeOMP currently is ImplicitDeclareTargetCapture
which scours any declare target (nohost|any) function or target region for implicit
function calls (and the children of these invocations calls) which currently
are not marked as declare target and then marks them as such by modifying
the existing declare target or generating a new declare target with the any
device_type.
No need to use a lambda function.