This patch makes the following non-functional changes:
- Extract OpenMP clause processing into a new internal ClauseProcessor class. Atomic and reduction-related clauses processing is kept unchanged, since atomic clauses are stored in OmpAtomicClauseList rather than OmpClauseList and there are many TODO comments related to the current implementation of reduction lowering. This has been left unchanged to avoid merge conflicts and work duplication.
- Reorganize functions into sections in the file to improve readability.
- Explicitly use mlir:: namespace everywhere, rather than just most places.
- Spell out uses of auto in which the type wasn't explicitly stated as part of the initialization expression.
- Normalize a few function names to match the rest and renamed variables in 'snake_case' to 'camelCase'.
The main purpose is to reduce code duplication and simplify the implementation of upcoming work to support loop-attached target constructs and teams/distribute lowering to MLIR.