-freorder-blocks was causing bad code generation too.