This pass handles `acc routine` directive by creating specialized
functions with appropriate parallelism information that can be used for
eventual creation of device function.
For each acc.routine that is not bound by name, the pass creates a new
function (the "device" copy) whose body is a single acc.compute_region
containing a clone of the original (host) function body. Parallelism is
expressed by one acc.par_width derived from the routine's clauses (seq,
vector, worker, gang). The device copy created is simply a staging place
for eventual move to device module level function.
---------
Co-authored-by: Delaram Talaashrafi <dtalaashrafi@nvidia.com>