[RFC] Flang - improve debug information, user error messages and fix OpenMP function mismatch for -save-temps flag

Wouldn’t it make more sense to start your two workflows from the parse tree instead of the preprocessed file?

No, both Clang and Flang start with separate preprocessing for OpenMP offloading. We do it to handle code which depends on target specific preprocessor directives. For example:

#ifdef __SSE2
const int VF = 4
#else
const int VF = 1
endif

You can find detailed explanation here.