A flexible framework for studying trace-based just-in-time compilation. (January 2018)