X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firoptimize.h;h=f31ea06f09c39c017ac5b8c81fa03e8a818bab1b;hb=e302589b2ee3b43584b856431b581d67bc679a68;hp=fcf8aa3b1fa979383576ae3ad61b7f8ab97de438;hpb=a2b3a133cc8333c011581a8b03d65316c2c631a4;p=libfirm diff --git a/include/libfirm/iroptimize.h b/include/libfirm/iroptimize.h index fcf8aa3b1..f31ea06f0 100644 --- a/include/libfirm/iroptimize.h +++ b/include/libfirm/iroptimize.h @@ -251,7 +251,9 @@ typedef enum osr_flags { osr_flag_none = 0, /**< no additional flags */ osr_flag_lftr_with_ov_check = 1, /**< do linear function test replacement only if no overflow can occur. */ - osr_flag_ignore_x86_shift = 2 /**< ignore Multiplications by 2, 4, 8 */ + osr_flag_ignore_x86_shift = 2, /**< ignore Multiplications by 2, 4, 8 */ + osr_flag_keep_reg_pressure = 4 /**< do NOT increase register pressure by introducing new + induction variables. */ } osr_flags; /* FirmJNI cannot handle identical enum values... */ @@ -422,8 +424,14 @@ void scalar_replacement_opt(ir_graph *irg); void reduce_strength(ir_graph *irg); /** - * Optimizes simple tail-recursion calls by - * converting them into loops. Depends on the flag opt_tail_recursion. + * Optimizes tail-recursion calls by converting them into loops. + * Depends on the flag opt_tail_recursion. + * Currently supports the following forms: + * - return func(); + * - return x + func(); + * - return func() - x; + * - return x * func(); + * - return -func(); * * Does not work for Calls that use the exception stuff. *