Extraction is too eager to inline temporary binders in for-loops
Extracting the following code to C causes the costly
function to be called at each loop iteration.
use mach.int.UInt64
let costly () = 1000:uint64
let f () = for i = 0 to costly () do done
uint64_t costly() {
return UINT64_C(1000);
}
void f() {
uint64_t i;
for (i = UINT64_C(0); ; ++i) {
if (i == costly()) {
break;
}
}
}