They are optimizing only for code size, so they don't need to run the code: they only count bytes emitted.
This works by changing around the order / interleaving of various LLVM optimization phases, so the learning process does not require knowledge of program timing or correctness.