This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Bootstrapped and testsuited-checked on x86-64-linux. OK for the trunk?
2008-08-16 Tobias Burnus <burnus@net-b.de> * libgfortran.h (likely,unlikely): New makros. (runtime_warning_at,__mingw_snprintf): Add __attribute__(format()). * m4/spread.m4 (spread_'rtype_code`): Use unlikely for bounds_check. * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Ditto. * m4/matmull.m4 (matmul_'rtype_code`): Ditto. * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Ditto. * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Ditto. * m4/matmul.m4 (matmul_'rtype_code`): Ditto. * generated/minval_r8.c: Regenerated. * generated/spread_r10.c: Regenerated. * generated/minloc1_16_r16.c: Regenerated. * generated/maxloc1_4_r8.c: Regenerated. * generated/sum_i8.c: Regenerated. * generated/any_l16.c: Regenerated. * generated/spread_i8.c: Regenerated. * generated/maxval_i2.c: Regenerated. * generated/any_l2.c: Regenerated. * generated/product_r4.c: Regenerated. * generated/maxloc1_8_i4.c: Regenerated. * generated/maxloc0_4_r4.c: Regenerated. * generated/all_l1.c: Regenerated. * generated/matmul_r8.c: Regenerated. * generated/product_i2.c: Regenerated. * generated/minloc0_4_r16.c: Regenerated. * generated/minloc0_4_i1.c: Regenerated. * generated/maxloc0_4_r16.c: Regenerated. * generated/maxloc0_4_i2.c: Regenerated. * generated/minloc1_8_r16.c: Regenerated. * generated/maxloc1_8_r16.c: Regenerated. * generated/maxloc0_8_i8.c: Regenerated. * generated/sum_r16.c: Regenerated. * generated/sum_i1.c: Regenerated. * generated/minloc1_4_r8.c: Regenerated. * generated/maxloc1_16_r16.c: Regenerated. * generated/minloc1_16_i4.c: Regenerated. * generated/maxloc1_16_i4.c: Regenerated. * generated/minloc0_16_i8.c: Regenerated. * generated/spread_i1.c: Regenerated. * generated/maxloc0_16_i8.c: Regenerated. * generated/maxval_r16.c: Regenerated. * generated/product_c10.c: Regenerated. * generated/minloc1_8_i4.c: Regenerated. * generated/minloc0_16_i16.c: Regenerated. * generated/matmul_r16.c: Regenerated. * generated/minloc0_4_r4.c: Regenerated. * generated/all_l2.c: Regenerated. * generated/product_c4.c: Regenerated. * generated/sum_r4.c: Regenerated. * generated/minloc0_4_i2.c: Regenerated. * generated/spread_c10.c: Regenerated. * generated/maxloc0_8_i1.c: Regenerated. * generated/spread_r4.c: Regenerated. * generated/minloc0_8_i8.c: Regenerated. * generated/matmul_c8.c: Regenerated. * generated/all_l16.c: Regenerated. * generated/minloc1_16_r10.c: Regenerated. * generated/sum_i2.c: Regenerated. * generated/minloc0_16_i1.c: Regenerated. * generated/maxloc0_16_i1.c: Regenerated. * generated/maxloc1_8_r8.c: Regenerated. * generated/minval_i16.c: Regenerated. * generated/spread_i2.c: Regenerated. * generated/maxval_i4.c: Regenerated. * generated/minval_i8.c: Regenerated. * generated/any_l4.c: Regenerated. * generated/maxloc1_4_i8.c: Regenerated. * generated/maxloc0_16_i16.c: Regenerated. * generated/maxloc0_8_r4.c: Regenerated. * generated/minloc1_4_i16.c: Regenerated. * generated/maxloc1_4_i16.c: Regenerated. * generated/minloc0_4_r10.c: Regenerated. * generated/minloc0_8_i16.c: Regenerated. * generated/maxloc0_4_r10.c: Regenerated. * generated/maxloc0_8_i16.c: Regenerated. * generated/minloc1_8_r10.c: Regenerated. * generated/product_i4.c: Regenerated. * generated/minloc0_16_r4.c: Regenerated. * generated/sum_c16.c: Regenerated. * generated/maxloc1_8_r10.c: Regenerated. * generated/maxloc0_16_r4.c: Regenerated. * generated/minloc1_16_r8.c: Regenerated. * generated/minloc0_8_i1.c: Regenerated. * generated/maxloc0_4_i4.c: Regenerated. * generated/maxloc1_16_r8.c: Regenerated. * generated/maxloc0_8_i2.c: Regenerated. * generated/sum_r10.c: Regenerated. * generated/count_4_l.c: Regenerated. * generated/sum_c4.c: Regenerated. * generated/count_8_l.c: Regenerated. * generated/maxloc1_16_r10.c: Regenerated. * generated/matmul_i8.c: Regenerated. * generated/minloc0_16_i2.c: Regenerated. * generated/minloc1_8_r8.c: Regenerated. * generated/maxloc0_16_i2.c: Regenerated. * generated/spread_c4.c: Regenerated. * generated/matmul_c16.c: Regenerated. * generated/maxval_r10.c: Regenerated. * generated/minval_i1.c: Regenerated. * generated/maxloc1_4_i1.c: Regenerated. * generated/matmul_r10.c: Regenerated. * generated/minloc1_4_i8.c: Regenerated. * generated/minloc0_8_r4.c: Regenerated. * generated/matmul_l4.c: Regenerated. * generated/product_i16.c: Regenerated. * generated/minloc0_16_r16.c: Regenerated. * generated/all_l4.c: Regenerated. * generated/minloc0_4_i4.c: Regenerated. * generated/minloc0_8_i2.c: Regenerated. * generated/matmul_i1.c: Regenerated. * generated/minval_r4.c: Regenerated. * generated/maxloc1_4_r4.c: Regenerated. * generated/spread_i16.c: Regenerated. * generated/sum_i4.c: Regenerated. * generated/maxval_r8.c: Regenerated. * generated/spread_i4.c: Regenerated. * generated/minloc1_4_i1.c: Regenerated. * generated/minval_r16.c: Regenerated. * generated/minval_i2.c: Regenerated. * generated/maxloc1_4_i2.c: Regenerated. * generated/product_r8.c: Regenerated. * generated/maxloc1_8_i8.c: Regenerated. * generated/maxloc0_4_r8.c: Regenerated. * generated/maxloc0_16_r16.c: Regenerated. * generated/matmul_r4.c: Regenerated. * generated/sum_c10.c: Regenerated. * generated/minloc1_4_r16.c: Regenerated. * generated/maxloc1_4_r16.c: Regenerated. * generated/minloc0_8_r16.c: Regenerated. * generated/maxloc0_8_r16.c: Regenerated. * generated/count_1_l.c: Regenerated. * generated/maxloc0_8_i4.c: Regenerated. * generated/matmul_i2.c: Regenerated. * generated/minloc1_4_r4.c: Regenerated. * generated/matmul_c10.c: Regenerated. * generated/minloc0_16_i4.c: Regenerated. * generated/maxloc0_16_i4.c: Regenerated. * generated/minloc1_16_i8.c: Regenerated. * generated/maxloc1_16_i8.c: Regenerated. * generated/minloc1_4_i2.c: Regenerated. * generated/matmul_l16.c: Regenerated. * generated/maxloc1_8_i1.c: Regenerated. * generated/minloc0_16_r10.c: Regenerated. * generated/minloc1_8_i8.c: Regenerated. * generated/minloc0_4_r8.c: Regenerated. * generated/product_r16.c: Regenerated. * generated/product_c8.c: Regenerated. * generated/sum_r8.c: Regenerated. * generated/minloc0_8_i4.c: Regenerated. * generated/matmul_c4.c: Regenerated. * generated/minloc1_16_i16.c: Regenerated. * generated/spread_r8.c: Regenerated. * generated/maxloc1_8_r4.c: Regenerated. * generated/minloc1_16_i1.c: Regenerated. * generated/maxloc1_16_i1.c: Regenerated. * generated/spread_r16.c: Regenerated. * generated/minval_r10.c: Regenerated. * generated/count_16_l.c: Regenerated. * generated/minval_i4.c: Regenerated. * generated/minloc1_8_i1.c: Regenerated. * generated/maxloc1_4_i4.c: Regenerated. * generated/maxloc1_8_i2.c: Regenerated. * generated/maxval_i8.c: Regenerated. * generated/any_l8.c: Regenerated. * generated/maxloc0_16_r10.c: Regenerated. * generated/minloc0_4_i16.c: Regenerated. * generated/maxloc0_8_r8.c: Regenerated. * generated/maxloc0_4_i16.c: Regenerated. * generated/minloc1_4_r10.c: Regenerated. * generated/minloc1_8_i16.c: Regenerated. * generated/maxloc1_4_r10.c: Regenerated. * generated/maxloc1_8_i16.c: Regenerated. * generated/minloc0_8_r10.c: Regenerated. * generated/maxloc0_8_r10.c: Regenerated. * generated/minloc1_16_r4.c: Regenerated. * generated/maxloc1_16_r4.c: Regenerated. * generated/minloc0_16_r8.c: Regenerated. * generated/product_i8.c: Regenerated. * generated/maxloc0_16_r8.c: Regenerated. * generated/sum_i16.c: Regenerated. * generated/count_2_l.c: Regenerated. * generated/maxloc0_4_i8.c: Regenerated. * generated/maxloc1_16_i16.c: Regenerated. * generated/matmul_i4.c: Regenerated. * generated/minloc1_8_r4.c: Regenerated. * generated/sum_c8.c: Regenerated. * generated/minloc1_16_i2.c: Regenerated. * generated/maxloc1_16_i2.c: Regenerated. * generated/maxval_i16.c: Regenerated. * generated/spread_c8.c: Regenerated. * generated/matmul_i16.c: Regenerated. * generated/minloc1_4_i4.c: Regenerated. * generated/maxval_i1.c: Regenerated. * generated/minloc1_8_i2.c: Regenerated. * generated/any_l1.c: Regenerated. * generated/product_c16.c: Regenerated. * generated/minloc0_8_r8.c: Regenerated. * generated/matmul_l8.c: Regenerated. * generated/product_r10.c: Regenerated. * generated/product_i1.c: Regenerated. * generated/all_l8.c: Regenerated. * generated/maxloc0_4_i1.c: Regenerated. * generated/minloc0_4_i8.c: Regenerated. * generated/spread_c16.c: Regenerated. * generated/maxval_r4.c: Regenerated. Index: libgfortran/libgfortran.h =================================================================== --- libgfortran/libgfortran.h (Revision 139150) +++ libgfortran/libgfortran.h (Arbeitskopie) @@ -68,6 +68,11 @@ typedef off_t gfc_offset; #ifndef __GNUC__ #define __attribute__(x) +#define likely(x) (x) +#define unlikely(x) (x) +#else +#define likely(x) __builtin_expect(!!(x), 1) +#define unlikely(x) __builtin_expect(!!(x), 0) #endif @@ -107,7 +112,8 @@ typedef off_t gfc_offset; mingw provides, __mingw_snprintf(). We also provide a prototype for __mingw_snprintf(), because the mingw headers currently don't have one. */ #if HAVE_MINGW_SNPRINTF -extern int __mingw_snprintf (char *, size_t, const char *, ...); +extern int __mingw_snprintf (char *, size_t, const char *, ...) + __attribute__ ((format (printf, 3, 4))); #undef snprintf #define snprintf __mingw_snprintf #endif @@ -649,7 +655,8 @@ extern void runtime_error_at (const char __attribute__ ((noreturn, format (printf, 2, 3))); iexport_proto(runtime_error_at); -extern void runtime_warning_at (const char *, const char *, ...); +extern void runtime_warning_at (const char *, const char *, ...) + __attribute__ ((format (printf, 2, 3))); iexport_proto(runtime_warning_at); extern void internal_error (st_parameter_common *, const char *) Index: libgfortran/m4/spread.m4 =================================================================== --- libgfortran/m4/spread.m4 (Revision 139150) +++ libgfortran/m4/spread.m4 (Arbeitskopie) @@ -122,7 +122,7 @@ spread_'rtype_code` ('rtype` *ret, const if (GFC_DESCRIPTOR_RANK(ret) != rrank) runtime_error ("rank mismatch in spread()"); - if (compile_options.bounds_check) + if (unlikely (compile_options.bounds_check)) { for (n = 0; n < rrank; n++) { Index: libgfortran/m4/iforeach.m4 =================================================================== --- libgfortran/m4/iforeach.m4 (Revision 139150) +++ libgfortran/m4/iforeach.m4 (Arbeitskopie) @@ -36,7 +36,7 @@ name`'rtype_qual`_'atype_code (rtype * c } else { - if (compile_options.bounds_check) + if (unlikely (compile_options.bounds_check)) { int ret_rank; index_type ret_extent; @@ -152,7 +152,7 @@ void } else { - if (compile_options.bounds_check) + if (unlikely (compile_options.bounds_check)) { int ret_rank, mask_rank; index_type ret_extent; @@ -311,7 +311,7 @@ void } else { - if (compile_options.bounds_check) + if (unlikely (compile_options.bounds_check)) { int ret_rank; index_type ret_extent; Index: libgfortran/m4/matmull.m4 =================================================================== --- libgfortran/m4/matmull.m4 (Revision 139150) +++ libgfortran/m4/matmull.m4 (Arbeitskopie) @@ -100,7 +100,7 @@ matmul_'rtype_code` ('rtype` * const res = internal_malloc_size (sizeof ('rtype_name`) * size0 ((array_t *) retarray)); retarray->offset = 0; } - else if (compile_options.bounds_check) + else if (unlikely (compile_options.bounds_check)) { index_type ret_extent, arg_extent; Index: libgfortran/m4/ifunction_logical.m4 =================================================================== --- libgfortran/m4/ifunction_logical.m4 (Revision 139150) +++ libgfortran/m4/ifunction_logical.m4 (Arbeitskopie) @@ -110,7 +110,7 @@ name`'rtype_qual`_'atype_code (rtype * c (long int) GFC_DESCRIPTOR_RANK (retarray), (long int) rank); - if (compile_options.bounds_check) + if (unlikely (compile_options.bounds_check)) { for (n=0; n < rank; n++) { Index: libgfortran/m4/ifunction.m4 =================================================================== --- libgfortran/m4/ifunction.m4 (Revision 139150) +++ libgfortran/m4/ifunction.m4 (Arbeitskopie) @@ -106,7 +106,7 @@ name`'rtype_qual`_'atype_code (rtype * c (long int) (GFC_DESCRIPTOR_RANK (retarray)), (long int) rank); - if (compile_options.bounds_check) + if (unlikely (compile_options.bounds_check)) { for (n=0; n < rank; n++) { @@ -294,7 +294,7 @@ void if (rank != GFC_DESCRIPTOR_RANK (retarray)) runtime_error ("rank of return array incorrect in u_name intrinsic"); - if (compile_options.bounds_check) + if (unlikely (compile_options.bounds_check)) { for (n=0; n < rank; n++) { @@ -478,7 +478,7 @@ void (long int) (GFC_DESCRIPTOR_RANK (retarray)), (long int) rank); - if (compile_options.bounds_check) + if (unlikely (compile_options.bounds_check)) { for (n=0; n < rank; n++) { Index: libgfortran/m4/matmul.m4 =================================================================== --- libgfortran/m4/matmul.m4 (Revision 139150) +++ libgfortran/m4/matmul.m4 (Arbeitskopie) @@ -136,7 +136,7 @@ matmul_'rtype_code` ('rtype` * const res = internal_malloc_size (sizeof ('rtype_name`) * size0 ((array_t *) retarray)); retarray->offset = 0; } - else if (compile_options.bounds_check) + else if (unlikely (compile_options.bounds_check)) { index_type ret_extent, arg_extent;
Attachment:
unlikely-gen.diff.gz
Description: GNU Zip compressed data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |