Isn't this two tasks for two people?
1) The application developer should focus on solving his problems effectively.
2) The compiler writer should improve the compiler so that reasonable good code is generated.
This is correct. In the same way that small streams make big rivers, the sum of the various levels of optimizations contribute to the overall system operation.