Beyond the Phase Ordering Problem: Finding the Globally Optimal Code w.r.t. Optimization Phases

Kavli Affiliate: Ke Wang

| First 5 Authors: Yu Wang, Hongyu Chen, Ke Wang, ,

| Summary:

In this paper, we propose a new concept called textit{semantically
equivalence} wrt textit{optimization phases} textit{(sep)}, which defines
the set of programs a compiler considers semantically equivalent to the input
using a set of optimization phases. We show both theoretically and empirically
that solving the phase ordering problem does not necessarily result in the most
efficient code among all programs that a compiler deems semantically equivalent
to the input, hereinafter referred to as the global optimal code wrt
optimization phases.
To find the global optimal code wrt optimization phases, we present a
conceptual framework, leveraging the reverse of existing optimization phases.
In theory, we prove that the framework is capable of finding the global optimal
code for any program. We realize this framework into a technique, called
textit{iterative bi-directional optimization (tool)}, which performs both the
normal and reverse optimizations to increase and decrease the efficiency of the
generated code, respectively.
We evaluate tool on C/C++ files randomly extracted from highly mature and
influential programs (eg, Linux kernel, OpenSSL, Z3). Results show that tool
frequently generates more efficient code — measured by either code size or
runtime performance — than exhaustive search, which is the solution to the
phase ordering problem. We also find by simply incorporating tool’s reverse
optimization phases, the effectiveness of the optimization of state-of-the-art
compilers (eg, GCC/LLVM) can be significantly improved.

| Search Query: ArXiv Query: search_query=au:”Ke Wang”&id_list=&start=0&max_results=3

Read More