X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Ffirmstat.h;h=94953d90bfa58a11f7356d3e78998b942be018c4;hb=544b8de70c3b5961b5ba6e0d9781306e0123502c;hp=9ce0abeab542af88d2ded4c49da99572227ea855;hpb=1ec30d95387eb392ba5a1adc7958ebd91383d59c;p=libfirm diff --git a/include/libfirm/firmstat.h b/include/libfirm/firmstat.h index 9ce0abeab..94953d90b 100644 --- a/include/libfirm/firmstat.h +++ b/include/libfirm/firmstat.h @@ -54,6 +54,7 @@ enum firmstat_optimizations_t { FS_OPT_ADD_SUB, /**< (a + x) - x = (a - x) + x */ FS_OPT_ADD_MUL_A_X_A, /**< a * x + a = a * (x + 1) */ FS_OPT_SUB_0_A, /**< 0 - a = -a */ + FS_OPT_MINUS_SUB, /**< - (a - b) = b - a */ FS_OPT_SUB_MUL_A_X_A, /**< a * x - a = a * (x - 1) */ FS_OPT_SUB_SUB_X_Y_Z, /**< (x - y) - z = x - (y + z) */ FS_OPT_MUL_MINUS_1, /**< a * -1 = -a */ @@ -65,6 +66,9 @@ enum firmstat_optimizations_t { FS_OPT_NOT_CMP, /**< !(a cmp b) = a !cmp b */ FS_OPT_OR_SHFT_TO_ROT, /**< (x << c) | (x >> (bits - c)) == Rot(x, c) */ FS_OPT_REASSOC_SHIFT, /**< (x SHF c1) SHF c2 = x SHF (c1+c2) */ + FS_OPT_SHIFT_AND, /**< (a SHF c) AND (b SHF c) = (a AND b) SHF c */ + FS_OPT_SHIFT_OR, /**< (a SHF c) OR (b SHF c) = (a OR b) SHF c */ + FS_OPT_SHIFT_EOR, /**< (a SHF c) XOR (b SHF c) = (a XOR b) SHF c */ FS_OPT_CONV, /**< a Conv could be removed */ FS_OPT_CAST, /**< a Cast could be removed */ FS_OPT_MIN_MAX_EQ, /**< Min(a,a) = Max(a,a) = a */ @@ -75,6 +79,11 @@ enum firmstat_optimizations_t { FS_OPT_MUX_TO_MAX, /**< Mux(a > b, a, b) = Max(a,b) */ FS_OPT_MUX_TO_ABS, /**< Mux(a > b, a, b) = Abs(a,b) */ FS_OPT_MUX_TO_SHR, /**< Mux(a > b, a, b) = a >> b */ + FS_OPT_IDEM_UNARY, /**< Idempotent unary operation */ + FS_OPT_MINUS_NOT, /**< -(~x) = x + 1 */ + FS_OPT_NOT_MINUS_1, /**< ~(x - 1) = -x */ + FS_OPT_NOT_PLUS_1, /**< ~x + 1 = -x */ + FS_OPT_FP_INV_MUL, /**< x / y = x * (1.0/y) */ FS_OPT_CONST_PHI, /**< Constant evaluation on Phi */ FS_BE_IA32_LEA, /**< Lea was created */ FS_BE_IA32_LOAD_LEA, /**< Load merged with a Lea */