compiler tactics

speculative (profile-based) techniques

proof-based techniques

flow-sensitive rewrites

language-specific techniques

memory and placement transformation

loop transformations

global code shaping

control flow graph transformation