This patch series improves the TCG optimizer, based on patterns found while executing various guest. The brcond ad setcond constant folding are useful especially useful when they are used to avoid some argument values (e.g. division by 0), and thus can be optimized when this argument is a constant.
This bring around 0.5% improvement on openssl like benchmarks. Aurelien Jarno (8): tcg: improve profiler tcg/optimize: split expression simplification tcg/optimize: simplify or/xor r, a, 0 cases tcg/optimize: simplify and r, a, 0 cases tcg/optimize: simplify shift/rot r, 0, a => movi r, 0 cases tcg/optimize: swap brcond/setcond arguments when possible tcg/optimize: add constant folding for setcond tcg/optimize: add constant folding for brcond tcg/optimize.c | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- tcg/tcg.c | 18 ++++--- tcg/tcg.h | 2 +- 3 files changed, 170 insertions(+), 11 deletions(-) -- 1.7.10.4