The I. Introduction Limited battery life has made energy efficiency a critical issue for mobile computers and portable embedded systems, such as laptops, PDAs, cell phones, etc. Recent studies have examined the architecture of the overall system for energy saving opportunities, which consider not only hardware components for energy reduction, but also energyefficient software design and compilation [1]. Low energy software design can be performed at three levels of abstraction: instruction level, program or source-code level, and algorithm level [2]. Instruction-level techniques [3] have focused on efficient code generation for a program using energy consumption as the design metric, register allocation to minimize memory access overheads, and instruction reordering to reduce inter-instruction overheads, etc. While these approaches can be automated in the compilation process, the overall energy consumption savings is small, and is strongly tied to the processor architecture. Algorithmic approaches, on the other hand, achieve significant energy savings through careful selection of the algorithms used in the software [4], [5]. Since these approaches are mostly based on human intuition and knowledge, significant manual effort is essential for them. In contrast, program code restructuring approaches achieve the best balance between energy efficiency and automation. Their impact on energy consumption tends to be high since they work with a global view of the program. In addition, such techniques are platform-independent, making them easily portable to different architectures. In this work, we propose novel source code transformations that can reduce program energy consumption.Several source code transformations proposed for reducing software energy consumption have been surveyed in [6], [7]. These techAcknowledgments: This work was supported by DARPA under contract no. DAAB07-02-C-P302.