Adaptive processing can be used for reducing energy consumption of modern microprocessors while maintaining near optimal performance. In previous work, a multitude of approaches were presented to adapt various hardware structures to the phase behavior of a program execution. However, these approaches were unable to efficiently deal with a large number of possible hardware configurations in case of multiple adaptive structures. In this paper, we present a solution to this configuration space search problem by extending the temporal adaptation approach. We first identify phases through profiling of fixed length intervals and subsequently determine the optimal hardware configuration per phase using an efficient offline search algorithm. During program execution, we then inspect the phase behavior and adapt the hardware on a per-phase basis. With our approach, we are able to achieve an energy reduction of 37% on average (up to 61%) with an average 2.9% performance degradation.