First, I must note that the current RISC architectures first compile and then re-plan, so the βhigh-levelβ build commands are compiled into smaller RISC commands. At least this is true for x86 / x64 architectures.
Then we can imagine the execution cycle as: compile - optimize / migrate - reduce the scale - compile - optimize / migrate.
This answer answers the question, the compiler has a much wider scope of visibility in the application, so it is mainly optimized at the macro level (application command blocks), while the processor is mainly optimized at the micro level (RISC command blocks).
source share