[LLVMdev] Autotuning parameters/heuristics within LLVM (original) (raw)
Jonas Wagner jonas.wagner at epfl.ch
Fri Oct 3 01:00:44 PDT 2014
- Previous message: [LLVMdev] Autotuning parameters/heuristics within LLVM
- Next message: [LLVMdev] Autotuning parameters/heuristics within LLVM
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Dear Robert,
a while ago, we had this idea of using compiler optimizations to increase the performance of verifying an app, instead of the performance of executing it. We found that there were a number of settings that had an effect on verification performance:
- The amount of loop unswitching -loop-unswitch-threshold=...
- The amount of loop unrolling -unroll-threshold=...
- The amount of function inlining -inline-threshold=...
- The amount of jump threading -jump-threading-threshold=...
- Whether to favor branches or select instructions -phi-node-folding-threshold=... -max-phi-to-fold-per-bb=...
The effect that these had on verification (in our case, exhaustive symbolic testing) was quite drastic, with speedups of 95x in some cases.
The core idea behind the work is that compilers use cost models that tell them how expensive an operation is. For verification, the costs are different. I’m writing you because these settings also have an impact en execution performance. If you find other parameters that have large effects, I’d be thrilled to hear about it.
Cheers, Jonas
PS: more details on our experiments: http://infoscience.epfl.ch/record/186012?ln=en -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141003/23565cb1/attachment.html>
- Previous message: [LLVMdev] Autotuning parameters/heuristics within LLVM
- Next message: [LLVMdev] Autotuning parameters/heuristics within LLVM
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]