Rebalance benchmarks
- [ ] Prevent
iterate_incrementfrom being constant-folded - [ ] Prevent
factorial_accumulatorfrom being constant-folded - [ ] Change input sizes to more evenly distribute time
- [ ] Make input sizes round numbers
- [x] Add generator
- [x] Add handler sieve
- [ ] Add checkpointing
@mattisboeckle it would be great if you could figure out why iterate_increment and factorial_accumulator are constant-folded (in the llvm backend), and how we can cheaply prevent this (perhaps by using different arithmetic operations involving a magical modulus?)
@mattisboeckle it would be great if you could figure out why
iterate_incrementandfactorial_accumulatorare constant-folded (in the llvm backend), and how we can cheaply prevent this (perhaps by using different arithmetic operations involving a magical modulus?)
I was able to prevent constant folding in the mentioned programs by doing a modulo operation on the iteration parameter, which llvm does not seem to be able to analyze.
I've adjusted the magic mod value to 2^63-1 and added a comment explaining, why we do this.