Compile-Time Energy Reduction Techniques based on Voltage Scaling Characteristic