  The performance of the code generated by a compiler depends on the order in
which the optimization passes are applied. In high-level synthesis, the quality
of the generated circuit relates directly to the code generated by the
front-end compiler. Choosing a good order--often referred to as the
phase-ordering problem--is an NP-hard problem. In this paper, we evaluate a new
technique to address the phase-ordering problem: deep reinforcement learning.
We implement a framework in the context of the LLVM compiler to optimize the
ordering for HLS programs and compare the performance of deep reinforcement
learning to state-of-the-art algorithms that address the phase-ordering
problem. Overall, our framework runs one to two orders of magnitude faster than
these algorithms, and achieves a 16% improvement in circuit performance over
the -O3 compiler flag.
