diff options
-rw-r--r-- | gcc/ChangeLog | 35 | ||||
-rw-r--r-- | gcc/gimple.c | 23 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr69156.c | 10 | ||||
-rw-r--r-- | gcc/value-prof.c | 3 |
5 files changed, 45 insertions, 37 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a759568..c6ae288 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2016-01-13 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/69156 + * gimple.c (validate_type): Removed. + (gimple_builtin_call_types_compatible_p): Use + useless_type_conversion_p instead of validate_type. + * value-prof.c (gimple_stringop_fixed_value): Fold + icall_size to correct type. + 2016-01-13 Jonathan Wakely <jwakely@redhat.com> * doc/extend.texi (__atomic Builtins): Clarify compare_exchange @@ -47,7 +56,7 @@ * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a" and "armv8.1-a+crc" entries. -2016-01-13 Alexander Fomin <alexander.fomin@intel.com> +2016-01-13 Alexander Fomin <alexander.fomin@intel.com> PR target/69228 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"): @@ -97,7 +106,7 @@ (compute_path_counts): Only do count adjustment when it's really needed. -2016-01-12 Sandra Loosemore <sandra@codesourcery.com> +2016-01-12 Sandra Loosemore <sandra@codesourcery.com> * doc/invoke.texi (Spec Files): Move section down in file, past all command-line option descriptions. @@ -111,7 +120,7 @@ (walk_type): Likewise. (write_func_for_structure): Likewise. -2016-01-12 Sandra Loosemore <sandra@codesourcery.com> +2016-01-12 Sandra Loosemore <sandra@codesourcery.com> * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to Directory Options, and -specs= to Overall Options. @@ -138,7 +147,7 @@ * tree-vrp.c (adjust_range_with_scev): Check overflow in range information computed for expression "init + nit * step". -2016-01-12 Sandra Loosemore <sandra@codesourcery.com> +2016-01-12 Sandra Loosemore <sandra@codesourcery.com> * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information about name of GCC executable. Remove deleted node from menu. @@ -215,7 +224,7 @@ for permuted strided SLP loads and do not spuriously assign to SLP_TREE_VEC_STMTS. -2016-01-12 Andris Pavenis <andris.pavenis@iki.fi> +2016-01-12 Andris Pavenis <andris.pavenis@iki.fi> * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive @@ -361,7 +370,7 @@ * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of conditionl moves. -2016-01-11 Alexandre Oliva <aoliva@redhat.com> +2016-01-11 Alexandre Oliva <aoliva@redhat.com> PR bootstrap/69123 * var-tracking.c (drop_overlapping_mem_locs): Operate on all @@ -586,7 +595,7 @@ depending on frame_pointer_needed before remaining integer and SSE registers are saved. -2016-01-07 Sandra Loosemore <sandra@codesourcery.com> +2016-01-07 Sandra Loosemore <sandra@codesourcery.com> PR 1078 * doc/extend.texi (Nvidia PDX Function Attributes): New section. @@ -662,7 +671,7 @@ EXPR instead of ARG. * ubsan.h (ubsan_instrument_float_cast): Adjust declaration. -2016-01-05 Sandra Loosemore <sandra@codesourcery.com> +2016-01-05 Sandra Loosemore <sandra@codesourcery.com> PR 1078 * doc/extend.texi (RL78 Variable Attributes): New section. @@ -702,19 +711,19 @@ * config/i386/sse.md: Replace xm with xBm in plusminus and any_logic patterns. -2016-01-05 Sandra Loosemore <sandra@codesourcery.com> +2016-01-05 Sandra Loosemore <sandra@codesourcery.com> PR 1078 * doc/extend.texi (V850 Function Attributes): New section. (V850 Variable Attributes): New section. -2016-01-05 Sandra Loosemore <sandra@codesourcery.com> +2016-01-05 Sandra Loosemore <sandra@codesourcery.com> PR 1078 * doc/extend.texi (MicroBlaze Function Attributes): Document interrupt_handler and fast_interrupt attributes. -2016-01-05 Sergei Trofimovich <siarheit@google.com> +2016-01-05 Sergei Trofimovich <siarheit@google.com> PR other/60465 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64 @@ -813,7 +822,7 @@ * doc/install.texi (--with-multilib-list): Describe the meaning of the option for arm*-*-* targets. -2016-01-03 Sandra Loosemore <sandra@codesourcery.com> +2016-01-03 Sandra Loosemore <sandra@codesourcery.com> * doc/extend.texi (Common Function Attributes): Move docs for MSP430-specific attributes to.... @@ -823,7 +832,7 @@ entries and add a cross-reference to the corresponding function attribute docs. -2016-01-03 Vladimír Čunát <vcunat@gmail.com> +2016-01-03 Vladimír Čunát <vcunat@gmail.com> * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -finite-math typo. diff --git a/gcc/gimple.c b/gcc/gimple.c index f312f90..ff3c68a 100644 --- a/gcc/gimple.c +++ b/gcc/gimple.c @@ -2445,24 +2445,6 @@ gimple_ior_addresses_taken (bitmap addresses_taken, gimple *stmt) } -/* Return true if TYPE1 and TYPE2 are compatible enough for builtin - processing. */ - -static bool -validate_type (tree type1, tree type2) -{ - if (INTEGRAL_TYPE_P (type1) - && INTEGRAL_TYPE_P (type2)) - ; - else if (POINTER_TYPE_P (type1) - && POINTER_TYPE_P (type2)) - ; - else if (TREE_CODE (type1) - != TREE_CODE (type2)) - return false; - return true; -} - /* Return true when STMTs arguments and return value match those of FNDECL, a decl of a builtin function. */ @@ -2473,7 +2455,8 @@ gimple_builtin_call_types_compatible_p (const gimple *stmt, tree fndecl) tree ret = gimple_call_lhs (stmt); if (ret - && !validate_type (TREE_TYPE (ret), TREE_TYPE (TREE_TYPE (fndecl)))) + && !useless_type_conversion_p (TREE_TYPE (ret), + TREE_TYPE (TREE_TYPE (fndecl)))) return false; tree targs = TYPE_ARG_TYPES (TREE_TYPE (fndecl)); @@ -2484,7 +2467,7 @@ gimple_builtin_call_types_compatible_p (const gimple *stmt, tree fndecl) if (!targs) return true; tree arg = gimple_call_arg (stmt, i); - if (!validate_type (TREE_TYPE (arg), TREE_VALUE (targs))) + if (!useless_type_conversion_p (TREE_VALUE (targs), TREE_TYPE (arg))) return false; targs = TREE_CHAIN (targs); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e896dcd..dff8d69 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-01-13 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/69156 + * gcc.dg/pr69156.c: New test. + 2016-01-13 H.J. Lu <hongjiu.lu@intel.com> * gcc.target/i386/pr69225-7.c: New test. @@ -19,7 +24,7 @@ PR tree-optimization/69169 * gcc.dg/pr69169.c: New test. -2016-01-13 Alexander Fomin <alexander.fomin@intel.com> +2016-01-13 Alexander Fomin <alexander.fomin@intel.com> PR target/69228 * gcc.target/i386/avx512pf-vscatterpf0dpd-1.c: Adjust. @@ -250,7 +255,7 @@ for ix86 targets. * gcc.dg/ifcvt-5.c: New test. -2016-01-11 Alexandre Oliva <aoliva@redhat.com> +2016-01-11 Alexandre Oliva <aoliva@redhat.com> PR bootstrap/69123 * g++.dg/pr69123.C: New. @@ -408,7 +413,7 @@ * g++.dg/pr66655_1.cc: Test support file. * g++.dg/pr66655.h: Test header file. -2016-01-07 Dominique d'Humieres <dominiq@lps.ens.fr> +2016-01-07 Dominique d'Humieres <dominiq@lps.ens.fr> PR fortran/66680 gfortran.dg/gomp/pr66680.f90: New test. diff --git a/gcc/testsuite/gcc.dg/pr69156.c b/gcc/testsuite/gcc.dg/pr69156.c new file mode 100644 index 0000000..b22aaec --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr69156.c @@ -0,0 +1,10 @@ +/* PR tree-optimization/69156 */ +/* { dg-do compile } */ +/* { dg-options "-O1 -fno-tree-ccp" } */ + +_Bool +foo () +{ + _Bool (*f) () = __builtin_abs; /* { dg-warning "initialization from incompatible pointer type" } */ + return f (0); +} diff --git a/gcc/value-prof.c b/gcc/value-prof.c index 336b8ae..f9574b6 100644 --- a/gcc/value-prof.c +++ b/gcc/value-prof.c @@ -1697,7 +1697,8 @@ gimple_stringop_fixed_value (gcall *vcall_stmt, tree icall_size, int prob, gimple_set_vuse (vcall_stmt, NULL); update_stmt (vcall_stmt); icall_stmt = as_a <gcall *> (gimple_copy (vcall_stmt)); - gimple_call_set_arg (icall_stmt, size_arg, icall_size); + gimple_call_set_arg (icall_stmt, size_arg, + fold_convert (optype, icall_size)); gsi_insert_before (&gsi, icall_stmt, GSI_SAME_STMT); /* Fix CFG. */ |