1 2017-10-31 Martin Liska <mliska@suse.cz>
3 * color-macros.h: New file.
4 * diagnostic-color.c: Factor out color related to macros to
6 * doc/gcov.texi: Document -k option.
7 * gcov.c (INCLUDE_STRING): Include string.h.
8 (print_usage): Add -k option.
9 (process_args): Parse it.
10 (pad_count_string): New function.
11 (output_line_beginning): Likewise.
12 (DEFAULT_LINE_START): New macro.
13 (output_lines): Support color output.
15 2017-10-31 Martin Liska <mliska@suse.cz>
18 * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
19 their interaction with GCOV infrastructure.
20 * configure.ac: Add -fkeep-{inline,static}-functions to
22 * configure: Regenerate.
24 2017-10-31 Uros Bizjak <ubizjak@gmail.com>
27 * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
29 2017-10-31 Segher Boessenkool <segher@kernel.crsahing.org>
32 * config/rs6000/rs6000.md (allocate_stack): Force update interval
33 into a register if it does not fit into an immediate offset field.
35 2017-10-31 Olivier Hainque <hainque@adacore.com>
37 * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
39 2017-10-31 Julia Koval <julia.koval@intel.com>
41 * config.gcc: Add gfniintrin.h.
42 * config/i386/gfniintrin.h: New.
43 * config/i386/i386-builtin-types.def
44 (__builtin_ia32_vgf2p8affineinvqb_v64qi,
45 __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
46 __builtin_ia32_vgf2p8affineinvqb_v32qi,
47 __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
48 __builtin_ia32_vgf2p8affineinvqb_v16qi,
49 __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
50 * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
51 V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
52 V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
53 V64QI_FTYPE_V64QI_V64QI_INT): New types.
54 * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
55 * config/i386/immintrin.h: Include gfniintrin.h.
56 * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
58 2017-10-30 Eric Botcazou <ebotcazou@adacore.com>
60 * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
62 2017-10-30 Wilco Dijkstra <wdijkstr@arm.com>
64 * config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
65 (arm_ashldi3_1bit): Remove pattern.
66 (ashrdi3): Remove shift by 1 expansion.
67 (arm_ashrdi3_1bit): Remove pattern.
68 (lshrdi3): Remove shift by 1 expansion.
69 (arm_lshrdi3_1bit): Remove pattern.
70 * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
72 * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
73 (<shift>di3_neon): Likewise.
75 2017-10-30 Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
77 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
78 both identically named patterns to (*aarch64_simd_mov<VD:mode>)
79 and (*aarch64_simd_mov<VQ:mode>).
80 (*aarch64_simd_mov<VD:mode>): Change type attribute to match
82 (*aarch64_simd_mov<VQ:mode>): Re-order and change type
83 attributes to match pattern alternative.
85 2017-10-30 Steven Munroe <munroesj@gcc.gnu.org>
87 * config.gcc (powerpc*-*-*): Add emmintrin.h.
88 * config/rs6000/emmintrin.h: New file.
89 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h.
91 2017-10-30 Wilco Dijkstra <wdijkstr@arm.com>
93 * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
94 * (movdi_vfp_cortexa8): Remove pattern.
96 2017-10-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
98 * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
100 (Specific, alpha*-dec-osf5.1): Remove.
101 (Specific, mips-sgi-irix5): Remove.
102 (Specific, mips-sgi-irix6): Remove.
104 2017-10-30 Jakub Jelinek <jakub@redhat.com>
107 * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
108 arguments to clear_bit_region_be.
110 2017-10-30 Jim Wilson <wilson@tuliptree.org>
112 * gimplify.c: Include memmodel.h.
114 2017-10-30 Martin Jambor <mjambor@suse.cz>
116 * omp-grid.c (grid_attempt_target_gridification): Also insert a
117 condition whether loop should be executed at all.
119 2017-10-30 Will Schmidt <will_schmidt@vnet.ibm.com>
121 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
122 gimple folding of vec_madd() intrinsics.
123 * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
124 fmav8hi4. (altivec_vmladduhm): Rename to fmav8hi4.
125 * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
127 2017-10-30 Richard Biener <rguenther@suse.de>
129 PR tree-optimization/82762
131 2017-10-23 Richard Biener <rguenther@suse.de>
133 PR tree-optimization/82129
135 2017-08-01 Richard Biener <rguenther@suse.de>
137 PR tree-optimization/81181
138 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
139 (compute_antic): ... end of iteration here.
141 2017-10-30 Joseph Myers <joseph@codesourcery.com>
143 * doc/invoke.texi (C Dialect Options): Document -std=c17,
144 -std=iso9899:2017 and -std=gnu17.
145 * doc/standards.texi (C Language): Document C17 support.
146 * doc/cpp.texi (Overview): Mention -std=c17.
147 (Standard Predefined Macros): Document C11 and C17 values of
148 __STDC_VERSION__. Do not refer to C99 support as incomplete.
149 * doc/extend.texi (Inline): Do not list individual options for
150 standards newer than C99.
151 * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
153 * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
156 2017-10-30 Maxim Ostapenko <m.ostapenko@samsung.com>
158 * asan.c (asan_finish_file): Align asan globals array by shadow
161 2017-10-30 Jakub Jelinek <jakub@redhat.com>
164 * gimple-ssa-store-merging.c: Include rtl.h and expr.h.
165 (struct store_immediate_info): Add bitregion_start and bitregion_end
167 (store_immediate_info::store_immediate_info): Add brs and bre
168 arguments and initialize bitregion_{start,end} from those.
169 (struct merged_store_group): Add bitregion_start, bitregion_end,
170 align_base and mask fields. Drop unnecessary struct keyword from
171 struct store_immediate_info. Add do_merge method.
172 (clear_bit_region_be): Use memset instead of loop storing zeros.
173 (merged_store_group::do_merge): New method.
174 (merged_store_group::merge_into): Use do_merge. Allow gaps in between
175 stores as long as the surrounding bitregions have no gaps.
176 (merged_store_group::merge_overlapping): Use do_merge.
177 (merged_store_group::apply_stores): Test that bitregion_{start,end}
178 is byte aligned, rather than requiring that start and width are
179 byte aligned. Drop unnecessary struct keyword from
180 struct store_immediate_info. Allocate and populate also mask array.
181 Make start of the arrays relative to bitregion_start rather than
182 start and size them according to bitregion_{end,start} difference.
183 (struct imm_store_chain_info): Drop unnecessary struct keyword from
184 struct store_immediate_info.
185 (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
186 (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
187 struct keyword from struct store_immediate_info.
188 (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
189 between stores as long as the surrounding bitregions have no gaps.
191 (struct split_store): Add orig non-static data member.
192 (split_store::split_store): Initialize orig to false.
193 (find_constituent_stmts): Return store_immediate_info *, non-NULL
194 if there is exactly a single original stmt. Change stmts argument
195 to pointer from reference, if NULL, don't push anything to it. Add
196 first argument, use it to optimize skipping over orig stmts that
197 are known to be before bitpos already. Simplify.
198 (split_group): Return unsigned int count how many stores are or
199 would be needed rather than a bool. Add allow_unaligned argument.
200 Change split_stores argument from reference to pointer, if NULL,
201 only do a dry run computing how many stores would be produced.
202 Rewritten algorithm to use both alignment and misalign if
203 !allow_unaligned and handle bitfield stores with gaps.
204 (imm_store_chain_info::output_merged_store): Set start_byte_pos
205 from bitregion_start instead of start. Compute allow_unaligned
206 here, if true, do 2 split_group dry runs to compute which one
207 produces fewer stores and prefer aligned if equal. Punt if
208 new count is bigger or equal than original before emitting any
209 statements, rather than during that. Remove no longer needed
210 new_ssa_names tracking. Replace num_stmts with
211 split_stores.length (). Use 32-bit stack allocated entries
212 in split_stores auto_vec. Try to reuse original store lhs/rhs1
213 if possible. Handle bitfields with gaps.
214 (pass_store_merging::execute): Ignore bitsize == 0 stores.
215 Compute bitregion_{start,end} for the stores and construct
216 store_immediate_info with that. Formatting fixes.
218 2017-10-30 Uros Bizjak <ubizjak@gmail.com>
221 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
222 UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
224 2017-10-29 Jim Wilson <wilson@tuliptree.org>
226 * gimplify.c: Include tm_p.h.
228 * common.opt (gcoff): Re-add as ignored option.
229 (gcoff1, gcoff2, gcoff3): Likewise.
231 * Makefile.in (OBJS): Delete sdbout.o.
232 (GTFILES): Delete $(srcdir)/sdbout.c.
233 * debug.h: Delete sdb_debug_hooks.
234 * final.c: Delete sdbout.h include.
235 (final_scan_insn): Delete SDB_DEBUG check.
236 (rest_of_clean_state): Likewise.
237 * output.h: Delete sdb_begin_function_line.
240 * toplev.c: Delete sdbout.h include.
241 (process_options): Delete SDB_DEBUG check.
242 * tree-core.h (tree_type_common): Delete pointer field of
244 * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
246 * tree.h (TYPE_SYMTAB_POINTER): Delete.
247 (TYPE_SYMTAB_IS_POINTER): Delete.
248 (TYPE_SYMTAB_IS_DIE): Renumber.
249 * xcoffout.c: Refer to former sdbout.c file.
250 (xcoffout_begin_prologue): Use past tense for sdbout.c reference.
252 * doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
253 * doc/invoke.texi (SEEALSO): Delete adb and sdb references.
254 (Debugging Options): Delete -gcoff.
255 (-gstabs): Delete SDB reference.
257 (-gcoff@var{level}): Delete.
258 * doc/passes.texi (Debugging information output): Delete SDB and
260 * doc/tm.texi: Regenerate.
261 * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
262 (SDB and DWARF): Change node name to DWARF and delete SDB and COFF
264 (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
265 (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
266 (SDB_DEBUGGING_INFO): Delete.
267 (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
268 SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
269 * target.def (output_source_filename): Delete COFF reference.
271 * common.opt (gcoff): Delete.
272 (gxcoff+): Update Negative chain.
273 * defaults.h: Delete all references to SDB_DEBUGGING_INFO and
275 * dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
276 * flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
277 * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
279 (expand_function_start): Change sdb reference to past tense.
280 (expand_function_end): Change sdb reference to past tense.
281 * gcc.c (cpp_unique_options): Delete gcoff3 reference.
282 * opts.c (debug_type_names): Delete coff entry.
283 (common_handle_option): Delete OPT_gcoff case.
284 * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.
286 * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
287 * config/cris/cris.h: Delete SDB reference in comment.
288 * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
289 (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
290 * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
291 * config/i386/i386.c (svr4_dbx_register_map): Change SDB references
293 (ix86_expand_prologue): Likewise.
294 * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
295 * config/ia64/ia64.h: Likewise.
296 * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
297 * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
299 * config/mmix/mmix.h: Likewise.
300 * config/nds32/nds32.c: Likewise.
301 * config/stormy/storym16.h: Likewise.
302 * config/visium/visium.h: Likewise.
303 * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.
305 2017-10-28 Sandra Loosemore <sandra@codesourcery.com>
307 * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
308 * config/nios2/nios2.c (nios2_initial_elimination_offset): Make
309 FRAME_POINTER_REGNUM point at high end of local var area.
311 2017-10-27 Eric Botcazou <ebotcazou@adacore.com>
313 * bb-reorder.c (find_traces_1_round): Fix off-by-one index.
314 Move comment around. Do not reset best_edge for a copiable
315 destination if the copy would cause a partition change.
316 (better_edge_p): Remove redundant check.
318 2017-10-27 Uros Bizjak <ubizjak@gmail.com>
320 * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
322 2017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com>
324 * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
325 for math functions that have _Float<N> and _Float<N>X variants.
326 (mathfn_built_in_2): Add support for math functions that have
327 _Float<N> and _Float<N>X variants.
328 (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
329 (expand_builtin_mathfn_ternary): Add support for fma with
330 _Float<N> and _Float<N>X variants.
331 (expand_builtin): Likewise.
332 (fold_builtin_3): Likewise.
333 * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
334 create math function _Float<N> and _Float<N>X variants as external
336 (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
337 DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
338 the __builtin_ prefix and if not strict ansi, without the prefix.
339 (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
340 (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
341 (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
342 (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
343 (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
344 (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
345 * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
346 function signatures for fma _Float<N> and _Float<N>X variants.
347 (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
348 (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
349 (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
350 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
351 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
352 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
353 * gencfn-macros.c (print_case_cfn): Add support for math functions
354 that have _Float<N> and _Float<N>X variants.
355 (print_define_operator_list): Likewise.
356 (fltfn_suffixes): Likewise.
358 * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
359 for math functions that have _Float<N> and _Float<N>X variants.
360 (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
361 and _Float<N>X variants.
362 (COPYSIGN): Likewise.
365 * fold-const.c (tree_call_nonnegative_warnv_p): Add support for
366 copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
368 (integer_valued_read_call_p): Likewise.
369 * fold-const-call.c (fold_const_call_ss): Likewise.
370 (fold_const_call_sss): Add support for copysign, fmin, and fmax
371 _Float<N> and _Float<N>X variants.
372 (fold_const_call_ssss): Add support for fma _Float<N> and
374 * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
375 support for copysign and fma _Float<N> and _Float<N>X variants.
376 (backprop::process_builtin_call_use): Likewise.
377 * tree-call-cdce.c (can_test_argument_range); Add support for
378 sqrt _Float<N> and _Float<N>X variants.
379 (edom_only_function): Likewise.
380 (get_no_error_domain): Likewise.
381 * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
382 * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
383 copysign _Float<N> and _Float<N>X variants.
384 * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
385 handled by machine independent code.
387 * doc/cpp.texi (Common Predefined Macros): Document defining
388 __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
389 fma _Float<N> and _Float<N>X variants.
391 2017-10-27 Uros Bizjak <ubizjak@gmail.com>
394 * config/i386/i386-modes.def (CCFPU): Remove definition.
395 * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
396 (ix86_cc_modes_compatible): Ditto.
397 (ix86_expand_carry_flag_compare): Ditto.
398 (ix86_expand_int_movcc): Ditto.
399 (ix86_expand_int_addcc): Ditto.
400 (ix86_reverse_condition): Ditto.
401 (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
402 Return true/false for unordered/ordered fp comparisons.
403 (ix86_cc_mode): Always return CCFPmode for float mode comparisons.
404 (ix86_prepare_fp_compare_args): Update for rename.
405 (ix86_expand_fp_compare): Update for rename. Generate unordered
406 compare RTXes wrapped with UNSPEC_NOTRAP unspec.
407 (ix86_expand_sse_compare_and_jump): Ditto.
408 * config/i386/predicates.md (fcmov_comparison_operator):
409 Remove CCFPU mode handling.
410 (ix86_comparison_operator): Ditto.
411 (ix86_carry_flag_operator): Ditto.
412 * config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
413 (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
414 (*cmpu<mode>_cc_i387): Ditto.
415 (FPCMP): Remove mode iterator.
416 (unord): Remove mode attribute.
417 (unord_subst): New define_subst transformation
418 (unord): New define_subst attribute.
420 (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
421 (*cmpi<unord>xf_i387): Ditto.
422 * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
423 from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
424 using unord_subst transformation.
425 * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
426 (round_saeonly): Also handle CCFP mode.
427 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
428 Remove UNSPEC_SAHF unspec handling.
430 2017-10-27 Jan Hubicka <hubicka@ucw.cz>
432 * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
434 2017-10-27 Jeff Law <law@redhat.com>
436 * gimple-ssa-sprintf.c: Include domwalk.h.
437 (class sprintf_dom_walker): New class, derived from dom_walker.
438 (sprintf_dom_walker::before_dom_children): New function.
439 (struct call_info): Moved into sprintf_dom_walker class
440 (compute_formath_length, handle_gimple_call): Likewise.
441 (sprintf_length::execute): Call the dominator walker rather
442 than walking the statements.
444 * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
445 gimple statement locations.
446 (check_array_bounds): Corresponding changes. Get the statement's
447 location directly from wi->stmt.
449 2017-10-27 Palmer Dabbelt <palmer@dabbelt.com>
452 * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
454 2017-10-27 Jan Hubicka <hubicka@ucw.cz>
456 * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
457 X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
459 2017-10-27 Jakub Jelinek <jakub@redhat.com>
462 * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
463 * config/i386/i386.c (maybe_get_pool_constant): Removed.
464 (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
465 maybe_get_pool_constant.
466 * config/i386/predicates.md (zero_extended_scalar_load_operand):
469 2017-10-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
471 * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
472 2.26 caveat. Update gas and gld versions.
473 (Specific, *-*-solaris2*): Update binutils version. Remove caveat
476 2017-10-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
478 * cgraph.h (set_malloc_flag): Declare.
479 * cgraph.c (set_malloc_flag_1): New function.
480 (set_malloc_flag): Likewise.
481 * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
482 * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
484 (read_ipa_call_summary): Add support for reading is_return_callee.
485 (write_ipa_call_summary): Stream is_return_callee.
486 * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
487 * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
488 ipa-prop.h, ipa-fnsummary.h.
489 (pure_const_names): Change to static.
490 (malloc_state_e): Define.
491 (malloc_state_names): Define.
492 (funct_state_d): Add field malloc_state.
493 (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
494 (check_retval_uses): New function.
495 (malloc_candidate_p): Likewise.
496 (analyze_function): Add support for malloc attribute.
497 (pure_const_write_summary): Stream malloc_state.
498 (pure_const_read_summary): Add support for reading malloc_state.
499 (dump_malloc_lattice): New function.
500 (propagate_malloc): New function.
501 (warn_function_malloc): New function.
502 (ipa_pure_const::execute): Call propagate_malloc and
504 (pass_local_pure_const::execute): Add support for malloc attribute.
505 * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
506 * doc/invoke.texi: Document Wsuggest-attribute=malloc.
508 2017-10-27 Martin Liska <mliska@suse.cz>
510 PR gcov-profile/82457
511 * doc/invoke.texi: Document that one needs a non-strict ISO mode
512 for fork-like functions to be properly instrumented.
514 2017-10-27 Richard Biener <rguenther@suse.de>
517 * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
518 info when we redirected EH.
520 2017-10-26 Michael Collison <michael.collison@arm.com>
522 * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
524 (<optab>_trunchf<GPI:mode>2: New pattern.
525 (<optab>_trunc<vgp><GPI:mode>2: New pattern.
526 * config/aarch64/iterators.md (wv): New mode attribute.
527 (vf, VF): New mode attributes.
528 (vgp, VGP): New mode attributes.
529 (s): Update attribute with SImode and DImode prefixes.
531 2017-10-26 Sandra Loosemore <sandra@codesourcery.com>
533 * config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
534 * config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
535 * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
536 (nios2_option_overide): Initialize it. Don't allow R0-relative
538 (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
539 (nios2_symbolic_constant_p): Likewise.
540 (nios2_legitimate_address_p): Likewise.
541 (nios2_r0rel_section_name_p): New.
542 (nios2_symbol_ref_in_r0rel_data_p): New.
543 (nios2_emit_move_sequence): Handle r0rel_constant_p.
544 (r0rel_constant_p): New.
545 (nios2_print_operand_address): Handle r0rel_constant_p.
546 (nios2_cdx_narrow_form_p): Likewise.
547 * config/nios2/nios2.opt (mr0rel-sec=): New option.
548 * doc/invoke.texi (Option Summary): Add -mr0rel-sec.
549 (Nios II Options): Document -mr0rel-sec.
551 2017-10-26 Sandra Loosemore <sandra@codesourcery.com>
553 * config/nios2/nios2.c: Include xregex.h.
554 (nios2_gprel_sec_regex): New.
555 (nios2_option_overide): Initialize it. Don't allow GP-relative
557 (nios2_small_section_name_p): Check for regex match.
558 * config/nios2/nios2.opt (mgprel-sec=): New option.
559 * doc/invoke.texi (Option Summary): Add -mgprel-sec.
560 (Nios II Options): Document -mgprel-sec.
562 2017-10-26 Jim Wilson <wilson@tuliptree.org>
564 * doc/invoke.texi (-fdebug-prefix-map): Expand documentation.
566 2017-10-26 Tom de Vries <tom@codesourcery.com>
568 PR tree-optimization/82707
569 * gimple.c (gimple_copy): Fix unsharing of
570 GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.
572 2017-10-26 Olga Makhotina <olga.makhotina@intel.com>
574 * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
575 _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
576 _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
577 _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
578 _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
579 _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
580 _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
581 _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
582 _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
583 _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
584 _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
585 _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
586 _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
587 _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
588 _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
589 _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
590 _mm512_mask_cmpunord_ps_mask): New intrinsics.
592 2017-10-26 Michael Meissner <meissner@linux.vnet.ibm.com>
594 * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
596 * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
597 * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
598 warning to rs6000.c. Remove the Undocumented flag, since it has
600 (-mabi=ibmlongdouble): Likewise.
601 * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
602 already set, set the default format for long double.
603 (rs6000_debug_reg_global): Print whether long double is IBM or
605 (rs6000_option_override_internal): Rework setting long double
606 format. Only warn if the user is changing the long double default
607 and they did not use -Wno-psabi.
608 * doc/invoke.texi (PowerPC options): Update the documentation for
609 -mabi=ieeelongdouble and -mabi=ibmlongdouble.
611 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org>
612 Alan Hayward <alan.hayward@arm.com>
613 David Sherwood <david.sherwood@arm.com>
615 * rtl.h (wider_subreg_mode): New function.
616 * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
617 rather than an unsigned int *.
618 * ira-color.c (regno_max_ref_width): Replace with...
619 (regno_max_ref_mode): ...this new variable.
620 (coalesced_pseudo_reg_slot_compare): Update accordingly.
621 Use wider_subreg_mode.
622 (ira_sort_regnos_for_alter_reg): Likewise. Take a machine_mode *
623 rather than an unsigned int *.
624 * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
625 (process_alt_operands): Likewise.
626 (invariant_p): Likewise.
627 * lra-spills.c (assign_mem_slot): Likewise.
628 (add_pseudo_to_slot): Likewise.
629 * lra.c (collect_non_operand_hard_regs): Likewise.
630 (add_regs_to_insn_regno_info): Likewise.
631 * reload1.c (regno_max_ref_width): Replace with...
632 (regno_max_ref_mode): ...this new variable.
633 (reload): Update accordingly. Update call to
634 ira_sort_regnos_for_alter_reg.
635 (alter_reg): Update to use regno_max_ref_mode. Call wider_subreg_mode.
636 (init_eliminable_invariants): Update to use regno_max_ref_mode.
637 (scan_paradoxical_subregs): Likewise.
639 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com>
641 * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
642 (aarch64_frame): Add emit_frame_chain boolean.
643 * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
644 Move eh_return case to aarch64_layout_frame.
645 (aarch64_layout_frame): Initialize emit_frame_chain.
646 (aarch64_expand_prologue): Use emit_frame_chain.
648 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com>
650 * config/aarch64/aarch64.c (aarch64_layout_frame):
651 Ensure LR is always stored at the bottom of the callee-saves.
652 Remove rarely used frame layout which saves callee-saves at top of
653 frame, so the store of LR can be used as a valid probe in all cases.
655 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com>
657 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
658 Improve unaligned TImode/TFmode base/offset split.
660 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org>
661 Alan Hayward <alan.hayward@arm.com>
662 David Sherwood <david.sherwood@arm.com>
664 * caller-save.c (mark_referenced_regs): Use read_modify_subreg_p.
665 * combine.c (find_single_use_1): Likewise.
666 (expand_field_assignment): Likewise.
667 (move_deaths): Likewise.
668 * lra-constraints.c (simplify_operand_subreg): Likewise.
669 (curr_insn_transform): Likewise.
670 * lra.c (collect_non_operand_hard_regs): Likewise.
671 (add_regs_to_insn_regno_info): Likewise.
672 * rtlanal.c (reg_referenced_p): Likewise.
673 (covers_regno_no_parallel_p): Likewise.
675 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org>
677 * wide-int-print.cc (print_hex): Loop based on extract_uhwi.
678 Don't print any bits outside the precision of the value.
679 * wide-int.cc (test_printing): Add some new tests.
681 2017-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
683 * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
684 supports -xbrace_comment option.
685 * configure: Regenerate.
686 * config.in: Regenerate.
687 * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
688 (ASM_CPU_SPEC): Use it.
690 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org>
692 * target.def (static_rtx_alignment): New hook.
693 * targhooks.h (default_static_rtx_alignment): Declare.
694 * targhooks.c (default_static_rtx_alignment): New function.
695 * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
696 * doc/tm.texi: Regenerate.
697 * varasm.c (force_const_mem): Use targetm.static_rtx_alignment
698 instead of targetm.constant_alignment. Remove call to
700 * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
701 (cris_preferred_mininum_alignment): New function, split out from...
702 (cris_constant_alignment): ...here.
703 (cris_static_rtx_alignment): New function.
704 * config/i386/i386.c (ix86_static_rtx_alignment): New function,
706 (ix86_constant_alignment): ...here.
707 (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
708 * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
709 (mmix_static_rtx_alignment): New function.
710 * config/spu/spu.c (spu_static_rtx_alignment): New function.
711 (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
713 2017-10-26 Tamar Christina <tamar.christina@arm.com>
716 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2):
717 Add flag_trapping_math and flag_fp_int_builtin_inexact.
719 2017-10-25 Palmer Dabbelt <palmer@dabbelt.com>
721 * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
722 * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
723 mark as a sign-extending load.
724 (local_pic_load_u): Define.
726 2017-10-25 Eric Botcazou <ebotcazou@adacore.com>
729 * fold-const.c (operand_equal_for_comparison_p): Also return true
730 if ARG0 is a simple variant of ARG1 with narrower precision.
731 (fold_ternary_loc): Always pass unstripped operands to the predicate.
733 2017-10-25 Jan Hubicka <hubicka@ucw.cz>
735 * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
737 * i386.h (processor_costs): Add gather_static, gather_per_elt,
738 scatter_static, scatter_per_elt.
739 * x86-tune-costs.h: Add new cost entries.
741 2017-10-25 Richard Biener <rguenther@suse.de>
743 * tree-ssa-sccvn.h (vn_eliminate): Declare.
744 * tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
745 class pass_fre): Move to ...
746 * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
747 class pass_fre): ... here and adjust for statistics.
749 2017-10-25 Jakub Jelinek <jakub@redhat.com>
752 * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
753 for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
754 (duplicate_one_attribute, copy_attributes_to_builtin): New functions.
755 * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
758 2017-10-25 Richard Biener <rguenther@suse.de>
760 * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
761 el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
762 eliminate_push_avail, eliminate_insert): Move inside...
763 (class eliminate_dom_walker): ... this class in preparation
765 (fini_eliminate): Remove by merging with ...
766 (eliminate): ... this function. Adjust for class changes.
767 (pass_pre::execute): Remove fini_eliminate call.
768 (pass_fre::execute): Likewise.
770 2017-10-24 Jakub Jelinek <jakub@redhat.com>
773 * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
774 (VPERMI2, VPERMI2I): New mode iterators.
775 (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
776 (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
778 (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
779 mode iterator. Remove 3 old define_insn patterns.
780 (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
781 (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
782 VPERMI2 mode iterator, remove the other two expanders.
783 (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
784 to use VPERMI2 mode iterator, add another alternative for vpermi2*
785 instructions, remove the other two patterns.
786 (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
787 mode iterator, remove the other two patterns.
788 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
789 (ix86_expand_vec_perm_vpermt2): ... this. Swap mask and op0
790 arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
791 and adjust argument order accordingly.
792 (ix86_expand_vec_perm): Adjust caller.
793 (expand_vec_perm_1): Likewise.
794 (expand_vec_perm_vpermi2_vpshub2): Rename to ...
795 (expand_vec_perm_vpermt2_vpshub2): ... this.
796 (ix86_expand_vec_perm_const_1): Adjust caller.
797 (ix86_vectorize_vec_perm_const_ok): Adjust comments.
800 * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
801 (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
802 (vec_shl_<mode>): Remove unused expander.
803 (avx512bw_<shift_insn><mode>3): New define_insn.
804 (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
805 (<sse2_avx2>_<shift_insn><mode>3): ... this. New define_insn.
807 2017-10-24 Paolo Carlini <paolo.carlini@oracle.com>
810 * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
813 2017-10-24 Wilco Dijkstra <wdijkstr@arm.com>
815 PR rtl-optimization/82396
816 * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
817 (autopref_multipass_init): Simplify initialization.
818 (autopref_rank_data): Simplify sort order.
819 * gcc/sched-int.h (autopref_multipass_data_): Remove
820 multi_mem_insn_p, min_offset and max_offset.
822 2017-10-24 Wilco Dijkstra <wdijkstr@arm.com>
825 * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
826 Check special value of flag_omit_frame_pointer.
827 (aarch64_can_eliminate): Likewise.
828 (aarch64_override_options_after_change_1): Simplify handling of
829 -fomit-frame-pointer and -fomit-leaf-frame-pointer.
831 2017-10-24 Richard Biener <rguenther@suse.de>
833 PR tree-optimization/82697
834 * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
835 zero for conditional load and unconditional store.
837 2017-10-24 H.J. Lu <hongjiu.lu@intel.com>
839 * doc/install.texi: Document bootstrap-cet.
841 2017-10-24 H.J. Lu <hongjiu.lu@intel.com>
844 * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
845 ENDBR instruction at function entrance if function is only
848 2017-10-24 Jakub Jelinek <jakub@redhat.com>
851 * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
852 patterns to better describe from which operation the CF is computed.
853 (addcarry<mode>_0, subborrow<mode>_0): New patterns.
854 * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
855 one LTU with [DT]Imode and another one with [SD]Imode. If arg0
856 is 0, use _0 suffixed expanders instead of emitting a comparison
859 2017-10-06 Sergey Shalnov <Sergey.Shalnov@intel.com>
861 * config/i386/i386.md(*movsf_internal, *movdf_internal):
862 Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
864 2017-10-24 Eric Botcazou <ebotcazou@adacore.com>
867 * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
868 * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
869 * loop-iv.c (iv_get_reaching_def): Likewise.
870 * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
871 variable is promoted and the partition contains undefined values.
873 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
875 * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
877 (nios2_address_cost): Define.
878 (nios2_legitimize_address): Recognize (exp + constant) directly.
879 (TARGET_ADDRESS_COST): Define.
881 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
883 * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
884 (nios2_symbolic_memory_operand_p): Declare.
885 (nios2_split_large_constant): Declare.
886 (nios2_split_symbolic_memory_operand): Declare.
887 * config/nios2/nios2.c: Adjust includes.
888 (nios2_symbolic_constant_allowed): New.
889 (nios2_symbolic_constant_p): New.
890 (nios2_plus_symbolic_constant_p): New.
891 (nios2_valid_addr_expr_p): Recognize addresses involving
893 (nios2_legitimate_address_p): Likewise, also LO_SUM.
894 (nios2_symbolic_memory_operand_p): New.
895 (nios2_large_constant_p): New.
896 (nios2_split_large_constant): New.
897 (nios2_split_plus_large_constant): New.
898 (nios2_split_symbolic_memory_operand): New.
899 (nios2_legitimize_address): Code refactoring. Handle addresses
900 involving symbolic constants.
901 (nios2_emit_move_sequence): Likewise.
902 (nios2_print_operand): Improve error output.
903 (nios2_print_operand_address): Handle LO_SUM.
904 (nios2_cdx_narrow_form_p): Likewise.
905 * config/nios2/nios2.md (movqi_internal): Add splitter for memory
906 operands involving symbolic constants.
907 (movhi_internal, movsi_internal): Likewise.
908 (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
909 (extendhisi2, extendqi<mode>2): Likewise.
911 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
913 * tree-pass.h (PROP_rtl_split_insns): Define.
914 * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
916 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
918 * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
920 2017-10-23 Jakub Jelinek <jakub@redhat.com>
923 * target.def (const_not_ok_for_debug_p): Default to
924 default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
925 * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
926 * targhooks.c (default_const_not_ok_for_debug_p): New function.
927 * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
928 which targetm.const_not_ok_for_debug_p returned true.
929 * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
931 * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
933 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
934 * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
935 UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
937 (ix86_const_not_ok_for_debug_p): New function.
938 (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
939 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
941 2017-10-23 David Malcolm <dmalcolm@redhat.com>
944 * system.h: Conditionally include "unique-ptr.h" if
945 INCLUDE_UNIQUE_PTR is defined.
946 * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
947 of defining INCLUDE_UNIQUE_PTR before including "system.h".
949 2017-10-23 Sebastian Perta <sebastian.perta@renesas.com>
951 * config/rl78/rl78.md: New define_expand "subdi3".
953 2017-10-23 H.J. Lu <hongjiu.lu@intel.com>
956 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
957 DF_REF_INSN if DF_REF_INSN_INFO is false.
959 2017-10-23 Jan Hubicka <hubicka@ucw.cz>
961 * i386.c (dimode_scalar_chain::compute_convert_gain): Use
962 xmm_move instead of sse_move.
963 (sse_store_index): New function.
964 (ix86_register_move_cost): Be more sensible about mismatch stall;
965 model AVX moves correctly; make difference between sse->integer and
967 (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
968 moves; make difference between SSE and AVX.
969 * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
970 and zmm_move. Increase size of sse load and store tables;
971 add unaligned load and store tables; add ssemmx_to_integer.
972 * x86-tune-costs.h: Update all entries according to real
973 move latencies from Agner Fog's manual and chip documentation.
975 2017-10-23 Jakub Jelinek <jakub@redhat.com>
978 * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
979 * config/i386/constraints.md (Wf): New constraint.
980 * config/i386/i386.md (UNSPEC_SBB): New unspec.
981 (cmp<dwi>_doubleword): Removed.
982 (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
983 (sub<mode>3_carry_ccgz): Use unspec instead of compare.
984 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
985 expand with cmp<dwi>_doubleword. For LTU and GEU use
986 sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
988 * common.opt (gcolumn-info): Enable by default.
989 * doc/invoke.texi (gcolumn-info): Document new default.
991 2017-10-23 Richard Biener <rguenther@suse.de>
993 PR tree-optimization/82672
994 * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
995 Fold the stmt if we propagated into it.
997 2017-10-23 Richard Biener <rguenther@suse.de>
999 * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
1000 (bitmap_remove_expr_from_set): ... this. All callers call this
1001 for non-constant values.
1002 (bitmap_set_subtract): Rename to...
1003 (bitmap_set_subtract_expressions): ... this. Adjust and
1005 (bitmap_set_contains_value): Remove superfluous check.
1006 (bitmap_set_replace_value): Inline into single caller ...
1007 (bitmap_value_replace_in_set): ... here and simplify.
1008 (dependent_clean): Merge into ...
1009 (clean): ... this using an overload. Adjust.
1010 (prune_clobbered_mems): Adjust.
1011 (compute_antic_aux): Likewise.
1012 (compute_partial_antic_aux): Likewise.
1014 2017-10-23 Richard Biener <rguenther@suse.de>
1016 PR tree-optimization/82129
1018 2017-08-01 Richard Biener <rguenther@suse.de>
1020 PR tree-optimization/81181
1021 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
1022 (compute_antic): ... end of iteration here.
1024 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
1026 * target.def (starting_frame_offset): New hook.
1027 * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
1028 (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
1029 * doc/tm.texi.in: Regenerate.
1030 * hooks.h (hook_hwi_void_0): Declare.
1031 * hooks.c (hook_hwi_void_0): New function.
1032 * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
1033 STARTING_FRAME_OFFSET.
1034 * builtins.c (expand_builtin_setjmp_receiver): Likewise.
1035 * reload1.c (reload): Likewise.
1036 * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
1037 instead of STARTING_FRAME_OFFSET.
1038 * function.c (try_fit_stack_local): Likewise.
1039 (assign_stack_local_1): Likewise
1040 (instantiate_virtual_regs): Likewise.
1041 * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
1042 * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
1043 * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
1044 * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
1045 * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
1046 * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
1047 * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
1048 * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
1049 * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
1050 * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
1051 * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
1052 * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
1053 * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
1054 * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
1055 * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
1056 * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
1057 * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
1058 * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
1059 * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
1060 * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
1061 * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
1062 * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
1063 * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
1064 * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
1065 * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
1066 * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
1067 * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
1068 * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
1069 * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
1070 * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
1071 * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
1072 * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
1073 * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
1074 * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
1075 * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
1076 * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
1077 * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
1078 * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
1079 * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
1080 * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
1081 * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
1082 * config/avr/avr.c (avr_starting_frame_offset): Make static and
1083 return a HOST_WIDE_INT.
1084 (avr_builtin_setjmp_frame_value): Use it instead of
1085 STARTING_FRAME_OFFSET.
1086 (TARGET_STARTING_FRAME_OFFSET): Redefine.
1087 * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
1088 * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
1090 (TARGET_STARTING_FRAME_OFFSET): Redefine.
1091 * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
1092 * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
1093 (TARGET_CONSTANT_ALIGNMENT): Redefine.
1094 * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
1095 * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
1096 (TARGET_STARTING_FRAME_OFFSET): Redefine.
1097 * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
1098 * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
1099 (TARGET_STARTING_FRAME_OFFSET): Redefine.
1100 * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
1101 * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
1103 (TARGET_STARTING_FRAME_OFFSET): Redefine.
1104 * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
1105 * config/mips/mips.c (mips_compute_frame_info): Refer to
1106 TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
1107 (mips_starting_frame_offset): New function.
1108 (TARGET_STARTING_FRAME_OFFSET): Redefine.
1109 * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
1110 * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
1111 * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
1112 and return a HOST_WIDE_INT.
1113 (TARGET_STARTING_FRAME_OFFSET): Redefine.
1114 (mmix_initial_elimination_offset): Refer to
1115 TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
1116 * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
1117 * config/pa/pa.c (pa_starting_frame_offset): New function.
1118 (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
1119 (pa_expand_prologue): Likewise.
1120 (TARGET_STARTING_FRAME_OFFSET): Redefine.
1121 * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
1122 !FRAME_GROWS_DOWNWARD handling to...
1123 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1124 * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
1125 !FRAME_GROWS_DOWNWARD handling to...
1126 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1127 * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
1128 !FRAME_GROWS_DOWNWARD handling to...
1129 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1130 * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
1132 (rs6000_starting_frame_offset): New function.
1133 * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
1134 !FRAME_GROWS_DOWNWARD handling to...
1135 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1136 * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
1137 !FRAME_GROWS_DOWNWARD handling to...
1138 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1139 * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
1140 !FRAME_GROWS_DOWNWARD handling to...
1141 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1142 * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
1143 (rs6000_starting_frame_offset): New function.
1144 * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
1145 * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
1146 * config/vax/vax.c (vax_starting_frame_offset): New function.
1147 (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
1148 (TARGET_STARTING_FRAME_OFFSET): Redefine.
1149 * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
1150 * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
1151 (TARGET_STARTING_FRAME_OFFSET): Redefine.
1152 * system.h (STARTING_FRAME_OFFSET): Poison.
1154 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
1156 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
1157 SCALAR_TYPE_MODE instead of TYPE_MODE.
1159 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
1160 Alan Hayward <alan.hayward@arm.com>
1161 David Sherwood <david.sherwood@arm.com>
1163 * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
1165 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
1166 Alan Hayward <alan.hayward@arm.com>
1167 David Sherwood <david.sherwood@arm.com>
1169 * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
1171 2017-10-23 Richard Biener <rguenther@suse.de>
1173 PR tree-optimization/82129
1174 * tree-ssa-pre.c (bitmap_set_and): Remove.
1175 (compute_antic_aux): Compute ANTIC_OUT intersection in a way
1176 canonicalizing expressions in the set to those with lowest
1177 ID rather than taking that from the first edge.
1179 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
1181 * combine.c (rtx_equal_for_field_assignment_p): Use
1182 byte_lowpart_offset.
1184 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
1185 Alan Hayward <alan.hayward@arm.com>
1186 David Sherwood <david.sherwood@arm.com>
1188 * internal-fn.c (expand_direct_optab_fn): Don't assign directly
1189 to a SUBREG_PROMOTED_VAR.
1191 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
1192 Alan Hayward <alan.hayward@arm.com>
1193 David Sherwood <david.sherwood@arm.com>
1195 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
1196 (expand_debug_source_expr): Likewise.
1197 * combine.c (combine_simplify_rtx): Likewise.
1198 * cse.c (fold_rtx): Likewise.
1199 * optabs.c (expand_float): Likewise.
1200 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1201 (simplify_binary_operation_1): Likewise.
1203 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
1204 Alan Hayward <alan.hayward@arm.com>
1205 David Sherwood <david.sherwood@arm.com>
1207 * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
1208 (record_promoted_value): Likewise.
1209 * expr.c (expand_expr_real_2): Likewise.
1210 * ree.c (update_reg_equal_equiv_notes): Likewise.
1211 (combine_set_extension): Likewise.
1212 * rtlanal.c (low_bitmask_len): Likewise.
1213 * simplify-rtx.c (neg_const_int): Likewise.
1214 (simplify_binary_operation_1): Likewise.
1216 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
1217 Alan Hayward <alan.hayward@arm.com>
1218 David Sherwood <david.sherwood@arm.com>
1220 * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
1221 * regcprop.c (maybe_mode_change): Likewise.
1222 * reload1.c (alter_reg): Likewise.
1224 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
1226 * inchash.h (inchash::hash::add_wide_int): New function.
1227 * lto-streamer-out.c (hash_tree): Use it.
1229 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
1231 * inchash.h (inchash::hash::add_wide_int): Rename to...
1232 (inchash::hash::add_hwi): ...this.
1233 * ipa-devirt.c (hash_odr_vtable): Update accordingly.
1234 (polymorphic_call_target_hasher::hash): Likewise.
1235 * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
1236 (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
1237 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
1238 * lto-streamer-out.c (hash_tree): Likewise.
1239 * optc-save-gen.awk: Likewise.
1240 * tree.c (add_expr): Likewise.
1242 2017-10-22 Uros Bizjak <ubizjak@gmail.com>
1245 * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
1246 for ordered inequality comparisons even with TARGET_IEEE_FP.
1248 2017-10-22 Uros Bizjak <ubizjak@gmail.com>
1251 * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
1252 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
1253 Expand with cmp<dwi>_doubleword.
1255 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
1257 * extend.texi: Add x86 specific to 'nocf_check' attribute.
1258 List CET intrinsics.
1259 * invoke.texi: Add -mcet, -mibt, -mshstk options. Add x86
1260 specific to -fcf-protection option.
1262 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
1264 * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
1265 (OPTION_MASK_ISA_SHSTK_SET): Likewise.
1266 (OPTION_MASK_ISA_IBT_UNSET): Likewise.
1267 (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
1268 (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
1269 * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
1270 (extra_objs): Add cet.o for Linux/x86 targets.
1271 (tmake_file): Add i386/t-cet for Linux/x86 targets.
1272 * config/i386/cet.c: New file.
1273 * config/i386/cetintrin.h: Likewise.
1274 * config/i386/t-cet: Likewise.
1275 * config/i386/cpuid.h (bit_SHSTK): New.
1276 (bit_IBT): Likewise.
1277 * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
1278 pass IBT and SHSTK bits.
1279 * config/i386/i386-builtin-types.def
1280 (VOID_FTYPE_UNSIGNED_PVOID): New.
1281 (VOID_FTYPE_UINT64_PVOID): Likewise.
1282 * config/i386/i386-builtin.def: Add CET intrinsics.
1283 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1284 OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
1285 * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
1286 * config/i386/i386-protos.h (make_pass_insert_endbranch): New
1288 * config/i386/i386.c (rest_of_insert_endbranch): New.
1289 (pass_data_insert_endbranch): Likewise.
1290 (pass_insert_endbranch): Likewise.
1291 (make_pass_insert_endbranch): Likewise.
1292 (ix86_notrack_prefixed_insn_p): Likewise.
1293 (ix86_target_string): Add -mibt, -mshstk flags.
1294 (ix86_option_override_internal): Add flag_cf_protection
1296 (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
1297 (ix86_print_operand): Add 'notrack' prefix output.
1298 (ix86_init_mmx_sse_builtins): Add CET intrinsics.
1299 (ix86_expand_builtin): Expand CET intrinsics.
1300 (x86_output_mi_thunk): Add 'endbranch' instruction.
1301 * config/i386/i386.h (TARGET_IBT): New.
1302 (TARGET_IBT_P): Likewise.
1303 (TARGET_SHSTK): Likewise.
1304 (TARGET_SHSTK_P): Likewise.
1305 * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
1306 UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
1307 UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
1308 (builtin_setjmp_setup): New pattern.
1309 (builtin_longjmp): Likewise.
1310 (rdssp<mode>): Likewise.
1311 (incssp<mode>): Likewise.
1312 (saveprevssp): Likewise.
1313 (rstorssp): Likewise.
1314 (wrss<mode>): Likewise.
1315 (wruss<mode>): Likewise.
1316 (setssbsy): Likewise.
1317 (clrssbsy): Likewise.
1318 (nop_endbr): Likewise.
1319 * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
1321 * config/i386/immintrin.h: Include <cetintrin.h>.
1322 * config/i386/linux-common.h
1323 (file_end_indicate_exec_stack_and_cet): New prototype.
1324 (TARGET_ASM_FILE_END): New.
1326 2017-10-20 Jan Hubicka <hubicka@ucw.cz>
1328 * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
1329 latencies instead of having separate table; make difference between
1330 integer and float costs.
1331 * i386.h (processor_costs): Remove scalar_stmt_cost,
1332 scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
1333 scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
1335 * x86-tune-costs.h: Remove entries which has been removed in
1336 procesor_costs from all tables; make cond_taken_branch_cost
1337 and cond_not_taken_branch_cost COST_N_INSNS based.
1339 2017-10-20 Jan Hubicka <hubicka@ucw.cz>
1341 * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
1343 2017-10-20 Jakub Jelinek <jakub@redhat.com>
1345 * config/i386/i386.md (isa): Remove fma_avx512f.
1346 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
1347 <avx512>_fmadd_<mode>_mask3<round_name>,
1348 <avx512>_fmsub_<mode>_mask<round_name>,
1349 <avx512>_fmsub_<mode>_mask3<round_name>,
1350 <avx512>_fnmadd_<mode>_mask<round_name>,
1351 <avx512>_fnmadd_<mode>_mask3<round_name>,
1352 <avx512>_fnmsub_<mode>_mask<round_name>,
1353 <avx512>_fnmsub_<mode>_mask3<round_name>,
1354 <avx512>_fmaddsub_<mode>_mask<round_name>,
1355 <avx512>_fmaddsub_<mode>_mask3<round_name>,
1356 <avx512>_fmsubadd_<mode>_mask<round_name>,
1357 <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
1358 (*vec_widen_umult_even_v16si<mask_name>,
1359 *vec_widen_smult_even_v16si<mask_name>): Likewise.
1360 (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
1362 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
1364 * extend.texi: Add 'nocf_check' documentation.
1365 * gimple.texi: Add second parameter to
1366 gimple_build_call_from_tree.
1367 * invoke.texi: Add -fcf-protection documentation.
1368 * rtl.texi: Add REG_CALL_NOTRACK documenation.
1370 2017-10-20 Richard Biener <rguenther@suse.de>
1372 PR tree-optimization/82473
1373 * tree-vect-loop.c (vectorizable_reduction): Properly get at
1374 the largest input type.
1376 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
1378 * c-attribs.c (handle_nocf_check_attribute): New function.
1379 (c_common_attribute_table): Add 'nocf_check' handling.
1380 * gimple-parser.c: Add second argument NULL to
1381 gimple_build_call_from_tree.
1382 * attrib.c (comp_type_attributes): Check nocf_check attribute.
1383 * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
1385 * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
1386 * common.opt: Add fcf-protection flag.
1387 * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
1388 * flag-types.h: Add enum cf_protection_level.
1389 * gimple.c (gimple_build_call_from_tree): Add second parameter.
1390 Add 'nocf_check' attribute propagation to gimple call.
1391 * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
1392 (gimple_build_call_from_tree): Update prototype.
1393 (gimple_call_nocf_check_p): New function.
1394 (gimple_call_set_nocf_check): Likewise.
1395 * gimplify.c: Add second argument to gimple_build_call_from_tree.
1396 * ipa-icf.c: Add nocf_check attribute in statement hash.
1397 * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
1398 * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
1399 * toplev.c (process_options): Add flag_cf_protection handling.
1401 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
1403 * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
1405 2017-10-20 Richard Biener <rguenther@suse.de>
1407 PR tree-optimization/82603
1408 * tree-if-conv.c (predicate_mem_writes): Make sure to only
1409 remove false predicated stores.
1411 2017-10-20 Richard Biener <rguenther@suse.de>
1413 * graphite-isl-ast-to-gimple.c
1414 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
1415 Remove return value and simplify, dump copied stmt after lhs
1417 (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
1418 Reduce dump verbosity.
1419 (gsi_insert_earliest): Likewise.
1420 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
1421 * graphite.c (print_global_statistics): Adjust dumping.
1422 (print_graphite_scop_statistics): Likewise.
1423 (print_graphite_statistics): Do not dump loops here.
1424 (graphite_transform_loops): But here.
1426 2017-10-20 Nicolas Roche <roche@adacore.com>
1428 * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
1429 * configure: Regenerate.
1431 2017-10-20 Jakub Jelinek <jakub@redhat.com>
1434 * tree-cfg.c (pass_warn_function_return::execute): In noreturn
1435 functions when optimizing replace GIMPLE_RETURN stmts with
1436 calls to __builtin_unreachable ().
1439 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
1440 for -fsanitize=thread link of executables.
1441 (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
1442 link of executables.
1445 * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
1447 (<shift_insn><mode>3<mask_name>): Change the last of the 3
1448 define_insns for logical vector shifts to use VI248_AVX512BW
1449 iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
1450 condition, useless isa and prefix attributes. Change the first
1451 2 of these define_insns to ...
1452 (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
1453 define_insn for avx512vl.
1454 (<shift_insn><mode>3): ... and this, new define_insn without
1455 masking for non-avx512vl.
1458 * config/i386/sse.md (*andnot<mode>3,
1459 <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
1460 (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
1461 and 256-bit vectors, the (=x,x,xm) alternative and when mask is
1462 not applied use empty suffix even for TARGET_AVX512VL.
1463 * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
1464 is applied, supply evex,evex or evex,evex,evex instead of just
1467 2017-10-20 Julia Koval <julia.koval@intel.com>
1469 * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
1470 (OPTION_MASK_ISA_GFNI_UNSET): New.
1471 (ix86_handle_option): Handle OPT_mgfni.
1472 * config/i386/cpuid.h (bit_GFNI): New.
1473 * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
1474 * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
1475 * config/i386/i386.c (ix86_target_string): Add -mgfni.
1476 (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
1477 * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
1478 * config/i386/i386.opt: Add mgfni.
1480 2017-10-20 Orlando Arias <oarias@knights.ucf.edu>
1482 * config/msp430/msp430.c (msp430_option_override): Disable
1483 -fdelete-null-pointer-checks.
1484 * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
1486 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
1488 * x86-tune-costs.h (generic_cost, core_cost): Correct costs
1489 of x87 and SSE instructions.
1491 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
1493 * asan.c (create_cond_insert_point): Do not update edge count.
1494 * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
1495 (afdo_propagate_circuit): Likewise.
1496 (afdo_calculate_branch_prob): Likewise.
1497 (afdo_annotate_cfg): Likewise.
1498 * basic-block.h (struct edge_def): Remove count.
1499 (edge_def::count): New accessor.
1500 * bb-reorder.c (rotate_loop): Update.
1501 (find_traces_1_round): Update.
1502 (connect_traces): Update.
1503 (sanitize_hot_paths): Update.
1504 * cfg.c (unchecked_make_edge): Update.
1505 (make_single_succ_edge): Update.
1506 (check_bb_profile): Update.
1507 (dump_edge_info): Update.
1508 (update_bb_profile_for_threading): Update.
1509 (scale_bbs_frequencies_int): Update.
1510 (scale_bbs_frequencies_gcov_type): Update.
1511 (scale_bbs_frequencies_profile_count): Update.
1512 (scale_bbs_frequencies): Update.
1513 * cfganal.c (connect_infinite_loops_to_exit): Update.
1514 * cfgbuild.c (compute_outgoing_frequencies): Update.
1515 (find_many_sub_basic_blocks): Update.
1516 * cfgcleanup.c (try_forward_edges): Update.
1517 (try_crossjump_to_edge): Update
1518 * cfgexpand.c (expand_gimple_cond): Update
1519 (expand_gimple_tailcall): Update
1520 (construct_exit_block): Update
1521 * cfghooks.c (verify_flow_info): Update
1522 (redirect_edge_succ_nodup): Update
1523 (split_edge): Update
1524 (make_forwarder_block): Update
1525 (duplicate_block): Update
1526 (account_profile_record): Update
1527 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
1528 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
1529 * cfgloopmanip.c (scale_loop_profile): Update.
1531 (lv_adjust_loop_entry_edge): Update.
1532 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
1533 (force_nonfallthru_and_redirect): Update.
1534 (purge_dead_edges): Update.
1535 (rtl_flow_call_edges_add): Update.
1536 * cgraphunit.c (init_lowered_empty_function): Update.
1537 (cgraph_node::expand_thunk): Update.
1538 * gimple-pretty-print.c (dump_probability): Update.
1539 (dump_edge_probability): Update.
1540 * gimple-ssa-isolate-paths.c (isolate_path): Update.
1541 * haifa-sched.c (sched_create_recovery_edges): Update.
1542 * hsa-gen.c (convert_switch_statements): Update.
1543 * ifcvt.c (dead_or_predicable): Update.
1544 * ipa-inline-transform.c (inline_transform): Update.
1545 * ipa-split.c (split_function): Update.
1546 * ipa-utils.c (ipa_merge_profiles): Update.
1547 * loop-doloop.c (add_test): Update.
1548 * loop-unroll.c (unroll_loop_runtime_iterations): Update.
1549 * lto-streamer-in.c (input_cfg): Update.
1550 (input_function): Update.
1551 * lto-streamer-out.c (output_cfg): Update.
1552 * modulo-sched.c (sms_schedule): Update.
1553 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
1554 * predict.c (maybe_hot_edge_p): Update.
1555 (unlikely_executed_edge_p): Update.
1556 (probably_never_executed_edge_p): Update.
1557 (dump_prediction): Update.
1558 (drop_profile): Update.
1559 (propagate_unlikely_bbs_forward): Update.
1560 (determine_unlikely_bbs): Update.
1561 (force_edge_cold): Update.
1562 * profile.c (compute_branch_probabilities): Update.
1563 * reg-stack.c (better_edge): Update.
1564 * shrink-wrap.c (handle_simple_exit): Update.
1565 * tracer.c (better_p): Update.
1566 * trans-mem.c (expand_transaction): Update.
1567 (split_bb_make_tm_edge): Update.
1568 * tree-call-cdce.c: Update.
1569 * tree-cfg.c (gimple_find_sub_bbs): Update.
1570 (gimple_split_edge): Update.
1571 (gimple_duplicate_sese_region): Update.
1572 (gimple_duplicate_sese_tail): Update.
1573 (gimple_flow_call_edges_add): Update.
1574 (insert_cond_bb): Update.
1575 (execute_fixup_cfg): Update.
1576 * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
1577 * tree-complex.c (expand_complex_div_wide): Update.
1578 * tree-eh.c (lower_resx): Update.
1579 (unsplit_eh): Update.
1580 (cleanup_empty_eh_move_lp): Update.
1581 * tree-inline.c (copy_edges_for_bb): Update.
1582 (freqs_to_counts): Update.
1583 (copy_cfg_body): Update.
1584 * tree-ssa-dce.c (remove_dead_stmt): Update.
1585 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
1586 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
1587 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
1588 (unloop_loops): Update.
1589 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
1590 * tree-ssa-loop-split.c (connect_loops): Update.
1591 (split_loop): Update.
1592 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
1593 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
1594 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
1595 * tree-ssa-reassoc.c (branch_fixup): Update.
1596 * tree-ssa-tail-merge.c (replace_block_by): Update.
1597 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
1598 (compute_path_counts): Update.
1599 (update_profile): Update.
1600 (recompute_probabilities): Update.
1601 (update_joiner_offpath_counts): Update.
1602 (estimated_freqs_path): Update.
1603 (freqs_to_counts_path): Update.
1604 (clear_counts_path): Update.
1605 (ssa_fix_duplicate_block_edges): Update.
1606 (duplicate_thread_path): Update.
1607 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
1608 (case_bit_test_cmp): Update.
1609 (collect_switch_conv_info): Update.
1610 (gen_inbound_check): Update.
1611 (do_jump_if_equal): Update.
1612 (emit_cmp_and_jump_insns): Update.
1613 * tree-tailcall.c (decrease_profile): Update.
1614 (eliminate_tail_call): Update.
1615 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
1616 (vect_do_peeling): Update.
1617 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
1618 * ubsan.c (ubsan_expand_null_ifn): Update.
1619 (ubsan_expand_ptr_ifn): Update.
1620 * value-prof.c (gimple_divmod_fixed_value): Update.
1621 (gimple_mod_pow2): Update.
1622 (gimple_mod_subtract): Update.
1623 (gimple_ic): Update.
1624 (gimple_stringop_fixed_value): Update.
1626 2017-10-19 Uros Bizjak <ubizjak@gmail.com>
1629 * config/i386/i386.md (sub to cmp): New peephole2 pattern.
1631 2017-10-19 Alexander Monakov <amonakov@ispras.ru>
1633 PR rtl-optimization/82395
1634 * ira-color.c (allocno_priority_compare_func): Fix comparison step
1635 based on non_spilled_static_chain_regno_p.
1637 2017-10-19 Uros Bizjak <ubizjak@gmail.com>
1639 * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
1640 (ix86_emit_mode_set): Rewrite insn mnemonic construction.
1641 (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
1643 2017-10-19 Martin Sebor <msebor@redhat.com>
1645 PR tree-optimization/82596
1646 * tree.c (array_at_struct_end_p): Handle STRING_CST.
1648 2017-10-19 Eric Botcazou <ebotcazou@adacore.com>
1650 * asan.c (handle_builtin_alloca): Deal with all alloca variants.
1651 (get_mem_refs_of_builtin_call): Likewise.
1652 * builtins.c (expand_builtin_apply): Adjust call to
1653 allocate_dynamic_stack_space.
1654 (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
1655 the third argument to allocate_dynamic_stack_space, otherwise -1.
1656 (expand_builtin): Deal with all alloca variants.
1657 (is_inexpensive_builtin): Likewise.
1658 * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
1659 * calls.c (special_function_p): Deal with all alloca variants.
1660 (initialize_argument_information): Adjust call to
1661 allocate_dynamic_stack_space.
1662 (expand_call): Likewise.
1663 * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
1664 * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
1665 * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
1666 use it for the stack usage computation.
1667 * explow.h (allocate_dynamic_stack_space): Adjust prototype.
1668 * function.c (gimplify_parameters): Call build_alloca_call_expr.
1669 * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
1670 Take into account 3rd argument of __builtin_alloca_with_align_and_max.
1671 (in_loop_p): Remove first argument and useless check.
1672 (pass_walloca::execute): Remove useless test and adjust call to above.
1673 * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
1674 * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
1675 (gimplify_call_expr): Deal with all alloca variants.
1676 * hsa-gen.c (gen_hsa_alloca): Likewise.
1677 (gen_hsa_insns_for_call): Likewise.
1678 * ipa-pure-const.c (special_builtin_state): Likewise.
1679 * tree-chkp.c (chkp_build_returned_bound): Likewise.
1680 * tree-object-size.c (alloc_object_size): Likewise.
1681 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
1682 (call_may_clobber_ref_p_1): Likewise.
1683 * tree-ssa-ccp.c (evaluate_stmt): Likewise.
1684 (ccp_fold_stmt): Likewise.
1685 (optimize_stack_restore): Likewise.
1686 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1687 (mark_all_reaching_defs_necessary_1): Likewise.
1688 (propagate_necessity): Likewise.
1689 (eliminate_unnecessary_stmts): Likewise.
1690 * tree.c (build_common_builtin_nodes): Build
1691 BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
1692 (build_alloca_call_expr): New function.
1693 * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
1694 (CASE_BUILT_IN_ALLOCA): Likewise.
1695 (build_alloca_call_expr): Declare.
1696 * varasm.c (incorporeal_function_p): Deal with all alloca variants.
1698 2017-10-19 Eric Botcazou <ebotcazou@adacore.com>
1701 * dwarf2out.c (new_die_raw): New static inline function.
1702 (new_die): Use it to create the DIE.
1703 (add_AT_external_die_ref): Likewise.
1704 (clone_die): Likewise.
1705 (clone_as_declaration): Likewise.
1706 (dwarf2out_vms_debug_main_pointer): Likewise.
1707 (base_type_die): Likewise. Remove early return for corner cases.
1708 Do not call add_pubtype on the DIE here.
1709 (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
1710 (modified_type_die): Adjust the lookup for reverse order DIEs. Skip
1711 typedefs for base types with DW_AT_endianity. Make sure a DIE with
1712 native order exists for base types, attach the DIE manually and call
1713 add_pubtype on it. Do not equate a reverse order DIE to the type.
1715 2017-10-19 Richard Earnshaw <rearnsha@arm.com>
1717 * config/arm/arm.c (align_ok_ldrd_strd): New function.
1718 (mem_ok_for_ldrd_strd): New parameter align. Extract the alignment of
1720 (gen_operands_ldrd_strd): Validate the alignment of the accesses.
1722 2017-10-19 Jakub Jelinek <jakub@redhat.com>
1724 * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN. Or
1725 SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
1726 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
1727 BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
1728 * opts.c (sanitizer_opts): Add builtin.
1729 * ubsan.c (instrument_builtin): New function.
1730 (pass_ubsan::execute): Call it.
1731 (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
1732 * doc/invoke.texi: Document -fsanitize=builtin.
1734 * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
1735 builtins, store max (log2 (align), 0) into uchar field instead of
1736 align into uptr field.
1737 (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
1738 store uchar 0 field instead of uptr 0 field.
1739 (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
1740 instead of passing one address of struct with 2 locations pass
1741 two addresses of structs with 1 location each.
1742 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
1743 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
1744 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
1745 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
1746 (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
1747 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
1748 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
1749 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
1751 2017-10-19 Martin Liska <mliska@suse.cz>
1754 * file-find.c (remove_prefix): Remove.
1755 * file-find.h (remove_prefix): Likewise.
1756 * gcc-ar.c: Remove smartness of lookup.
1758 2017-10-19 Segher Boessenkool <segher@kernel.crashing.org>
1760 * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
1761 *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
1762 *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
1764 2017-10-19 Jakub Jelinek <jakub@redhat.com>
1767 * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
1768 (setcc + and to xor + setcc): New peephole2.
1770 2017-10-19 Tom de Vries <tom@codesourcery.com>
1772 * doc/sourcebuild.texi (Test Directives, Variants of
1773 dg-require-support): Add dg-require-stack-size.
1775 2017-10-19 Martin Liska <mliska@suse.cz>
1778 * gimplify.c (gimplify_decl_expr): Do not instrument variables
1779 that have a large alignment.
1780 (gimplify_target_expr): Likewise.
1782 2017-10-18 Segher Boessenkool <segher@kernel.crashing.org>
1784 PR rtl-optimization/82602
1785 * ira.c (rtx_moveable_p): Return false for volatile asm.
1787 2017-10-18 Uros Bizjak <ubizjak@gmail.com>
1790 * config/i386/i386-modes.def (CCGZ): New CC mode.
1791 * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
1792 * config/i386/predicates.md (ix86_comparison_operator):
1794 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
1795 Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
1796 with double-word subtraction.
1797 (put_condition_code): Handle CCGZmode.
1799 2017-10-18 Aldy Hernandez <aldyh@redhat.com>
1801 * wide-int.cc (debug (const wide_int &)): New.
1802 (debug (const wide_int *)): New.
1803 (debug (const widest_int &)): New.
1804 (debug (const widest_int *)): New.
1806 2017-10-18 Vladimir Makarov <vmakarov@redhat.com>
1809 * lra-constraints.c (curr_insn_transform): Use non-input operand
1810 instead of output one for matched reload.
1812 2017-10-18 Bin Cheng <bin.cheng@arm.com>
1814 * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
1815 (tree-ssa-loop-ivopts.h): New header file.
1816 (struct builtin_info): New fields.
1817 (classify_builtin_1): Compute and record base and offset parts for
1818 memset builtin partition by calling strip_offset.
1819 (offset_cmp, fuse_memset_builtins): New functions.
1820 (finalize_partitions): Fuse adjacent memset partitions by calling
1822 * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
1823 Expose the interface.
1824 * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
1826 2017-10-18 Bin Cheng <bin.cheng@arm.com>
1828 PR tree-optimization/82574
1829 * tree-loop-distribution.c (find_single_drs): New parameter. Check
1830 that data reference must be executed exactly once per iteration
1831 against the outermost loop in nest.
1832 (classify_partition): Update call to above function.
1834 2017-10-18 Richard Biener <rguenther@suse.de>
1836 PR tree-optimization/82591
1837 * graphite.c (graphite_transform_loops): Move code gen message
1839 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
1840 Here. Handle scop_to_isl_ast failing.
1841 (scop_to_isl_ast): Limit the number of ISL operations.
1843 2017-10-18 Richard Biener <rguenther@suse.de>
1845 * graphite-isl-ast-to-gimple.c
1846 (translate_isl_ast_to_gimple::set_rename): Simplify.
1847 (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
1848 (graphite_copy_stmts_from_block): ... here.
1849 (copy_bb_and_scalar_dependences): Simplify.
1850 (add_parameters_to_ivs_params): Canonicalize.
1851 (generate_entry_out_of_ssa_copies): Simplify.
1852 * graphite-sese-to-poly.c (extract_affine_name): Simplify
1853 by passing in ISL dimension.
1854 (parameter_index_in_region_1): Rename to ...
1855 (parameter_index_in_region): ... this.
1856 (extract_affine): Adjust assert, pass down parameter index.
1857 (add_param_constraints): Use range-info when available.
1858 (build_scop_context): Adjust.
1859 * sese.c (new_sese_info): Adjust.
1860 (free_sese_info): Likewise.
1861 * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
1862 Remove unused typedefs.
1863 (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
1865 2017-10-18 Martin Liska <mliska@suse.cz>
1867 * combine.c (simplify_compare_const): Add gcc_fallthrough.
1869 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
1871 * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
1872 (s390_sched_init): Do not reset s390_sched_state if we entered the
1873 current basic block via a fallthru edge and all others are unlikely.
1875 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
1877 * config/s390/s390.c (NUM_SIDES): New variable.
1878 (LONGRUNNING_THRESHOLD): New variable.
1879 (LATENCY_FACTOR): New variable.
1880 (s390_sched_score): Decrease score for long-running instructions on
1882 (s390_sched_variable_issue): Perform bookkeeping for long-running
1885 2017-10-18 Richard Biener <rguenther@suse.de>
1887 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
1888 Simplify with removal of the parameter rename map.
1889 (set_rename): Likewise.
1890 (should_copy_to_new_region): Likewise.
1891 (graphite_copy_stmts_from_block): Likewise.
1892 (copy_bb_and_scalar_dependences): Remove initialization of
1893 unused copied_bb_map.
1895 (copy_internal_parameters): Likewise.
1896 (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
1897 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
1898 Use INTEGRAL_TYPE_P.
1899 (parameter_index_in_region_1): Rename to ...
1900 (assign_parameter_index_in_region): ... this. Assert we have
1901 a parameter we handle.
1902 (scan_tree_for_params): Adjust.
1903 * sese.h (parameter_rename_map_t): Remove.
1904 (struct sese_info_t): Remove unused parameter_rename_map and
1905 copied_bb_map members.
1906 * sese.c (new_sese_info): Adjust.
1907 (free_sese_info): Likewise.
1909 2017-10-18 Martin Liska <mliska@suse.cz>
1912 * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
1913 on an abnormal edge.
1915 2017-10-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
1917 * doc/invoke.texi (ffunction-sections and fdata-sections):
1920 2017-10-17 Eric Botcazou <ebotcazou@adacore.com>
1922 * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
1923 the use statement can throw internally.
1925 2017-10-17 Eric Botcazou <ebotcazou@adacore.com>
1927 * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
1928 any RTX present on the RHS of a SET.
1929 * compare-elim.c (try_eliminate_compare): Restore comment.
1931 2017-10-17 Jakub Jelinek <jakub@redhat.com>
1933 * langhooks.h (struct lang_hooks): Document that tree_size langhook
1934 may be also called on tcc_type nodes.
1935 * langhooks.c (lhd_tree_size): Likewise.
1937 2017-10-17 David Malcolm <dmalcolm@redhat.com>
1939 * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
1940 format_warning_at_substring.
1941 (maybe_warn): Convert source_range * param to a location_t. Pass
1942 UNKNOWN_LOCATION rather than NULL to fmtwarn.
1943 (format_directive): Remove code to extract source_ranges and
1944 source_range * in favor of just a location_t.
1945 (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
1947 * substring-locations.c (format_warning_va): Convert
1948 source_range * param to a location_t.
1949 (format_warning_at_substring): Likewise.
1950 * substring-locations.h (format_warning_va): Likewise.
1951 (format_warning_at_substring): Likewise.
1953 2017-10-17 Jan Hubicka <hubicka@ucw.cz>
1955 * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
1957 * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
1958 and scatter/gather ops.
1960 * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
1961 vec_gather_load and vec_scatter_store.
1962 * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
1963 * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
1964 * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
1965 * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
1966 * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
1967 * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
1969 2017-10-17 Uros Bizjak <ubizjak@gmail.com>
1971 * reg-stack.c (compare_for_stack_reg): Add bool argument.
1972 Detect FTST instruction and handle its register pops. Only pop
1973 second operand if can_pop_second_op is true.
1974 (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
1975 set can_pop_second_op to false in the compare_for_stack_reg call.
1977 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
1978 output_fp_compare for stack register operands.
1979 * config/i386/i386.c (output_fp_compare): Do not output SSE compare
1980 instructions here. Do not emit stack register pops here. Assert
1981 that FCOMPP pops next to top stack register. Rewrite function.
1983 2017-10-17 Nathan Sidwell <nathan@acm.org>
1986 * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
1987 use DECL_ASSEMBLER_NAME_RAW.
1990 * tree.c (tree_code_size): Reformat. Punt to lang hook for unknown
1993 2017-10-17 Qing Zhao <qing.zhao@oracle.com>
1994 Wilco Dijkstra <wilco.dijkstra@arm.com>
1996 * builtins.c (expand_builtin_update_setjmp_buf): Add a
1997 converstion to Pmode from the buf_addr.
1999 2017-10-17 Richard Biener <rguenther@suse.de>
2001 * graphite-dependences.c (scop_get_reads_and_writes): Change
2002 output parameters to references.
2004 2017-10-17 Jackson Woodruff <jackson.woodruff@arm.com>
2006 PR 71026/tree-optimization
2007 * fold-const.c (distribute_real_division): Removed.
2008 (fold_binary_loc): Remove calls to distribute_real_divison.
2010 2017-10-17 Richard Biener <rguenther@suse.de>
2012 * graphite-scop-detection.c
2013 (scop_detection::stmt_has_simple_data_refs_p): Always use
2014 the full nest as region.
2015 (try_generate_gimple_bb): Likewise.
2016 * sese.c (scalar_evolution_in_region): Simplify now that
2017 SCEV can handle instantiation in regions.
2018 * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
2019 in the non-loop part of a function if requested.
2021 2017-10-17 Richard Biener <rguenther@suse.de>
2023 PR tree-optimization/82563
2024 * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
2026 (graphite_regenerate_ast_isl): Call it.
2027 * graphite-scop-detection.c (build_scops): Remove entry edge split.
2029 2017-10-17 Jakub Jelinek <jakub@redhat.com>
2031 PR tree-optimization/82549
2032 * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
2033 Formatting fixes. Instead of calling make_bit_field_ref with negative
2036 2017-10-17 Olga Makhotina <olga.makhotina@intel.com>
2038 * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
2039 _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
2040 _mm_maskz_reduce_ss): New.
2041 * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
2042 __builtin_ia32_reducess_mask): Ditto..
2043 (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
2044 * config/i386/sse.md (reduces<mode>): Renamed to ...
2045 (reduces<mode><mask_scalar_name>): ... this.
2046 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}):
2048 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
2049 %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
2051 2017-10-16 David Malcolm <dmalcolm@redhat.com>
2053 * Makefile.in (OBJS): Add unique-ptr-tests.o.
2054 * selftest-run-tests.c (selftest::run_tests): Call
2055 selftest::unique_ptr_tests_cc_tests.
2056 * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
2057 * unique-ptr-tests.cc: New file.
2059 2017-10-16 Vladimir Makarov <vmakarov@redhat.com>
2062 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
2064 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
2065 (make_hard_regno_born, make_hard_regno_dead): Update
2066 bb_killed_pseudos and bb_gen_pseudos for fixed regs.
2068 2017-10-16 Jeff Law <law@redhat.com>
2070 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
2072 2017-10-16 Jan Hubicka <hubicka@ucw.cz>
2074 * x86-tune-costs.h (znver1_cost): Fix move cost tables.
2076 2017-10-16 Olivier Hainque <hainque@adacore.com>
2078 * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
2079 with_cpu if we were configured for an e500v2 target cpu name.
2081 2017-10-16 Thomas Preud'homme <thomas.preudhomme@arm.com>
2083 * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
2084 * doc/invoke.texi: Document +nodsp as a valid extension for
2087 2017-10-16 Martin Liska <mliska@suse.cz>
2089 * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
2090 (test_set_range): Likewise.
2091 (test_range_functions): Rename to ...
2092 (test_bit_in_range): ... this.
2093 (sbitmap_c_tests): Add new test.
2095 2017-10-16 Tamar Christina <tamar.christina@arm.com>
2097 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
2099 (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
2100 (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
2102 2017-10-16 Tamar Christina <tamar.christina@arm.com>
2104 * config/aarch64/aarch64-builtins.c
2105 (aarch64_types_quadopu_lane_qualifiers): New.
2106 (TYPES_QUADOPU_LANE): New.
2107 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
2108 (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
2109 (aarch64_<sur>dot_laneq<vsi2qi>): New.
2110 * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
2111 (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
2112 * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
2113 (Vdottype, DOTPROD): New.
2114 (sur): Add SDOT and UDOT.
2116 2017-10-16 Tamar Christina <tamar.christina@arm.com>
2118 * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
2119 (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
2120 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
2122 * config/aarch64/aarch64-option-extensions.def (dotprod): New.
2123 * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75):
2124 Enable TARGET_DOTPROD.
2125 (cortex-a75.cortex-a55): Likewise.
2126 * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
2128 2017-10-16 Tamar Christina <tamar.christina@arm.com>
2130 * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
2131 (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS):
2133 * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane):
2135 * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
2136 (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
2137 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
2138 (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
2139 * config/arm/types.md (neon_dot, neon_dot_q): New.
2140 * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
2142 2017-10-16 Tamar Christina <tamar.christina@arm.com>
2144 * config/arm/arm.h (TARGET_DOTPROD): New.
2145 * config/arm/arm.c (arm_arch_dotprod): New.
2146 (arm_option_reconfigure_globals): Add arm_arch_dotprod.
2147 * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
2148 * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
2149 (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
2150 (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
2151 * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
2152 * doc/invoke.texi (armv8.2-a): Document dotprod
2154 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
2156 * i386.c (ix86_vec_cost): New function.
2157 (ix86_rtx_costs): Handle vector operations better.
2158 * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
2159 * x86-tune-costs.h: Add new costs to all tables.
2161 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
2163 * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
2165 * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
2166 divsd, sqrtss and sqrtsd
2167 * x86-tune-costs.h: Add new entries to all costs.
2168 (znver1_cost): Fix to match real instruction latencies.
2170 2017-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2171 Michael Collison <michael.collison@arm.com>
2173 * compare-elim.c: Include emit-rtl.h.
2174 (can_merge_compare_into_arith): New function.
2175 (try_validate_parallel): Likewise.
2176 (try_merge_compare): Likewise.
2177 (try_eliminate_compare): Call the above when no previous clobber
2179 (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
2182 2017-10-14 Jakub Jelinek <jakub@redhat.com>
2186 * tree-ssa-phiopt.c (value_replacement): Comment fix. Handle
2187 up to 2 preparation statements for ASSIGN in MIDDLE_BB.
2191 * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
2192 to be any operand_equal_p operands. For & (B - 1) require
2193 B to be power of 2. Recognize
2194 (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
2196 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
2199 * optabs.c (expand_memory_blockage): Fix call of
2200 targetm.have_memory_blockage.
2202 2017-10-14 Jakub Jelinek <jakub@redhat.com>
2205 * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
2206 x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
2207 objects to extra_objs instead of overwriting it.
2209 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
2211 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
2212 Use any_fp_register_operand as operand[3] predicate. Simplify
2213 equality test for operands[2] and operands[4] memory location.
2214 (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
2215 (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
2216 (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
2217 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
2218 any_fp_register_operand as operand[1] predicate. Simplify
2219 equality test for operands[0] and operands[3] memory location.
2220 (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
2221 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
2222 (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
2224 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
2226 * target-insns.def: Add memory_blockage.
2227 * optabs.c (expand_memory_blockage): New function.
2228 (expand_asm_memory_barrier): Rename ...
2229 (expand_asm_memory_blockage): ... to this.
2230 (expand_mem_thread_fence): Call expand_memory_blockage
2231 instead of expand_asm_memory_barrier.
2232 (expand_mem_singnal_fence): Ditto.
2233 (expand_atomic_load): Ditto.
2234 (expand_atomic_store): Ditto.
2235 * doc/md.texi (Standard Pattern Names For Generation):
2236 Document memory_blockage instruction pattern.
2238 2017-10-13 Sebastian Perta <sebastian.perta@renesas.com>
2240 * config/rl78/rl78.c (rl78_emit_libcall): New function.
2241 * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
2242 * config/rl78/rl78.md: New define_expand "adddi3".
2244 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
2246 * cfghooks.c (verify_flow_info): Disable check that all probabilities
2249 2017-10-13 Jeff Law <law@redhat.com>
2251 * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
2253 2017-10-13 Jakub Jelinek <jakub@redhat.com>
2256 * internal-fn.c (expand_mul_overflow): If both operands have
2257 the same highpart of -1 or 0 and the topmost bit of lowpart
2258 is different, overflow is if res <= 0 rather than res < 0.
2260 2017-10-13 Pat Haugen <pthaugen@us.ibm.com>
2262 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
2263 TARGET_P9_VECTOR code for unaligned_load case.
2265 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
2267 * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
2269 2017-10-13 Nathan Sidwell <nathan@acm.org>
2271 * tree-core.h (tree_contains_struct): Make bool.
2272 * tree.c (tree_contains_struct): Likewise.
2273 * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
2274 (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
2275 MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
2276 MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
2277 MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
2279 2017-10-13 Richard Biener <rguenther@suse.de>
2281 * graphite-isl-ast-to-gimple.c
2282 (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
2283 parameters and dominance check.
2284 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
2285 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
2286 (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
2287 Do not update SSA form here or do intermediate IL verification.
2288 * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
2289 (graphite_initialize): Remove check on the number of loops in
2290 the function and inline into graphite_transform_loops.
2291 (graphite_finalize): Inline into graphite_transform_loops.
2292 (graphite_transform_loops): Perform SSA update and IL verification
2294 * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
2296 2017-10-13 Richard Biener <rguenther@suse.de>
2298 * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
2299 graphite_expression_type_precision): Avoid global constructor
2301 (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
2302 (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
2303 (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
2304 (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
2305 (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
2306 * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
2308 2017-10-13 H.J. Lu <hongjiu.lu@intel.com>
2311 * config/i386/i386.h (ix86_red_zone_size): New.
2312 * config/i386/i386.md (push peephole2s): Replace
2313 "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
2315 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
2316 Alan Hayward <alan.hayward@arm.com>
2317 David Sherwood <david.sherwood@arm.com>
2319 * combine.c (can_change_dest_mode): Reject changes in
2320 REGMODE_NATURAL_SIZE.
2322 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
2323 Alan Hayward <alan.hayward@arm.com>
2324 David Sherwood <david.sherwood@arm.com>
2326 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
2327 (expand_debug_source_expr): Likewise.
2328 * combine.c (combine_simplify_rtx): Likewise.
2329 * cse.c (fold_rtx): Likewise.
2330 * fwprop.c (canonicalize_address): Likewise.
2331 * targhooks.c (default_shift_truncation_mask): Likewise.
2333 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
2334 Alan Hayward <alan.hayward@arm.com>
2335 David Sherwood <david.sherwood@arm.com>
2337 * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
2338 (widened_mode): Likewise.
2339 (expand_unop): Likewise.
2340 * ree.c (transform_ifelse): Likewise.
2341 (merge_def_and_ext): Likewise.
2342 (combine_reaching_defs): Likewise.
2343 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2345 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
2346 Alan Hayward <alan.hayward@arm.com>
2347 David Sherwood <david.sherwood@arm.com>
2349 * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
2350 * combine.c (gen_lowpart_for_combine): Likewise.
2351 * dwarf2out.c (rtl_for_decl_location): Likewise.
2352 * final.c (alter_subreg): Likewise.
2353 * rtlhooks.c (gen_lowpart_general): Likewise.
2354 (gen_lowpart_if_possible): Likewise.
2356 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
2357 Alan Hayward <alan.hayward@arm.com>
2358 David Sherwood <david.sherwood@arm.com>
2360 * calls.c (expand_call): Use subreg_lowpart_offset.
2361 * cse.c (cse_insn): Likewise.
2362 * regcprop.c (copy_value): Likewise.
2363 (copyprop_hardreg_forward_1): Likewise.
2365 2017-10-13 Jakub Jelinek <jakub@redhat.com>
2368 * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
2369 *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
2370 =Q constraints to +Q and into insn condition add check
2371 that operands[0] and operands[1] are equal.
2372 (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
2373 =Q constraints to +Q and into insn condition add check
2374 that operands[0] is equal to either operands[1] or operands[2].
2377 * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
2378 instead of handling MINUS_EXPR twice (once for each argument),
2379 canonicalize operand order and handle just once, use rtype where
2380 possible. Handle (A << B) | (A >> (-B & (Z - 1))).
2383 * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
2384 any values of __C while still being pattern recognizable as a simple
2387 2017-10-13 Richard Biener <rguenther@suse.de>
2389 PR tree-optimization/82451
2391 2017-10-02 Richard Biener <rguenther@suse.de>
2393 PR tree-optimization/82355
2394 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
2395 a mapping for the enclosing loop but avoid generating one for
2397 (copy_bb_and_scalar_dependences): Remove premature codegen
2398 error on PHIs in blocks duplicated into multiple places.
2399 * graphite-scop-detection.c
2400 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
2401 in the region use it as loop and nest to analyze the DR in.
2402 (try_generate_gimple_bb): Likewise.
2403 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
2404 (add_loop_constraints): For blocks in a loop not in the region
2405 create a dimension with a single iteration.
2406 * sese.h (gbb_loop_at_index): Remove assert.
2408 * cfgloop.c (loop_preheader_edge): For the loop tree root
2409 return the single successor of the entry block.
2410 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
2411 Reset the SCEV hashtable and niters.
2412 * graphite-scop-detection.c
2413 (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
2414 assert that we only have POLYNOMIAL_CHREC that vary in loops
2415 contained in the region.
2416 (scop_detection::graphite_can_represent_expr): Adjust.
2417 (scop_detection::stmt_has_simple_data_refs_p): For loops
2418 not in the region set loop to NULL. The nest is now the
2419 entry edge to the region.
2420 (try_generate_gimple_bb): Likewise.
2421 * sese.c (scalar_evolution_in_region): Adjust for
2422 instantiate_scev change.
2423 * tree-data-ref.h (graphite_find_data_references_in_stmt):
2424 Make nest parameter the edge into the region.
2425 (create_data_ref): Likewise.
2426 * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
2427 entry edge into a region and adjust instantiate_scev calls.
2428 (create_data_ref): Likewise.
2429 (graphite_find_data_references_in_stmt): Likewise.
2430 (find_data_references_in_stmt): Pass the loop preheader edge
2431 from the nest argument.
2432 * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
2433 parameter the edge into the region.
2434 (instantiate_parameters): Use the loop preheader edge as entry.
2435 * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
2437 (get_instantiated_value_entry): Make instantiate_below parameter
2438 the edge into the region.
2439 (instantiate_scev_name): Likewise. Adjust dominance checks,
2440 when we cannot use loop-based instantiation instantiate by
2441 walking use-def chains.
2442 (instantiate_scev_poly): Adjust.
2443 (instantiate_scev_binary): Likewise.
2444 (instantiate_scev_convert): Likewise.
2445 (instantiate_scev_not): Likewise.
2446 (instantiate_array_ref): Remove.
2447 (instantiate_scev_3): Likewise.
2448 (instantiate_scev_2): Likewise.
2449 (instantiate_scev_1): Likewise.
2450 (instantiate_scev_r): Do not blindly handle N-operand trees.
2451 Do not instantiate array-refs. Handle all constants and invariants.
2452 (instantiate_scev): Make instantiate_below parameter
2453 the edge into the region.
2454 (resolve_mixers): Use the loop preheader edge for the region
2455 parameter to instantiate_scev_r.
2456 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
2458 2017-10-13 Richard Biener <rguenther@suse.de>
2460 PR tree-optimization/82525
2461 * graphite-isl-ast-to-gimple.c
2462 (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
2464 (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
2465 Fail code generation when we cannot represent the isl integer.
2466 (binary_op_to_tree): Elide modulo operations that are no-ops
2467 in the type we code generate. Remove now superfluous code
2470 2017-10-13 Richard Biener <rguenther@suse.de>
2472 * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
2473 (scop_detection::harmful_loop_in_region): Remove premature
2474 IV type restriction.
2475 (scop_detection::graphite_can_represent_scev): We can handle
2476 pointer IVs just fine.
2478 2017-10-13 Alan Modra <amodra@gmail.com>
2480 * doc/extend.texi (Extended Asm <Clobbers>): Rename to
2481 "Clobbers and Scratch Registers". Add paragraph on
2482 alternative to clobbers for scratch registers and OpenBLAS
2485 2017-10-13 Alan Modra <amodra@gmail.com>
2487 * doc/extend.texi (Clobbers): Correct vax example. Delete old
2488 example of a memory input for a string of known length. Move
2489 commentary out of table. Add a number of new examples
2490 covering array memory inputs.
2492 2017-10-12 Martin Liska <mliska@suse.cz>
2494 PR tree-optimization/82493
2495 * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
2496 (test_range_functions): New function.
2497 (sbitmap_c_tests): Likewise.
2498 * selftest-run-tests.c (selftest::run_tests): Run new tests.
2499 * selftest.h (sbitmap_c_tests): New function.
2501 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
2503 2017-10-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2505 * config/rs6000/amo.h: Fix spacing issue.
2507 2017-10-12 Jakub Jelinek <jakub@redhat.com>
2510 * config/i386/i386.md (*ashl<mode>3_mask_1,
2511 *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
2512 *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
2515 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
2517 * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
2518 (profile_probability): Set max_probability
2519 to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
2521 * profile-count.c (profile_probability::differs_from_p): Do not
2522 rely on max_probaiblity == 10000
2524 2017-10-12 Jeff Law <law@redhat.com>
2526 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
2529 2017-10-12 Martin Sebor <msebor@redhat.com>
2533 * cgraphunit.c (maybe_diag_incompatible_alias): New function.
2534 (handle_alias_pairs): Call it.
2535 * common.opt (-Wattribute-alias): New option.
2536 * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
2537 * doc/invoke.texi (-Wattribute-alias): Document.
2539 2017-10-12 Vladimir Makarov <vmakarov@redhat.com>
2542 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
2544 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
2546 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
2547 (make_hard_regno_born, make_hard_regno_dead): Update
2548 bb_killed_pseudos and bb_gen_pseudos.
2550 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
2552 * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
2554 2017-10-12 Uros Bizjak <ubizjak@gmail.com>
2556 * config/alpha/alpha.c (alpha_split_conditional_move):
2557 Use std::swap instead of manually swapping.
2558 (alpha_stdarg_optimize_hook): Ditto.
2559 (alpha_canonicalize_comparison): Ditto.
2561 2017-10-12 Bin Cheng <bin.cheng@arm.com>
2563 * tree-loop-distribution.c (struct builtin_info): New struct.
2564 (struct partition): Refactor fields into struct builtin_info.
2565 (partition_free): Free struct builtin_info.
2566 (build_size_arg_loc, build_addr_arg_loc): Delete.
2567 (generate_memset_builtin, generate_memcpy_builtin): Get memory range
2568 information from struct builtin_info.
2569 (find_single_drs): New function refactored from classify_partition.
2570 Also moved builtin validity checks to this function.
2571 (compute_access_range, alloc_builtin): New functions.
2572 (classify_builtin_st, classify_builtin_ldst): New functions.
2573 (classify_partition): Refactor code into functions find_single_drs,
2574 classify_builtin_st and classify_builtin_ldst.
2575 (distribute_loop): Don't do runtime alias check when distributing
2577 (find_seed_stmts_for_distribution): New function.
2578 (pass_loop_distribution::execute): Refactor code finding seed
2579 stmts into above function. Support distribution for the innermost
2580 two-level loop nest. Adjust dump information.
2582 2017-10-12 Bin Cheng <bin.cheng@arm.com>
2584 * tree-loop-distribution.c: Adjust the general comment.
2585 (NUM_PARTITION_THRESHOLD): New macro.
2586 (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
2587 (classify_partition): Skip builtin pattern of loop nest's inner loop.
2588 (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
2589 in call to build_partition_graph.
2590 (finalize_partitions): New parameter. Make loop distribution more
2591 conservative by fusing more partitions.
2592 (distribute_loop): Don't do runtime alias check in case of loop nest
2594 (find_seed_stmts_for_distribution): New function.
2595 (prepare_perfect_loop_nest): New function.
2596 (pass_loop_distribution::execute): Refactor code finding seed stmts
2597 and loop nest into above functions. Support loop nest distribution.
2598 Adjust dump information accordingly.
2600 2017-10-12 Bin Cheng <bin.cheng@arm.com>
2602 * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
2603 and set PTYPE_SEQUENTIAL for merged partition.
2605 2017-10-12 Richard Biener <rguenther@suse.de>
2607 PR tree-optimization/69728
2609 2017-09-19 Richard Biener <rguenther@suse.de>
2611 PR tree-optimization/69728
2612 * graphite-sese-to-poly.c (schedule_error): New global.
2613 (add_loop_schedule): Handle empty domain by failing the
2615 (build_original_schedule): Handle schedule_error.
2617 * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
2618 domain by returning an unchanged schedule.
2620 2017-10-12 Jakub Jelinek <jakub@redhat.com>
2622 * genrecog.c (validate_pattern): For VEC_SELECT verify that
2623 CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
2625 2017-10-12 Aldy Hernandez <aldyh@redhat.com>
2627 * Makefile.in (TAGS): Merge all the *.def files into one pattern.
2630 2017-10-12 Jakub Jelinek <jakub@redhat.com>
2633 * expr.c (store_field): Don't optimize away bitsize == 0 store
2634 from CALL_EXPR with addressable return type.
2636 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
2638 * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
2639 * config/rs6000/rs6000.md (sel): Delete mode attribute.
2640 (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
2641 *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
2642 TARGET_ISEL instead of TARGET_ISEL<sel>.
2644 2017-10-11 David Edelsohn <dje.gcc@gmail.com>
2646 * config/rs6000/rs6000.c
2647 (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
2649 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
2651 * config/rs6000/predicates.md (zero_constant, all_ones_constant):
2653 (reg_or_cint_operand): Fix comment.
2654 (reg_or_zero_operand): New predicate.
2655 * config/rs6000/rs6000-protos.h (output_isel): Delete.
2656 * config/rs6000/rs6000.c (output_isel): Delete.
2657 * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
2658 instead of reg_or_cint_operand. Output instruction directly (not via
2660 (isel_unsigned_<mode>): Ditto.
2661 (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
2662 gpc_reg_operand. Add an instruction alternative for this. Output
2663 instruction directly.
2664 (*isel_reversed_unsigned_<mode>): Ditto.
2666 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
2668 * config/i386/i386.c (ix86_canonicalize_comparison): New function.
2669 (TARGET_CANONICALIZE_COMPARISON): Define.
2671 2017-10-11 Qing Zhao <qing.zhao@oracle.com>
2674 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
2675 Check whether the dest is REG before adding REG_EQUIV note.
2677 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
2680 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
2682 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
2683 (make_hard_regno_born, make_hard_regno_dead): Update
2684 bb_killed_pseudos and bb_gen_pseudos.
2686 2017-10-11 Nathan Sidwell <nathan@acm.org>
2688 * incpath.h (enum incpath_kind): Name enum, prefix values.
2689 (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
2690 * incpath.c (heads, tails): Use INC_MAX.
2691 (add_env_var_paths, add_standard_paths): Use incpath_kind.
2692 (merge_include_chains, split_quote_chain,
2693 register_include_chains): Update incpath_kind names.
2694 (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
2695 * config/darwin-c.c (add_system_framework_path): Update incpath_kind
2697 (add_framework_path, darwin_register_objc_includes): Likewise.
2698 * config/vms/vms-c.c (vms_c_register_includes): Likewise.
2700 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
2702 * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
2703 Do not use float_operator operator predicate.
2704 (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
2705 * config/i386/predicates.md (float_operator): Remove predicate.
2707 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
2709 * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
2710 (*jccxf_i387): Ditto.
2711 (*jcc<mode>_i387): Ditto.
2712 (*jccu<mode>_i387): Ditto.
2713 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
2714 (*jcc_*_i387 splitters): Remove.
2715 * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
2716 * config/i386/i386.c (ix86_split_fp_branch): Remove.
2717 * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
2720 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
2722 * profile-count.h (slow_safe_scale_64bit): New function.
2723 (safe_scale_64bit): New inline.
2724 (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
2725 * profile-count.c: Include wide-int.h
2726 (slow_safe_scale_64bit): New.
2728 2017-10-11 Nathan Sidwell <nathan@acm.org>
2730 * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
2731 HAS_DECL_ASSEMBLER_NAME_P.
2732 * gimple-expr.c (gimple_decl_printable_name: Check
2733 HAS_DECL_ASSEMBLER_NAME_P too.
2734 * ipa-utils.h (type_in_anonymous_namespace_p): Check
2735 DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
2736 (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
2737 * passes.c (rest_of_decl_compilation): Check
2738 HAS_DECL_ASSEMBLER_NAME_P too.
2739 * recog.c (verify_changes): Likewise.
2740 * tree-pretty-print.c (dump_decl_name): Likewise.
2741 * tree-ssa-structalias.c (alias_get_name): Likewise. Reimplement.
2743 * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
2744 (SET_DECL_ASSEMBLER_NAME): Use it.
2745 (DECL_ASSEMBLER_NAME_SET_P): Likewise.
2746 (COPY_DECL_ASSEMBLER_NAME): Likewise.
2747 * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
2749 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
2751 * config.gcc (i386, x86_64): Add extra objects.
2752 * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
2753 (ix86_min_insn_size): Declare.
2754 (ix86_issue_rate): Declare.
2755 (ix86_adjust_cost): Declare.
2756 (ia32_multipass_dfa_lookahead): Declare.
2757 (ix86_macro_fusion_p): Declare.
2758 (ix86_macro_fusion_pair_p): Declare.
2759 (ix86_bd_has_dispatch): Declare.
2760 (ix86_bd_do_dispatch): Declare.
2761 (ix86_core2i7_init_hooks): Declare.
2762 (ix86_atom_sched_reorder): Declare.
2763 * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
2764 (COSTS_N_BYTES): Move to x86-tune-costs.h.
2765 (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
2766 (rip_relative_addr_p): Rename to ...
2767 (ix86_rip_relative_addr_p): ... this one; export.
2768 (memory_address_length): Update.
2769 (ix86_issue_rate): Move to x86-tune-sched.c.
2770 (ix86_flags_dependent): Move to x86-tune-sched.c.
2771 (ix86_agi_dependent): Move to x86-tune-sched.c.
2772 (exact_dependency_1): Move to x86-tune-sched.c.
2773 (exact_store_load_dependency): Move to x86-tune-sched.c.
2774 (ix86_adjust_cost): Move to x86-tune-sched.c.
2775 (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
2776 (ix86_macro_fusion_p): Move to x86-tune-sched.c.
2777 (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
2778 (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
2779 (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
2780 (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
2781 (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
2782 (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
2783 (min_insn_size): Rename to ...
2784 (ix86_min_insn_size): ... this one; export.
2785 (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
2786 (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
2787 (core2i7_first_cycle_multipass_backtrack): Move to
2788 x86-tune-sched-core.c.
2789 (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
2790 (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
2791 (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
2792 (ix86_avoid_jump_mispredicts): Update.
2793 (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
2794 (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
2795 (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
2796 (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
2797 (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
2798 (MAX_INSN): Move to ix86-tune-sched-bd.c.
2799 (MAX_IMM): Move to ix86-tune-sched-bd.c.
2800 (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
2801 (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
2802 (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
2803 (MAX_LOAD): Move to ix86-tune-sched-bd.c.
2804 (MAX_STORE): Move to ix86-tune-sched-bd.c.
2805 (BIG): Move to ix86-tune-sched-bd.c.
2806 (enum dispatch_group): Move to ix86-tune-sched-bd.c.
2807 (enum insn_path): Move to ix86-tune-sched-bd.c.
2808 (get_mem_group): Move to ix86-tune-sched-bd.c.
2809 (is_cmp): Move to ix86-tune-sched-bd.c.
2810 (dispatch_violation): Move to ix86-tune-sched-bd.c.
2811 (is_branch): Move to ix86-tune-sched-bd.c.
2812 (is_prefetch): Move to ix86-tune-sched-bd.c.
2813 (init_window): Move to ix86-tune-sched-bd.c.
2814 (allocate_window): Move to ix86-tune-sched-bd.c.
2815 (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
2816 (is_end_basic_block): Move to ix86-tune-sched-bd.c.
2817 (process_end_window): Move to ix86-tune-sched-bd.c.
2818 (allocate_next_window): Move to ix86-tune-sched-bd.c.
2819 (find_constant): Move to ix86-tune-sched-bd.c.
2820 (get_num_immediates): Move to ix86-tune-sched-bd.c.
2821 (has_immediate): Move to ix86-tune-sched-bd.c.
2822 (get_insn_path): Move to ix86-tune-sched-bd.c.
2823 (get_insn_group): Move to ix86-tune-sched-bd.c.
2824 (count_num_restricted): Move to ix86-tune-sched-bd.c.
2825 (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
2826 (add_insn_window): Move to ix86-tune-sched-bd.c.
2827 (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
2828 (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
2829 (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
2830 (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
2831 (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
2832 (do_dispatch): Move to ix86-tune-sched-bd.c.
2833 (has_dispatch): Move to ix86-tune-sched-bd.c.
2834 * config/i386/t-i386: Add new object files.
2835 * config/i386/x86-tune-costs.h: New file.
2836 * config/i386/x86-tune-sched-atom.c: New file.
2837 * config/i386/x86-tune-sched-bd.c: New file.
2838 * config/i386/x86-tune-sched-core.c: New file.
2839 * config/i386/x86-tune-sched.c: New file.
2841 2017-10-11 Liu Hao <lh_mouse@126.com>
2843 * pretty-print.c [_WIN32] (colorize_init): Remove. Use
2844 the generic version below instead.
2845 (should_colorize): Recognize Windows consoles as terminals
2847 * pretty-print.c [__MINGW32__] (write_all): New function.
2848 [__MINGW32__] (find_esc_head): Likewise.
2849 [__MINGW32__] (find_esc_terminator): Likewise.
2850 [__MINGW32__] (eat_esc_sequence): Likewise.
2851 [__MINGW32__] (mingw_ansi_fputs): New function that handles
2853 (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
2856 2017-10-11 Richard Biener <rguenther@suse.de>
2858 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
2859 Properly call analyze_scalar_evolution with the loop of the stmt.
2861 2017-10-11 Richard Biener <rguenther@suse.de>
2863 * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
2864 * tree-core.h (tree_base): Add chrec_var union member.
2865 * tree.h (CHREC_VAR): Remove.
2866 (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
2867 * tree-chrec.h (build_polynomial_chrec): Adjust.
2868 * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
2869 * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
2871 2017-10-11 Marc Glisse <marc.glisse@inria.fr>
2873 * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
2874 * match.pd: ... here.
2875 ((T) X == (T) Y): Relax condition.
2877 2017-10-11 Bin Cheng <bin.cheng@arm.com>
2879 PR tree-optimization/82472
2880 * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
2882 (break_alias_scc_partitions): Update postorder number.
2884 2017-10-11 Martin Liska <mliska@suse.cz>
2887 * opts.c (parse_no_sanitize_attribute): Do not use error_value
2889 * opts.h (parse_no_sanitize_attribute): Remove last argument.
2891 2017-10-11 Martin Liska <mliska@suse.cz>
2893 * print-rtl.c (print_insn): Move declaration of idbuf
2894 to same scope as name.
2896 2017-10-11 Martin Liska <mliska@suse.cz>
2901 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
2904 2017-10-11 Martin Liska <mliska@suse.cz>
2907 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
2910 2017-10-11 Adhemerval Zanella <adhemerval.zanella@linaro.org>
2912 * config.gcc (default_gnu_indirect_function): Default to yes for
2913 arm*-*-linux* with glibc.
2915 2017-10-11 Richard Biener <rguenther@suse.de>
2917 * tree-scalar-evolution.c (get_scalar_evolution): Handle
2918 default-defs and types we do not want to analyze.
2919 (interpret_loop_phi): Replace unreachable code with an assert.
2920 (compute_scalar_evolution_in_loop): Remove and inline ...
2921 (analyze_scalar_evolution_1): ... here, replacing condition with
2922 what makes the intent clearer. Remove handling of cases
2923 get_scalar_evolution now handles.
2925 2017-10-10 Jim Wilson <wilson@tuliptree.org>
2927 PR rtl-optimization/81434
2928 * haifa-sched.c (prune_ready_list): Init min_cost_group to 0. Update
2929 comment for main loop. In sched_group_found if, also add checks for
2930 pass and min_cost_group.
2932 2017-10-10 Segher Boessenkool <segher@kernel.crashing.org>
2934 * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
2935 (rs6000_insn_cost): New function.
2936 * config/rs6000/rs6000.md (cost): New attribute.
2938 2017-10-10 Jakub Jelinek <jakub@redhat.com>
2939 H.J. Lu <hongjiu.lu@intel.com>
2943 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
2944 OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
2945 __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
2946 (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
2947 to OPTION_MASK_ISA_AVX512VL - builtins that have both
2948 OPTION_MASK_ISA_MMX and some other bit set require both
2949 mmx and the ISAs without the mmx bit.
2950 * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
2951 __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
2952 __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
2953 __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
2954 __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
2955 __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
2956 __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
2957 __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
2958 __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
2959 __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
2960 __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
2961 __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
2962 __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
2963 __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
2964 Add OPTION_MASK_ISA_MMX.
2966 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org>
2968 * config.gcc (armv7*-*-freebsd*): New target.
2969 (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
2971 2017-10-10 Jan Hubicka <hubicka@ucw.cz>
2973 * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
2974 X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
2977 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
2979 * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
2980 a template parameter.
2981 (WIDE_INT_REF_FOR): Update accordingly.
2982 * tree.h (wi::int_traits <const_tree>): Delete.
2983 (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
2984 (wi::to_widest, wi::to_offset): Use them. Expand commentary.
2985 (wi::tree_to_wide_ref): New typedef.
2986 (wi::to_wide): New function.
2987 * calls.c (get_size_range): Use wi::to_wide when operating on
2989 * cgraph.c (cgraph_node::create_thunk): Likewise.
2990 * config/i386/i386.c (ix86_data_alignment): Likewise.
2991 (ix86_local_alignment): Likewise.
2992 * dbxout.c (stabstr_O): Likewise.
2993 * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
2994 * expr.c (const_vector_from_tree): Likewise.
2995 * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
2996 * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
2997 (fold_negate_expr_1, int_const_binop_1, const_binop)
2998 (fold_convert_const_int_from_real, optimize_bit_field_compare)
2999 (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
3000 (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
3001 (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
3002 (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
3003 (fold_not_const, round_up_loc): Likewise.
3004 * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
3005 * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
3006 (alloca_call_type): Likewise.
3007 * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
3008 * godump.c (go_output_typedef): Likewise.
3009 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
3010 * internal-fn.c (get_min_precision): Likewise.
3011 * ipa-cp.c (ipcp_store_vr_results): Likewise.
3012 * ipa-polymorphic-call.c
3013 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
3014 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
3015 (ipa_modify_call_arguments): Likewise.
3016 * match.pd: Likewise.
3017 * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
3018 * print-tree.c (print_node_brief, print_node): Likewise.
3019 * stmt.c (expand_case): Likewise.
3020 * stor-layout.c (layout_type): Likewise.
3021 * tree-affine.c (tree_to_aff_combination): Likewise.
3022 * tree-cfg.c (group_case_labels_stmt): Likewise.
3023 * tree-data-ref.c (dr_analyze_indices): Likewise.
3024 (prune_runtime_alias_test_list): Likewise.
3025 * tree-dump.c (dequeue_and_dump): Likewise.
3026 * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
3027 * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
3028 * tree-pretty-print.c (dump_generic_node): Likewise.
3029 * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
3030 (simple_iv_with_niters): Likewise.
3031 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
3032 * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
3033 * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
3034 * tree-ssa-loop-niter.c (split_to_var_and_offset)
3035 (refine_value_range_using_guard, number_of_iterations_ne_max)
3036 (number_of_iterations_lt_to_ne, number_of_iterations_lt)
3037 (get_cst_init_from_scev, record_nonwrapping_iv)
3038 (scev_var_range_cant_overflow): Likewise.
3039 * tree-ssa-phiopt.c (minmax_replacement): Likewise.
3040 * tree-ssa-pre.c (compute_avail): Likewise.
3041 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
3042 (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
3043 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
3044 * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
3045 * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
3046 * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
3047 (dump_case_nodes, try_switch_expansion): Likewise.
3048 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
3049 (vect_do_peeling): Likewise.
3050 * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
3051 * tree-vect-stmts.c (vectorizable_load): Likewise.
3052 * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
3053 (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
3054 (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
3055 (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
3056 (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
3057 (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
3058 (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
3059 (evrp_dom_walker::before_dom_children): Likewise.
3060 * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
3061 (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
3062 (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
3063 (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
3064 (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
3065 (get_range_pos_neg): Likewise.
3066 * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
3067 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
3068 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
3069 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
3070 * config/avr/avr.c (avr_fold_builtin): Likewise.
3071 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
3072 * config/msp430/msp430.c (msp430_attr): Likewise.
3073 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
3074 * config/powerpcspe/powerpcspe-c.c
3075 (altivec_resolve_overloaded_builtin): Likewise.
3076 * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
3077 (rs6000_expand_ternop_builtin): Likewise.
3078 * config/rs6000/rs6000-c.c
3079 (altivec_resolve_overloaded_builtin): Likewise.
3080 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
3081 (rs6000_expand_ternop_builtin): Likewise.
3082 * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
3084 2017-10-10 Bin Cheng <bin.cheng@arm.com>
3086 * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
3087 when copying loop nest with only one inner loop.
3089 2017-10-10 Richard Biener <rguenther@suse.de>
3091 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
3092 blocks if SCEV is active.
3093 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
3095 (analyze_scalar_evolution): Handle cached evolutions the obvious way.
3096 (scev_initialize): Assert we are not yet initialized.
3098 2017-10-10 Bin Cheng <bin.cheng@arm.com>
3100 * tree-loop-distribution.c (generate_loops_for_partition): Remove
3101 inner loop's exit stmt by making it always exit the loop, otherwise
3102 we would generate an infinite empty loop.
3104 2017-10-10 Bin Cheng <bin.cheng@arm.com>
3106 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
3107 renaming variables in new preheader if it's deleted.
3109 2017-10-10 Bin Cheng <bin.cheng@arm.com>
3111 * tree-loop-distribution.c (struct partition): Remove unused field
3112 loops of the structure.
3113 (partition_alloc, partition_free): Ditto.
3114 (build_rdg_partition_for_vertex): Ditto.
3116 2017-10-09 Jeff Law <law@redhat.com>
3118 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
3119 return type to match prototype and documentation.
3121 2010-10-09 Segher Boessenkool <segher@kernel.crashing.org>
3123 * config/rs6000/rs6000.c (processor_costs): Move to ...
3124 * config/rs6000/rs6000.h: ... here.
3125 (rs6000_cost): Declare.
3127 2017-10-09 Eric Botcazou <ebotcazou@adacore.com>
3129 * except.c (setjmp_fn): New global variable.
3130 (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
3131 (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
3132 if DONT_USE_BUILTIN_SETJMP is defined.
3134 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
3136 * target.def (insn_cost): New hook.
3137 * doc/tm.texi.in (TARGET_INSN_COST): New hook.
3138 * doc/tm.texi: Regenerate.
3139 * rtlanal.c (insn_cost): Use the new hook.
3141 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
3143 * combine.c (combine_validate_cost): Compute the new insn_cost,
3144 not just pattern_cost.
3145 (try_combine): Adjust comment.
3147 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
3149 * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
3151 * combine.c (uid_insn_cost): Adjust comment.
3152 (combine_validate_cost): Adjust comment. Use pattern_cost instead
3154 (combine_instructions): Use insn_cost instead of insn_rtx_cost.
3155 * dse.c (find_shift_sequence): Ditto.
3156 * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
3157 (bb_valid_for_noce_process_p): Use pattern_cost.
3158 * rtl.h (insn_rtx_cost): Delete.
3159 (pattern_cost): New prototype.
3160 (insn_cost): New prototype.
3161 * rtlanal.c (insn_rtx_cost): Rename to...
3162 (pattern_cost): ... this.
3165 2017-10-09 Uros Bizjak <ubizjak@gmail.com>
3167 * config/i386/i386.md (*jcc_2): Remove insn pattern.
3168 (*jcc<mode>_0_r_i387): Ditto.
3169 (*jccxf_r_i387): Ditto.
3170 (*jcc<mode>_r_i387): Ditto.
3171 (*jccu<mode>_r_i387): Ditto.
3172 (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
3173 (*jcc): Rename from *jcc_1.
3175 2017-10-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3177 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
3178 deferred rescans after the lvx/stvx recombination pre-pass.
3180 2017-10-09 Michael Meissner <meissner@linux.vnet.ibm.com>
3182 * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
3183 memory operation instruction support.
3184 * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
3185 (rs6000-ibm-aix[789]*): Likewise.
3186 * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
3187 Document new functions.
3189 2017-10-09 Richard Biener <rguenther@suse.de>
3191 PR tree-optimization/82397
3192 * tree-data-ref.c (data_ref_compare_tree): Make sure to return
3193 equality only for semantically equal trees.
3195 2017-10-09 Richard Biener <rguenther@suse.de>
3197 PR tree-optimization/82449
3198 * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
3199 * tree-chrec.h (evolution_function_is_constant_p): Adjust to
3200 allow constant addresses.
3201 * tree-chrec.c (scev_is_linear_expression): Constant evolutions
3204 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3206 * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
3209 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3212 * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
3215 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3218 * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
3220 2017-10-09 Jakub Jelinek <jakub@redhat.com>
3223 * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
3224 s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
3226 2017-10-09 Richard Sandiford <richard.sandiford@linaro.org>
3228 * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
3229 (WI_BINARY_PREDICATE_RESULT): Likewise.
3230 (wi::binary_traits::operator_result): New type.
3231 (wi::binary_traits::predicate_result): Likewise.
3232 (generic_wide_int::operator~, unary generic_wide_int::operator-)
3233 (generic_wide_int::operator==, generic_wide_int::operator!=)
3234 (generic_wide_int::operator&, generic_wide_int::and_not)
3235 (generic_wide_int::operator|, generic_wide_int::or_not)
3236 (generic_wide_int::operator^, generic_wide_int::operator+
3237 (binary generic_wide_int::operator-, generic_wide_int::operator*):
3239 (operator~, unary operator-, operator==, operator!=, operator&)
3240 (operator|, operator^, operator+, binary operator-, operator*): New
3242 * expr.c (get_inner_reference): Use wi::bit_and_not.
3243 * fold-const.c (fold_binary_loc): Likewise.
3244 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
3245 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3246 (bit_value_binop): Likewise.
3247 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
3248 * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
3249 (extract_range_from_binary_expr_1): Likewise.
3250 (masked_increment): Likewise.
3251 (simplify_bit_ops_using_ranges): Likewise.
3253 2017-10-09 Martin Jambor <mjambor@suse.cz>
3256 * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
3257 * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
3258 (hsa_type_for_scalar_tree_type): Use it. Always force min32int for
3260 (hsa_fixup_mov_insn_type): New function.
3261 (hsa_op_with_type::get_in_type): Use it.
3262 (hsa_build_append_simple_mov): Likewise. Allow sub-32bit
3263 immediates in an assert.
3264 (hsa_op_with_type::extend_int_to_32bit): New method.
3265 (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
3266 types. Convert to dest type if necessary.
3267 (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
3268 (reg_for_gimple_ssa): Pass false as min32int to
3269 hsa_type_for_scalar_tree_type.
3270 (gen_hsa_addr): Fixup type when creating addresable temporary.
3271 (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
3272 (gen_hsa_unary_operation): Extend operands and convert to dest type if
3273 necessary. Call hsa_fixup_mov_insn_type.
3274 (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
3275 extend operands and convert to dest type if necessary.
3276 (gen_hsa_insns_for_operation_assignment): Extend operands and convert
3277 to dest type if necessary.
3278 (set_output_in_type): Call hsa_fixup_mov_insn_type. Just ude dest
3279 if conversion nt necessary and size matches.
3280 (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
3281 to dest type if necessary.
3282 (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
3283 (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
3285 (gen_hsa_clrsb): Likewise.
3286 (gen_hsa_ffs): Likewise.
3287 (gen_hsa_divmod): Extend operands and convert to dest type if
3289 (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
3291 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
3293 * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
3294 Remove empty default arguments. Use a brace block as output
3296 (conditional return): Ditto.
3298 (indirect_jump): Ditto. Use b%T0 instead of bctr/blr.
3299 (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
3301 (group_ending_nop): Ditto.
3302 (doloop_end): Ditto.
3303 (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
3304 (splitters for those): Ditto.
3306 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
3308 * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
3309 a conditional jump (and the compare for it) so that pc_rtx is the
3311 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
3312 for the deleted and renamed ctr<mode>_internal[234] patterns.
3313 * config/rs6000/rs6000.md: Delete second conditional branch pattern.
3314 Delete second conditional return pattern.
3315 (ctr<mode>_internal2): Delete this second bdnz pattern.
3316 (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
3317 (ctr<mode>_internal4): Delete this second bdz pattern.
3319 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
3321 * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
3322 (always_initialized_rtx_for_ssa_name_p): New predicate.
3323 * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
3324 (finish_out_of_ssa): Free new field of SA.
3325 * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
3326 * tree-ssa-coalesce.c: Include tree-ssa.h.
3327 (get_parm_default_def_partitions): Remove extern keyword.
3328 (get_undefined_value_partitions): New function.
3329 * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
3330 not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
3332 * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
3334 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
3336 * builtins.def (BUILT_IN_SETJMP): Revert latest change.
3338 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
3340 * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
3341 for targets that preffer 128bit.
3343 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
3345 * config/i386/i386.c (has_dispatch): Disable for Ryzen.
3347 2017-10-08 Olivier Hainque <hainque@adacore.com>
3349 * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
3350 on the target mem instead of RTX_FRAME_RELATED_P on the insn to
3352 (thumb_set_return_address): Likewise.
3354 2017-10-08 Olivier Hainque <hainque@adacore.com>
3356 * common/config/arm/arm-common.c (arm_except_unwind_info):
3357 Handle DWARF2_UNWIND_INFO.
3359 2017-10-07 Michael Collison <michael.collison@arm.com>
3361 * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
3364 2017-10-07 Eric Botcazou <ebotcazou@adacore.com>
3366 * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
3367 of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
3368 * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
3369 defined, force the creation of a new block for a dispatch label.
3371 2017-10-07 Jan Hubicka <hubicka@ucw.cz>
3373 * invoke.texi (Wsuggest-attribute=cold): Document.
3374 * common.opt (Wsuggest-attribute=cold): New
3375 * ipa-pure-const.c (warn_function_cold): New function.
3376 * predict.c (compute_function_frequency): Use it.
3377 * predict.h (warn_function_cold): Declare.
3379 2017-10-06 Jan Hubicka <hubicka@ucw.cz>
3381 * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
3384 2017-10-06 Martin Liska <mliska@suse.cz>
3386 * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
3387 keyword for member functions.
3388 (struct sanopt_tree_couple): New struct.
3389 (struct sanopt_tree_couple_hash): New function.
3390 (struct sanopt_ctx): Add new hash_map.
3391 (has_dominating_ubsan_ptr_check): New function.
3392 (record_ubsan_ptr_check_stmt): Likewise.
3393 (maybe_optimize_ubsan_ptr_ifn): Likewise.
3394 (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
3395 (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
3397 2017-10-06 Sudakshina Das <sudi.das@arm.com>
3400 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
3401 aarch64_simd_valid_immediate on CONST_VECTORs.
3402 (aarch64_reg_or_bic_imm): Likewise.
3404 2017-10-06 Wilco Dijkstra <wdijkstr@arm.com>
3406 PR rtl-optimization/82396
3407 * haifa-sched.c (ready_sort_real): Disable qsort checking.
3409 2017-10-06 Sebastian Pop <sebpop@gmail.com>
3411 * graphite-dependences.c (scop_get_reads): Move code to...
3412 (scop_get_must_writes): Move code to...
3413 (scop_get_may_writes): Move code to...
3414 (scop_get_reads_and_writes): ... here.
3415 (scop_get_dependences): Call scop_get_reads_and_writes.
3417 2017-10-06 Jakub Jelinek <jakub@redhat.com>
3419 PR tree-optimization/82434
3420 * fold-const.h (can_native_encode_type_p,
3421 can_native_encode_string_p): Remove.
3422 * fold-const.c (native_encode_int): Formatting fixes. If ptr is NULL,
3423 don't encode anything, just return what would be otherwise returned.
3424 (native_encode_fixed, native_encode_complex, native_encode_vector):
3426 (native_encode_string): Likewise. Inline by hand
3427 can_native_encode_string_p.
3428 (can_native_encode_type_p): Remove.
3429 (can_native_encode_string_p): Remove.
3430 * tree-vect-stmts.c (vectorizable_store): Instead of testing just
3431 STRING_CSTs using can_native_encode_string_p, test all
3432 CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
3433 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
3434 argument from native_encode_expr.
3435 (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
3436 (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
3439 2017-10-06 Richard Biener <rguenther@suse.de>
3441 PR tree-optimization/82397
3442 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
3443 operand_equal_p but rely on data_ref_compare_tree for detecting
3445 (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
3446 to match up with dr_group_sort_cmp.
3448 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3451 * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
3453 * config/s390/s390-builtin-types.def: Regenerate.
3455 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3458 * config/s390/s390-builtin-types.def: Regenerate.
3459 * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
3460 Change flag from B_VXE to B_VX.
3461 (s390_vec_min_dbl): Remove B_VXE flag.
3463 2017-10-06 Richard Biener <rguenther@suse.de>
3465 * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
3466 (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
3467 translate_isl_ast_to_gimple::is_valid_rename,
3468 translate_isl_ast_to_gimple::get_rename,
3469 translate_isl_ast_to_gimple::get_def_bb_for_const,
3470 translate_isl_ast_to_gimple::get_new_name,
3471 translate_isl_ast_to_gimple::collect_all_ssa_names,
3472 translate_isl_ast_to_gimple::copy_loop_phi_args,
3473 translate_isl_ast_to_gimple::collect_all_ssa_names,
3474 translate_isl_ast_to_gimple::copy_loop_phi_args,
3475 translate_isl_ast_to_gimple::copy_loop_phi_nodes,
3476 translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
3477 translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
3478 translate_isl_ast_to_gimple::copy_loop_close_phi_args,
3479 translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
3480 translate_isl_ast_to_gimple::copy_cond_phi_args,
3481 translate_isl_ast_to_gimple::copy_cond_phi_nodes,
3482 translate_isl_ast_to_gimple::edge_for_new_close_phis,
3483 translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
3484 translate_isl_ast_to_gimple::rename_uses,
3485 translate_isl_ast_to_gimple::rename_all_uses): Remove.
3486 (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
3487 (set_rename_for_each_def): Likewise.
3488 (graphite_copy_stmts_from_block): Handle debug stmt resetting
3489 here. Handle rewriting SCEV analyzable uses here.
3490 (copy_bb_and_scalar_dependences): Generate code for PHI
3492 (graphite_regenerate_ast_isl): Adjust.
3493 * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
3494 (add_write, add_read): New functions.
3495 (build_cross_bb_scalars_def): Use it and simplify.
3496 (build_cross_bb_scalars_use): Likewise.
3497 (graphite_find_cross_bb_scalar_vars): Inline into...
3498 (try_generate_gimple_bb): ...here. Add dependences for PHIs,
3499 simulating out-of-SSA. Compute liveout and add dependencies.
3500 (build_scops): Force an empty entry block.
3501 * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
3503 (sese_build_liveouts): Declare.
3504 (sese_trivially_empty_bb_p): Likewise.
3505 * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
3506 compute liveout and debug_liveout.
3507 (sese_bad_liveouts_use): Remove.
3508 (sese_reset_debug_liveouts_bb): Likewise.
3509 (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
3510 (sese_build_liveouts): Build liveout and debug_liveout and store
3512 (new_sese_info): Adjust.
3513 (free_sese_info): Likewise.
3514 (sese_insert_phis_for_liveouts): Reset debug stmts from here,
3515 do not build liveout here.
3516 (move_sese_in_condition): Adjust region entry.
3517 (scev_analyzable_p): Match up with chrec_apply requirements.
3518 (sese_trivially_empty_bb_p): New.
3519 * tree-into-ssa.c (get_reaching_def): Properly support generating
3520 default-defs for incremental rewrite of anonymous names.
3522 2017-10-06 Richard Biener <rguenther@suse.de>
3524 * graphite-sese-to-poly.c (extract_affine): For casts increasing
3525 precision do not perform modulo reduction.
3527 2017-10-06 Richard Biener <rguenther@suse.de>
3529 PR tree-optimization/82436
3530 * tree-vect-slp.c (vect_supported_load_permutation_p): More
3531 conservatively choose the vectorization factor when checking
3532 whether we can perform the required load permutation.
3533 (vect_transform_slp_perm_load): Assert when we may not fail.
3535 2017-10-05 Segher Boessenkool <segher@kernel.crashing.org>
3537 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
3538 message for incompatible -msdata=* and -mcall-* options.
3540 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
3542 * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
3543 rate for post-reload scheduling.
3545 2017-10-05 Tamar Christina <tamar.christina@arm.com>
3547 * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
3549 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
3551 * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
3552 to improve monte carlo in scimark.
3554 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
3556 * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
3557 pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
3558 athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
3559 pentium4_cost, nocona_cost): Set reassociation width to 1.
3560 (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
3561 width to 2 for fp operations and 1 otherwise.
3562 (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
3564 (atom_cost): Set reassociation width to 2.
3565 (slm_cost, generic_cost): Set fp reassociation width
3566 to 2 and 1 otherwise.
3567 (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
3568 (core_cost): Set fp reassociation width to 4 and vector to 2.
3569 (ix86_reassociation_width): Rewrite using cost table; special case
3570 plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
3571 and TARGET_AVX128_OPTIMAL.
3572 * config/i386/i386.h (processor_costs): Add
3573 reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
3574 (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
3575 TARGET_REASSOC_FP_TO_PARALLEL): Remove.
3576 * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
3577 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
3578 (X86_TUNE_VECTOR_PARALLEL_EXECUTION): Remove.
3580 2017-10-05 Nathan Sidwell <nathan@acm.org>
3582 * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
3584 2017-10-05 Tamar Christina <tamar.christina@arm.com>
3586 * config/arm/arm.c (arm_test_fpu_data): New.
3587 (arm_run_selftests): Call arm_test_fpu_data.
3589 2017-10-04 Nathan Sidwell <nathan@acm.org>
3591 * toplev.c (toplev::main): Remove excess parens on pretty_printer
3593 * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
3595 2017-10-04 Sudakshina Das <sudi.das@arm.com>
3597 * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
3598 check type for aarch64_simd_valid_immediate.
3599 (aarch64_output_simd_mov_immediate): Update prototype.
3600 (aarch64_simd_valid_immediate): Update prototype.
3601 * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
3602 support for ORR-immediate.
3603 (and<mode>3): modified pattern to add support for BIC-immediate.
3604 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
3605 now checks for valid immediate for BIC and ORR based on new enum
3607 (aarch64_output_simd_mov_immediate): Function now used to output
3608 BIC/ORR imm as well based on new enum argument.
3609 * config/aarch64/constraints.md (Do): New vector immediate constraint.
3611 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
3612 (aarch64_reg_or_bic_imm): Likewise.
3614 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3616 * config/s390/vx-builtins.md ("vec_mergeh<mode>")
3617 ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
3619 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
3623 PR rtl-optimization/82396
3624 * haifa-sched.c (autopref_multipass_init): Simplify
3626 (autopref_rank_data): Simplify sort order.
3627 * sched-int.h (autopref_multipass_data_): Remove
3628 multi_mem_insn_p, min_offset and max_offset.
3630 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3632 * doc/sourcebuild.texi: Document vect_peeling_profitable.
3634 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3636 * doc/sourcebuild.texi: Document vect_intdouble_cvt and
3639 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3641 * doc/sourcebuild.texi: Document vect_long_mult.
3643 2017-10-04 Richard Sandiford <richard.sandiford@linaro.org>
3645 PR tree-optimization/82413
3646 * fold-const.c (build_range_check): Use widest_int when comparing
3647 the maximum ETYPE value with HIGH.
3649 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
3651 PR rtl-optimization/82396
3652 * haifa-sched.c (autopref_multipass_init): Simplify
3654 (autopref_rank_data): Simplify sort order.
3655 * sched-int.h (autopref_multipass_data_): Remove
3656 multi_mem_insn_p, min_offset and max_offset.
3658 2017-10-04 Jakub Jelinek <jakub@redhat.com>
3660 PR tree-optimization/82381
3661 * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
3662 oeN->rank first. Return 1 or -1 if one op is SSA_NAME and the other
3665 PR tree-optimization/82374
3666 * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
3667 DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
3668 DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
3669 current_function_decl to the new decl.
3671 2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
3673 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
3674 helper macro for IEEE float128 hardware built-in functions.
3675 (SQRTF128_ODD): Add built-in functions with the round-to-odd
3677 (TRUNCF128_ODD): Likewise.
3678 (ADDF128_ODD): Likewise.
3679 (SUBF128_ODD): Likewise.
3680 (MULF128_ODD): Likewise.
3681 (DIVF128_ODD): Likewise.
3682 (FMAF128_ODD): Likewise.
3683 * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
3684 UNSPEC_TRUNC_ROUND_TO_ODD.
3685 (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
3686 (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
3687 floating point round to odd instructions.
3688 (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
3689 (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
3690 (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
3691 (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
3692 (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
3693 (trunc<mode>sf2_hw): Change the truncate with round to odd
3694 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
3695 (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
3696 to odd hardware instructions.
3697 (sub<mode>3_odd): Likewise.
3698 (mul<mode>3_odd): Likewise.
3699 (div<mode>3_odd): Likewise.
3700 (sqrt<mode>2_odd): Likewise.
3701 (fma<mode>4_odd): Likewise.
3702 (fms<mode>4_odd): Likewise.
3703 (nfma<mode>4_odd): Likewise.
3704 (nfms<mode>4_odd): Likewise.
3705 (trunc<mode>df2_odd): Change the truncate with round to odd
3706 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. Add a generator
3708 * doc/extend.texi (PowerPC built-in functions): Update documentation
3709 for existing IEEE float128-bit built-in functions. Add built-in
3710 functions that generate the IEEE 128-bit floating point round to
3713 2017-10-03 Segher Boessenkool <segher@kernel.crashing.org>
3715 PR rtl-optimization/77729
3716 * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
3717 to (X&(C1&~C2))|C2 transformations.
3719 2017-10-03 Martin Jambor <mjambor@suse.cz>
3721 PR tree-optimization/82363
3722 * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
3723 mismatch, mark lacc written regardless of racc.
3725 2017-10-03 Jakub Jelinek <jakub@redhat.com>
3727 PR tree-optimization/82381
3728 * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
3729 stmt_to_insert nor wheather SSA_NAMEs are default defs.
3730 Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
3731 fallthrough into reassoc_stmt_dominates_stmt_p.
3734 * combine.c (combine_instructions): Don't combine in unreachable
3737 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
3740 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
3741 function to not use the have_cpu variable. Do not set cpu_index,
3742 rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
3744 (rs6000_valid_attribute_p): Remove duplicate initializations of
3745 old_optimize and func_optimize.
3746 (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
3747 (rs6000_activate_target_options): Make global.
3748 * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
3751 2017-10-02 Jakub Jelinek <jakub@redhat.com>
3753 * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
3754 if *poffset + *pmax_size overflows in HOST_WIDE_INT.
3755 Set *poffset to 0 and *psize and *pmax_size to -1 if
3756 *poffset + *psize overflows in HOST_WIDE_INT.
3758 PR tree-optimization/82387
3759 PR tree-optimization/82388
3760 PR tree-optimization/82389
3761 * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
3762 instead of live_bytes non-NULL.
3764 2017-10-02 Georg-Johann Lay <avr@gjlay.de>
3767 * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
3770 2017-10-02 Richard Biener <rguenther@suse.de>
3772 * graphite-isl-ast-to-gimple.c (set_codegen_error): With
3773 -fchecking and --param graphite-allow-codegen-errors=0 ICE.
3774 * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
3776 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
3778 * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
3779 requested precision matches the type's.
3780 * calls.c (alloc_max_size): Calculate the new candidate size as
3781 a widest_int and use wi::to_widest when comparing it with the
3782 current candidate size.
3783 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
3784 zero rather than integer_zero_node.
3785 * match.pd: Check for a no-op conversion before using wi::add
3786 rather than after. Use tree_to_uhwi when summing small shift
3787 counts into an unsigned int.
3789 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
3790 Alan Hayward <alan.hayward@arm.com>
3791 David Sherwood <david.sherwood@arm.com>
3794 * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
3795 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
3796 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
3797 POINTER_AND_FP_REGS.
3799 2017-10-02 Richard Biener <rguenther@suse.de>
3801 PR tree-optimization/82355
3802 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
3803 a mapping for the enclosing loop but avoid generating one for
3805 (copy_bb_and_scalar_dependences): Remove premature codegen
3806 error on PHIs in blocks duplicated into multiple places.
3807 * graphite-scop-detection.c
3808 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
3809 in the region use it as loop and nest to analyze the DR in.
3810 (try_generate_gimple_bb): Likewise.
3811 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
3812 (add_loop_constraints): For blocks in a loop not in the region
3813 create a dimension with a single iteration.
3814 * sese.h (gbb_loop_at_index): Remove assert.
3816 2017-10-01 Kevin Buettner <kevinb@redhat.com>
3818 * omp-expand.c (adjust_context_scope): New function.
3819 (expand_parallel_call): Call adjust_context_scope.
3821 2017-10-01 Jeff Law <law@redhat.com>
3823 * tree-ssa-dom.c (optimize_stmt): Make this a method within the
3824 dom_opt_dom_walker class with direct access to private members.
3825 Add comments. Call test_for_singularity.
3826 (dom_opt_dom_walker::before_dom_children): Corresponding changes.
3827 (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
3828 m_dummy_cond anymore.
3829 (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
3831 (pass_dominator:execute): Build the dummy_cond here and pass it
3832 to the dom_opt_dom_walker ctor.
3833 (test_for_singularity): New function.
3835 2017-09-30 Krister Walfridsson <krister.walfridsson@gmail.com>
3836 Maya Rashish <coypu@sdf.org>
3838 * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
3839 netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
3840 (alpha*-*-netbsd*) Use nbsd_tm_file.
3841 (arm*-*-netbsdelf*) Likewise.
3842 (i[34567]86-*-netbsdelf*) Likewise.
3843 (x86_64-*-netbsd*) Likewise.
3844 (mips*-*-netbsd*) Likewise.
3845 (powerpc-*-netbsd*) Likewise.
3846 (sh*-*-netbsd*) Likewise.
3847 (sparc-*-netbsdelf*) Likewise.
3848 (sparc64-*-netbsd*) Likewise.
3849 (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
3851 (vax-*-netbsdelf*) Likewise.
3852 * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
3853 (UINT_FAST8_TYPE) Likewise.
3854 (INT_FAST16_TYPE) Check CHAR_FAST16.
3855 (UINT_FAST16_TYPE) Likewise.
3857 2017-09-30 Jakub Jelinek <jakub@redhat.com>
3860 * config/i386/i386.md
3861 (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
3862 (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
3863 *divmodsi4_zext_2): New define_insn_and_split.
3864 (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
3865 (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
3866 (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
3867 *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
3868 New define_insn_and_split.
3869 (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
3870 * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
3871 operands[1] having DImode when mode is SImode.
3873 * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
3874 always SImode for DIV and MOD in REG_EQUAL notes.
3876 2017-09-29 Yury Gribov <tetra2005@gmail.com>
3879 * match.pd: Fix handling of NaNs in pattern.
3881 2017-09-29 Jeff Law <law@redhat.com>
3883 * sbitmap.c (bitmap_bit_in_range_p): New function.
3884 * sbitmap.h (bitmap_bit_in_range_p): Prototype.
3885 * tree-ssa-dse.c (live_bytes_read): New function.
3886 (dse_classify_store): Ignore reads of dead bytes.
3888 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
3889 typos and whitespace errors.
3890 * config/i386/predicates.md (address_no_seg_operand): Likewise.
3891 * config/s390/s390.c (s390_emit_prologue): Likewise.
3893 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
3896 * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
3897 with a symbol for LRA.
3899 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
3901 PR rtl-optimization/82338
3902 * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
3904 2017-09-29 Alexander Monakov <amonakov@ispras.ru>
3906 * genmodes.c (calc_wider_mode): Suppress qsort macro.
3907 * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
3908 (qsort_chk): Declare.
3909 * vec.c [CHECKING_P] (qsort_chk_error): New static function.
3910 (qsort_chk): New function.
3912 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3914 PR tree-optimization/82337
3915 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
3916 phi definition if the PHI result appears in an abnormal PHI.
3917 (find_basis_for_base_expr): Don't record a basis if the LHS of the
3918 basis appears in an abnormal PHI.
3920 2017-09-29 Richard Biener <rguenther@suse.de>
3922 * graphite-isl-ast-to-gimple.c
3923 (translate_isl_ast_to_gimple::set_codegen_error): New function.
3924 (binary_op_to_tree): Use it.
3925 (get_rename_from_scev): Likewise.
3926 (copy_loop_phi_nodes): Likewise.
3927 (copy_bb_and_scalar_dependences): Likewise.
3928 (translate_pending_phi_nodes): Likewise.
3930 2017-09-29 Jakub Jelinek <jakub@redhat.com>
3933 * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
3934 for movabsq $(i32 << shift), r64.
3936 2017-09-28 Uros Bizjak <ubizjak@gmail.com>
3938 * config/i386/i386.c (ix86_print_operand_address_as): Do not check
3939 index when encoding %esp as %rsp to avoid 0x67 prefix.
3941 2017-09-28 Sergey Shalnov <Sergey.Shalnov@intel.com>
3943 * config/i386/i386.md (*movsf_internal, *movdf_internal):
3944 Return 256-bit AVX modes for TARGET_PREFER_AVX256.
3946 2017-09-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
3948 * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
3949 Extensions with more than 16 double VFP registers.
3950 (cmse_nonsecure_entry_clear_before_return): Remove second entry of
3951 to_clear_mask and all code related to it. Replace the remaining
3952 entry by a sbitmap and adapt code accordingly.
3954 2017-09-28 Henry Linjamäki <henry.linjamaki@parmance.com>
3956 * brig-builtins.def: Change pure attributes to const.
3958 2017-09-28 Joseph Myers <joseph@codesourcery.com>
3960 * config.gcc (default_gnu_indirect_function): Default to yes for
3961 sparc*-*-linux* with glibc.
3963 2017-09-28 Joseph Myers <joseph@codesourcery.com>
3965 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
3966 (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
3967 when creating .init_array and .fini_array sections with priority
3970 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org>
3973 * config/aarch64/aarch64.c
3974 (aarch64_builtin_support_vector_misalignment): Always return false
3975 when misalignment is unknown.
3977 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
3979 * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
3980 this function to return false if the definition used by the swap
3981 instruction is artificial, or if the memory address from which the
3982 constant value is loaded is not represented by a base address held
3983 in a register or if the base address register is a frame or stack
3984 pointer. Additionally, return false if the base address of the
3985 loaded constant is a SYMBOL_REF but is not considered to be a
3987 (replace_swapped_load_constant): New function.
3988 (rs6000_analyze_swaps): Add a new pass to replace a swap of a
3989 loaded constant vector with a load of a swapped constant vector.
3991 2017-09-27 Carl Love <cel@us.ibm.com>
3993 * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
3994 (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
3995 * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
3998 2017-09-27 Alexander Monakov <amonakov@ispras.ru>
4000 * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
4001 first, always call autopref_rank_data otherwise.
4003 2017-09-27 Richard Biener <rguenther@suse.de>
4005 * graphite-scop-detection.c (find_scop_parameters): Move
4006 loop bound handling ...
4007 (gather_bbs::before_dom_children): ... here, avoiding the need
4008 to build scop_info->loop_nest.
4009 (record_loop_in_sese): Remove.
4010 * sese.h (sese_info_t::loop_nest): Remove.
4011 * sese.c (new_sese_info): Do not allocate loop_nest.
4012 (free_sese_info): Do not free loop_nest.
4014 2017-09-27 Jakub Jelinek <jakub@redhat.com>
4017 * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
4018 lhs from calls if the lhs has addressable type.
4020 2017-09-27 Richard Biener <rguenther@suse.de>
4022 * graphite.h (scop::max_alias_set): New member.
4023 * graphite-scop-detection.c: Remove references to non-existing
4024 --param in comments.
4025 (build_alias_sets): Record the maximum alias set used for drs.
4026 (build_scops): Support zero as unlimited for
4027 --param graphite-max-arrays-per-scop.
4028 * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
4030 (build_poly_sr_1): ... here. Compute alias set based on the
4031 maximum alias set used for drs rather than
4032 PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
4034 2017-09-27 Richard Biener <rguenther@suse.de>
4036 * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
4037 --param loop-block-tile-size=0 to disable tiling.
4039 2017-09-27 Richard Biener <rguenther@suse.de>
4041 * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
4042 (graphite-max-nb-scop-params): Document special value zero.
4043 * domwalk.h (dom_walker::STOP): New symbolical constant.
4044 (dom_walker::dom_walker): Add optional parameter for bb to
4046 (dom_walker::~dom_walker): Declare.
4047 (dom_walker::before_dom_children): Document STOP return value.
4048 (dom_walker::m_user_bb_to_rpo): New member.
4049 (dom_walker::m_bb_to_rpo): Likewise.
4050 * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
4051 mapping here if not provided by the user.
4052 (dom_walker::~dom_walker): Free bb to RPO mapping if not
4053 provided by the user.
4054 (dom_walker::STOP): Define.
4055 (dom_walker::walk): Do not compute bb to RPO mapping here.
4056 Support STOP return value from before_dom_children to stop
4058 * graphite-optimize-isl.c (optimize_isl): If the schedule
4059 is the same still generate code if -fgraphite-identity
4060 or -floop-parallelize-all are given.
4061 * graphite-scop-detection.c: Include cfganal.h.
4062 (gather_bbs::gather_bbs): Get and pass through bb to RPO
4064 (gather_bbs::before_dom_children): Return STOP for BBs
4066 (build_scops): Compute bb to RPO mapping and pass it to
4067 the domwalk. Treat --param graphite-max-nb-scop-params=0
4068 as not limiting the number of params.
4069 * graphite.c (graphite_initialize): Remove limit on the
4070 number of basic-blocks in a function.
4071 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
4072 (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
4073 default value of 10.
4075 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
4077 * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
4078 Adjust code to eliminate needing to do the shift right 32-bits
4079 operation after XSCVDPSPN.
4081 2017-09-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4083 * match.pd ((X / Y) == 0 -> X < Y): New pattern.
4084 ((X / Y) != 0 -> X >= Y): Likewise.
4086 2017-09-26 Carl Love <cel@us.ibm.com>
4088 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
4089 P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
4090 vector unsigned char vec_xl_len_r (unsigned char *, size_t);
4091 void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
4092 * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
4093 * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
4094 definitions and overloading.
4095 * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
4096 statement for P9V_BUILTIN_XST_LEN_R.
4097 (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
4098 * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
4099 define_expand and define_insn for the instructions and builtins.
4100 * doc/extend.texi: Update the built-in documentation file for the new
4102 * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
4103 define_insn for the instructions
4105 2017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com>
4108 * gcc/config/netbsd-protos.h: New file.
4109 * gcc/config/netbsd.c: New file.
4110 * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
4111 * gcc/config/t-netbsd: New file.
4112 * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
4113 (tmake_file) Add t-netbsd.
4114 (extra_objs) Add netbsd.o.
4116 2017-09-26 Janus Weil <janus@gcc.gnu.org>
4120 * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
4122 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
4124 * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
4125 sign extension from a vector register to a GPR by doing a 32-bit
4126 direct move and then an EXTSW.
4127 (extendsi<mode>2 splitter): Likewise.
4128 (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
4129 right or vector extract after doing XSCVDPSPN. Use
4130 zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
4132 (movdi_from_sf_zero_ext): Likewise.
4133 (reload_gpr_from_vsxsf): Likewise.
4134 (p8_mfvsrd_4_disf): Delete, no longer used.
4135 (movsi_from_df): Optimize converting a DFmode to a SFmode, and
4136 then needing to move the SFmode to a GPR to use the XSCVDPSP
4137 instruction instead of FRSP and XSCVDPSPN.
4138 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
4139 it is adjacent to the other XSCVSPDP insns.
4140 (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
4141 SFmode to be in traditional Altivec registers.
4142 (vsx_xscvdpspn): Eliminate useless alternative constraint.
4143 (vsx_xscvspdpn): Likewise.
4144 (vsx_xscvspdpn_scalar): Likewise.
4146 2017-09-26 Martin Jambor <mjambor@suse.cz>
4148 * tree-sra.c (compare_access_positions): Put integral types first,
4149 stabilize sorting of integral types, remove conditions putting
4150 non-full-precision integers last.
4151 (sort_and_splice_var_accesses): Disable scalarization if a
4152 non-integert would be represented by a non-full-precision integer.
4154 2017-09-26 Joseph Myers <joseph@codesourcery.com>
4156 * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
4157 * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
4158 * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
4159 * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
4160 Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
4161 conditionals inside the function instead of around it. Call
4162 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
4163 (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
4165 2017-09-26 Richard Biener <rguenther@suse.de>
4167 * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
4169 (scop_detection::build_scop_breadth): ... this. Removed.
4170 (scop_detection::loop_is_valid_in_scop): Fold into single caller.
4171 (scop_detection::harmful_stmt_in_bb): Likewise.
4172 (scop_detection::graphite_can_represent_stmt): Likewise.
4173 (scop_detection::loop_body_is_valid_scop): Likewise. Remove recursion.
4174 (scop_detection::can_represent_loop): Remove recursion, fold in ...
4175 (scop_detection::can_represent_loop_1): ... this. Removed.
4176 (scop_detection::harmful_loop_in_region): Simplify after inlining
4177 the above and remove more quadraticness.
4178 (build_scops): Adjust.
4179 * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
4182 2017-09-26 Jakub Jelinek <jakub@redhat.com>
4185 * config/i386/i386.c (ix86_print_operand_address_as): Only test
4186 REGNO (base) == SP_REG if base is a REG.
4189 * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
4190 if it is different SSA_NAME.
4191 (optimize_range_tests_cmp_bitwise): New function.
4192 (optimize_range_tests): Call it.
4194 2017-09-26 Richard Biener <rguenther@suse.de>
4196 PR tree-optimization/82321
4197 * graphite.c (canonicalize_loop_closed_ssa): Properly check
4198 for the def being inside the loop.
4200 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4202 * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
4204 * config/s390/s390-builtins.def: Fix constraint on op4.
4206 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4208 * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
4209 independent expanders.
4210 * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
4211 ("vec_ordered", "vec_unordered"): New expanders.
4213 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4215 * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
4218 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4220 * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
4221 vec_unpacks_lo_v16qi.
4222 ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
4224 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4226 * config/s390/vector.md ("vec_unpacks_lo_v4sf")
4227 ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
4228 ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
4230 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4232 * config/s390/predicates.md ("const_shift_by_byte_operand"): New
4234 * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
4236 ("*vec_slb<mode>"): New insn pattern.
4237 ("vec_shr_<mode>"): New expander.
4238 * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
4239 and force the shift count operand to V16QImode.
4240 ("vec_srb<mode>"): Set shift count mode to V16QI.
4242 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4244 * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
4245 ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
4246 ("vec_widen_smult_hi_<mode>"): New expander definitions.
4248 2017-09-26 Richard Earnshaw <rearnsha@arm.com>
4251 * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
4253 2017-09-26 Richard Biener <rguenther@suse.de>
4255 PR tree-optimization/82320
4256 * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
4259 2017-09-25 Jeff Law <law@redhat.com>
4261 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
4262 prototype for new argument.
4263 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
4264 mostly extracted from rs6000_emit_allocate_stack.
4265 (rs6000_emit_probe_stack_range_stack_clash): New function.
4266 (rs6000_emit_allocate_stack): Call
4267 rs6000_emit_probe_stack_range_stack_clash as needed.
4268 (rs6000_emit_probe_stack_range): Add additional argument
4269 to call to gen_probe_stack_range{si,di}.
4270 (output_probe_stack_range): New.
4271 (output_probe_stack_range_1): Renamed from output_probe_stack_range.
4272 (output_probe_stack_range_stack_clash): New.
4273 (rs6000_emit_prologue): Emit notes into dump file as requested.
4274 * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
4275 (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
4276 Add additional operand and pass it to output_probe_stack_range.
4278 2017-09-25 Bin Cheng <bin.cheng@arm.com>
4280 PR tree-optimization/82163
4281 * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
4282 (checking_verify_loop_closed_ssa): New parameter.
4283 * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
4284 (check_loop_closed_ssa_stmt): Delete.
4285 (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
4286 (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
4287 (tree_transform_and_unroll_loop): Check loop closed ssa form only for
4290 2017-09-25 Pekka Jaaskelainen <pekka@parmance.com>
4292 * brig-builtins.def: Treat HSAIL barrier builtins as
4293 setjmp/longjump style functions.
4295 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
4297 * target.def (constant_alignment): New hook.
4298 * defaults.h (CONSTANT_ALIGNMENT): Delete.
4299 * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
4300 (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
4301 * doc/tm.texi: Regenerate.
4302 * targhooks.h (default_constant_alignment): Declare.
4303 (constant_alignment_word_strings): Likewise.
4304 * targhooks.c (default_constant_alignment): New function.
4305 (constant_alignment_word_strings): Likewise.
4306 * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
4307 instead of CONSTANT_ALIGNMENT.
4308 * varasm.c (align_variable, get_variable_align, build_constant_desc)
4309 (force_const_mem): Likewise.
4310 * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
4311 * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
4312 (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
4313 (TARGET_CONSTANT_ALIGNMENT): Redefine.
4314 * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
4316 * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
4317 * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4318 constant_alignment_word_strings.
4319 * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
4320 (CONSTANT_ALIGNMENT): Likewise.
4321 * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4322 (arm_constant_alignment): New function.
4323 * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
4324 * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4325 constant_alignment_word_strings.
4326 * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
4327 * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4328 constant_alignment_word_strings.
4329 * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
4330 * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4331 (cris_constant_alignment): New function.
4332 * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
4333 * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4334 (epiphany_constant_alignment): New function.
4335 * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
4336 * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4337 constant_alignment_word_strings.
4338 * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
4339 * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4340 constant_alignment_word_strings.
4341 * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
4342 * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4343 constant_alignment_word_strings.
4344 * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
4345 * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
4346 * config/i386/i386.c (ix86_constant_alignment): Make static.
4347 Use the same interface as the target hook.
4348 (TARGET_CONSTANT_ALIGNMENT): Redefine.
4349 * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
4350 * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4351 constant_alignment_word_strings.
4352 * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
4353 * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
4354 (TARGET_CONSTANT_ALIGNMENT): Redefine.
4355 * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
4356 * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4357 constant_alignment_word_strings.
4358 * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
4359 * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4360 constant_alignment_word_strings.
4361 * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
4362 * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4363 constant_alignment_word_strings.
4364 * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
4365 * config/microblaze/microblaze.c (microblaze_constant_alignment):
4367 (TARGET_CONSTANT_ALIGNMENT): Redefine.
4368 * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
4369 * config/mips/mips.c (mips_constant_alignment): New function.
4370 (TARGET_CONSTANT_ALIGNMENT): Redefine.
4371 * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
4372 * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
4373 * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4374 (mmix_constant_alignment): Make static. Use the same interface
4376 * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
4377 * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4378 constant_alignment_word_strings.
4379 * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
4380 * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4381 constant_alignment_word_strings.
4382 * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
4383 * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4384 constant_alignment_word_strings.
4385 * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
4386 * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4387 (rs6000_constant_alignment): New function.
4388 * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
4389 * config/riscv/riscv.c (riscv_constant_alignment): New function.
4390 (TARGET_CONSTANT_ALIGNMENT): Redefine.
4391 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
4392 * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4393 (rs6000_constant_alignment): New function.
4394 * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
4395 * config/s390/s390.c (s390_constant_alignment): New function.
4396 (TARGET_CONSTANT_ALIGNMENT): Redefine.
4397 * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
4398 * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4399 constant_alignment_word_strings.
4400 * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
4401 * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4402 (sparc_constant_alignment): New function.
4403 * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
4404 * config/spu/spu.c (spu_constant_alignment): New function.
4405 (TARGET_CONSTANT_ALIGNMENT): Redefine.
4406 * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
4407 * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4408 constant_alignment_word_strings.
4409 * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
4410 * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4411 constant_alignment_word_strings.
4412 * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
4413 * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4414 constant_alignment_word_strings.
4415 * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
4416 * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4417 (visium_constant_alignment): New function.
4418 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
4419 * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4420 (xtensa_constant_alignment): New function.
4421 * system.h (CONSTANT_ALIGNMENT): Poison.
4423 2017-09-25 Will Schmidt <will_schmidt@vnet.ibm.com>
4425 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
4426 for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
4427 (rs6000_builtin_valid_without_lhs): New helper function.
4428 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4429 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
4431 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
4433 * target.h (vec_perm_indices): Use unsigned short rather than
4435 (auto_vec_perm_indices): Likewise.
4436 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
4437 Use unsigned int rather than unsigned char.
4438 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
4440 2017-09-25 Richard Biener <rguenther@suse.de>
4442 * cfgloop.h (sort_sibling_loops): Declare.
4443 * cfgloop.c (sort_sibling_loops_cmp): New helper.
4444 (sort_sibling_loops): New function sorting the sibling loop list
4446 * graphite.c (graphite_transform_loops): Sort sibling loops.
4448 2017-09-25 Richard Sandiford <richard.sandifird@linaro.org>
4450 * target.def (vec_perm_const_ok): Change sel parameter to
4452 * optabs-query.c (can_vec_perm_p): Update accordingly.
4453 * doc/tm.texi: Regenerate.
4454 * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
4455 auto_vec_perm_indices and remove separate nelt field.
4456 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
4457 (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
4458 (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
4459 (aarch64_expand_vec_perm_const): Update accordingly.
4460 (aarch64_vectorize_vec_perm_const_ok): Likewise. Change sel
4461 to vec_perm_indices.
4462 * config/arm/arm.c (expand_vec_perm_d): Change perm to
4463 auto_vec_perm_indices and remove separate nelt field.
4464 (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
4465 (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
4466 (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
4468 (arm_vectorize_vec_perm_const_ok): Likewise. Change sel
4469 to vec_perm_indices.
4470 * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
4471 sel to vec_perm_indices.
4472 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
4473 * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
4474 * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
4476 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
4479 2017-09-25 Pierre-Marie de Rodat <derodat@adacore.com>
4482 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
4483 on the FUNCTION_DECL function context if it has a DIE that is a
4486 2017-09-25 Richard Biener <rguenther@suse.de>
4488 PR tree-optimization/82285
4489 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
4492 2017-09-25 Tom de Vries <tom@codesourcery.com>
4496 * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
4499 2017-09-25 Richard Biener <rguenther@suse.de>
4501 * graphite-optimize-isl.c (optimize_isl): Fail and dump if
4502 ISL errors other than isl_error_quota happen. Dump if the
4503 schedule is the same.
4504 * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
4505 errors instead of aborting inside ISL.
4507 2017-09-25 Iain Sandoe <iain@codesourcery.com>
4510 * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
4511 of libgcc_eh for m64.
4512 * config/i386/darwin64.h: Likewise.
4514 2017-09-25 Richard Biener <rguenther@suse.de>
4517 * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
4518 attribute for incomplete types nor twice for complete ones.
4520 2017-09-24 Uros Bizjak <ubizjak@gmail.com>
4523 * config/i386/i386.c (ix86_print_operand_address_as): Encode
4524 %esp as %rsp to avoid 0x67 prefix if there is no index or base
4527 2017-09-23 Uros Bizjak <ubizjak@gmail.com>
4530 * config/i386/i386.opt (mprefer-avx256): Use
4531 ix86_target_flags variable.
4532 * config/i386/i386.c (ix86_target_string): Move
4533 -mprefer-avx256 to flag2_opts.
4535 2017-09-22 Jakub Jelinek <jakub@redhat.com>
4538 * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
4539 and x != -1 | y != -1 into (x & y) != -1.
4541 2017-09-22 Steve Ellcey <sellcey@cavium.com>
4543 * config.gcc: Add new case statement to set
4544 default_gnu_indirect_function. Remove it from x86_64-*-linux*,
4545 i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
4546 s390x-*-linux* case statements. Added aarch64 to the list of
4547 supported architectures.
4549 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
4551 PR tree-optimization/82289
4552 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
4553 STMT_VINFO_RELEVANT_P.
4555 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
4556 Alan Hayward <alan.hayward@arm.com>
4557 David Sherwood <david.sherwood@arm.com>
4559 * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
4560 for VR_RANGE only; don't allow VR_ANTI_RANGE.
4561 (extract_range_from_binary_expr_1): Don't call
4562 extract_range_from_multiplicative_op_1 if !range_int_cst_p.
4564 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
4565 Alan Hayward <alan.hayward@arm.com>
4566 David Sherwood <david.sherwood@arm.com>
4568 * target.def (preferred_vector_alignment): New hook.
4569 * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
4571 * doc/tm.texi: Regenerate.
4572 * targhooks.h (default_preferred_vector_alignment): Declare.
4573 * targhooks.c (default_preferred_vector_alignment): New function.
4574 * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
4576 (DR_TARGET_ALIGNMENT): New macro.
4577 (aligned_access_p): Update commentary.
4578 (vect_known_alignment_in_bytes): New function.
4579 * tree-vect-data-refs.c (vect_calculate_required_alignment): New
4581 (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
4582 Calculate the misalignment based on the target alignment rather than
4584 (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
4585 rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
4586 (vect_enhance_data_refs_alignment): Mask the byte misalignment with
4587 the target alignment, rather than masking the element misalignment
4588 with the number of elements in a vector. Also use the target
4589 alignment when calculating the maximum number of peels.
4590 (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
4591 instead of TYPE_ALIGN_UNIT.
4592 (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
4593 Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
4594 (vect_create_addr_base_for_vector_ref): Update call accordingly.
4595 (vect_create_data_ref_ptr): Likewise.
4596 (vect_setup_realignment): Realign by ANDing with
4597 -DR_TARGET_MISALIGNMENT.
4598 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
4599 the number of peels based on DR_TARGET_ALIGNMENT.
4600 * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
4601 with the guaranteed alignment boundary when deciding whether
4603 (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
4604 relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
4605 (ensure_base_align): Remove stmt_info parameter. Get the
4606 target base alignment from DR_TARGET_ALIGNMENT.
4607 (vectorizable_store): Update call accordingly. Interpret
4608 DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
4610 (vectorizable_load): Likewise.
4612 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
4613 Alan Hayward <alan.hayward@arm.com>
4614 David Sherwood <david.sherwood@arm.com>
4616 * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
4617 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
4618 (vect_enhance_data_refs_alignment): Likewise.
4620 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
4622 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
4623 error. Only quit immediately if parsing is complete.
4624 (BEGIN): Initialize fatal_err and parse_done.
4625 (begin fpu, end fpu): Check number of arguments.
4626 (begin arch, end arch): Likewise.
4627 (begin cpu, end cpu): Likewise.
4628 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
4629 (optalias): Likewise.
4631 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
4633 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
4634 * config/arm/arm-isa.h: Delete. Move definitions to ...
4635 * arm-cpus.in: ... here. Use new feature and fgroup values.
4636 * config/arm/arm.c (arm_option_override): Use lower case for feature
4638 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
4639 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
4640 * config/arm/parsecpu.awk (END): Add new command 'isa'.
4642 (print_isa_bits_for): New function.
4643 (gen_isa): New function.
4644 (gen_comm_data): Use print_isa_bits_for.
4645 (define feature): New keyword.
4646 (define fgroup): New keyword.
4647 * config/arm/t-arm (TM_H): Remove.
4648 (GTM_H): Add arm-isa.h.
4649 (arm-isa.h): Add rule to generate file.
4650 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
4651 case for feature bit names.
4653 2017-09-22 Richard Biener <rguenther@suse.de>
4655 * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
4657 (graphite_regenerate_ast_isl): Do not reset SCEV. Move debug
4658 print of no dependency loops ...
4659 * graphite.c (graphite_transform_loops): ... here.
4660 (canonicalize_loop_closed_ssa_form): Work from inner to outer
4662 (same_close_phi_node, remove_duplicate_close_phi,
4663 make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
4664 (canonicalize_loop_closed_ssa): ... here and simplify.
4665 * graphite-optimize-isl.c: Include tree-vectorizer.h.
4666 (optimize_isl): Use dump_printf_loc to tell when we stopped
4667 optimizing because of an ISL timeout.
4669 2017-09-22 Richard Biener <rguenther@suse.de>
4671 PR tree-optimization/82291
4672 * tree-if-conv.c (predicate_mem_writes): Make sure to
4673 remove writes in blocks predicated with false.
4675 2017-09-22 Richard Biener <rguenther@suse.de>
4677 * sese.c: Include cfganal.h.
4678 (if_region_set_false_region): Remove.
4679 (create_if_region_on_edge): Likewise.
4680 (move_sese_in_condition): Re-implement without destroying
4683 2017-09-22 Richard Biener <rguenther@suse.de>
4685 * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
4686 Verify both BBs contain loop PHI nodes before dispatching to
4688 (graphite_regenerate_ast_isl): Do not recompute dominators,
4689 do not verify three times. Restructure for clarity.
4690 * graphite-scop-detection.c (same_close_phi_node,
4691 remove_duplicate_close_phi, make_close_phi_nodes_unique,
4692 defined_in_loop_p, canonicalize_loop_closed_ssa,
4693 canonicalize_loop_closed_ssa_form): Simplify, remove excess
4694 checking and SSA rewrite, move to ...
4695 * graphite.c: ... here. Include ssa.h and tree-ssa-loop-manip.h.
4696 (graphite_initialize): Do not pass in ctx, do not reset the
4697 SCEV cache, compute only dominators.
4698 (graphite_transform_loops): Allocate ISL ctx after
4699 graphite_initialize. Call canonicalize_loop_closed_ssa_form.
4700 Maintain post-dominators only around build_scops.
4701 * sese.c (if_region_set_false_region): Make static. Free
4702 and recompute dominators.
4703 (move_sese_in_condition): Assert we don't get called with
4704 post-dominators computed.
4705 * sese.h (if_region_set_false_region): Remove.
4707 2017-09-22 Sergey Shalnov <sergey.shalnov@intel.com>
4709 * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
4710 mode attribute for TARGET_AVX512VL.
4712 2017-09-21 Sergey Shalnov <sergey.shalnov@intel.com>
4714 * config/i386/i386.opt (mprefer-avx256): New option.
4715 * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
4717 (ix86_preferred_simd_mode): Return 256-bit AVX modes
4718 for TARGET_PREFER_AVX256.
4719 * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
4721 2017-09-21 Jeff Law <law@redhat.com>
4723 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
4724 Fix dump output if the only stack space is for pushed registers.
4726 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
4728 * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
4731 2017-09-21 Martin Sebor <msebor@redhat.com>
4734 * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
4735 code (in C++) or code that triggers warnings.
4737 2017-09-21 Eric Botcazou <ebotcazou@adacore.com>
4739 * stor-layout.c (bit_from_pos): Do not distribute the conversion.
4741 2017-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4743 * haifa-sched.c: Rename insn_cost to insn_sched_cost.
4744 * sched-rgn.c: Ditto.
4745 * sel-sched-ir.c: Ditto.
4747 2017-09-21 Alexander Monakov <amonakov@ispras.ru>
4749 * toplev.h (set_random_seed): Adjust return type.
4750 * toplev.c (init_local_tick): Move eager initialization of random_seed
4751 to get_random_seed. Adjust comment.
4752 (init_random_seed): Inline to get_random_seed, delete.
4753 (get_random_seed): Initialize random_seed lazily.
4754 (set_random_seed): Do not return previous value.
4755 (print_switch_value): Do not call get_random_seed.
4757 2017-09-21 Evgeny Kudryashov <kudryashov@ispras.ru>
4759 * cgraph.c (delete_function_version): New, broken out from...
4760 (cgraph_node::delete_function_version): ...here. Rename to
4761 cgraph_node::delete_function_version_by_decl. Update all uses.
4762 (cgraph_node::remove): Call delete_function_version.
4764 2017-09-21 Jakub Jelinek <jakub@redhat.com>
4767 * tree-inline.c (expand_call_inline): Emit clobber stmts for
4768 VAR_DECLs to which addressable non-volatile parameters are mapped
4769 and for id->retvar after the return value assignment. Clear
4770 id->retval and id->retbnd after inlining.
4772 2017-09-21 Richard Biener <rguenther@suse.de>
4774 PR tree-optimization/82276
4775 PR tree-optimization/82244
4776 * tree-vrp.c (build_assert_expr_for): Set
4777 SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
4779 (remove_range_assertions): Revert earlier change.
4781 2017-09-21 Wilco Dijkstra <wdijkstr@arm.com>
4784 * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
4786 2017-09-21 Richard Biener <rguenther@suse.de>
4788 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
4789 Restore valid IL after code generation errors.
4790 * graphite.c (graphite_transform_loops): Diagnose code
4791 generation issues as MSG_MISSED_OPTIMIZATION and continue
4792 with processing SCOPs.
4794 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
4795 Alan Hayward <alan.hayward@arm.com>
4796 David Sherwood <david.sherwood@arm.com>
4798 * calls.c (compute_argument_addresses): Use simplify_gen_binary
4799 rather than choosing between plus_constant and gen_rtx_<CODE>.
4800 * expr.c (emit_push_insn): Likewise.
4801 (expand_expr_real_2): Likewise.
4803 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
4804 Alan Hayward <alan.hayward@arm.com>
4805 David Sherwood <david.sherwood@arm.com>
4807 * loop-unroll.c (split_iv): Call copy_rtx on the step.
4809 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
4810 Alan Hayward <alan.hayward@arm.com>
4811 David Sherwood <david.sherwood@arm.com>
4813 * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
4814 calling tree_to_uhwi.
4816 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
4817 Alan Hayward <alan.hayward@arm.com>
4818 David Sherwood <david.sherwood@arm.com>
4820 * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
4821 INTEGER_CST rather than a negative test for ADDR_EXPR.
4823 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
4824 Alan Hayward <alan.hayward@arm.com>
4825 David Sherwood <david.sherwood@arm.com>
4827 * tree-vrp.c (extract_range_from_binary_expr_1): Check
4828 int_cst_rangeN before calling value_range_constant_singleton (&vrN).
4830 2017-09-21 Richard Biener <rguenther@suse.de>
4832 PR tree-optimization/71351
4833 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
4834 graphite_create_new_loop_guard): Remove, fold remaining parts
4836 (translate_isl_ast_node_for): ... here and simplify.
4838 2017-09-21 Jakub Jelinek <jakub@redhat.com>
4841 * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
4842 with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
4843 latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
4844 alternative always use QI mode, for -Os imov (=R,R) alternative
4845 always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
4848 2017-09-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4849 Jeff Law <law@redhat.com>
4851 * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
4852 (allocate_stack_space): New function, partially extracted from
4854 (s390_emit_prologue): Track offset to most recent stack probe.
4855 Code to allocate space moved into allocate_stack_space.
4856 Dump actions when no stack is allocated.
4857 (s390_prologue_plus_offset): New function.
4858 (s390_emit_stack_probe): Likewise.
4860 2017-09-20 Alexandre Oliva <aoliva@redhat.com>
4862 * common.opt (Wa, Wl, Wp, g, gz=): Add
4864 (gno-column-info): Remove.
4865 (gcolumn-info): Drop RejectNegative.
4867 (gno-record-gcc-switches): Remove.
4868 (grecord-gcc-switches): Drop RejectNegative.
4869 (gno-split-dwarf): Remove.
4870 (gsplit-dwarf): Drop RejectNegative.
4871 (gno-strict-dwarf): Remove.
4872 (gstrict-dwarf): Drop RejectNegative.
4873 * config/darwin.opt (gfull, gused): Add RejectNegative.
4874 * dwarf2out.c (gen_producer_string): Drop
4875 gno-record-gcc-switches handler.
4876 * optc-gen.awk: Add g to prefixes with negative forms.
4877 * opts-common.c (remapping_prefix_p): New.
4878 (find_opt): Check it.
4879 (generate_canonical_option): Test g prefix.
4880 (option_map): Add -gno- mapping.
4881 (add_misspelling_candidates): Check remapping_prefix_p.
4883 2017-09-20 Jeff Law <law@redhat.com>
4885 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
4886 thinko in stack clash protection support.
4888 * explow.c (compute_stack_clash_protection_loop_data): Use
4889 CONST_INT_P instead of explicit test. Verify object is a
4890 CONST_INT_P before looking at INTVAL.
4891 (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
4892 instead of explicit test.
4894 2017-09-20 Segher Boessenkool <segher@kernel.crashing.org>
4897 * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
4898 address instead of to r1 and r11.
4900 2017-09-20 Sebastian Peryt <sebastian.peryt@intel.com>
4902 * config.gcc: Support "knm".
4903 * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
4904 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4906 * config/i386/i386.c (m_KNM): Define.
4907 (processor_target_table): Add "knm".
4909 (ix86_option_override_internal): Add "knm".
4910 (ix86_issue_rate): Add PROCESSOR_KNM.
4911 (ix86_adjust_cost): Ditto.
4912 (ia32_multipass_dfa_lookahead): Ditto.
4913 (get_builtin_code_for_version): Handle PROCESSOR_KNM.
4914 (fold_builtin_cpu): Add M_INTEL_KNM.
4915 * config/i386/i386.h (processor_costs): Define TARGET_KNM.
4916 (processor_type): Add PROCESSOR_KNM.
4917 * config/i386/x86-tune.def: Add m_KNM.
4918 * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
4920 2017-09-20 Richard Biener <rguenther@suse.de>
4922 PR tree-optimization/80213
4923 * graphite-scop-detection.c (trivially_empty_bb_p): Labels
4924 are allowed in empty BBs as well.
4925 (canonicalize_loop_closed_ssa): Also look for other complex
4927 (scop_detection::get_sese): Include the loop-closed PHI block
4929 (scop_detection::merge_sese): Remove code adding extra blocks.
4930 (scop_detection::region_has_one_loop): Adjust for get_sese changes.
4931 (build_scops): Assert the final returned scop is invalid.
4933 2017-09-20 Richard Biener <rguenther@suse.de>
4935 PR tree-optimization/82264
4936 * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
4938 (vn_phi_lookup): Likewise.
4939 (vn_phi_insert): Likewise.
4941 2017-09-20 Jakub Jelinek <jakub@redhat.com>
4943 * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
4944 that fits into uhwi or shwi, add DW_AT_const_value regardless
4945 of early_dwarf without going through RTL, using add_AT_unsigned
4948 * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
4949 (DEBUG_LTO_ABBREV_SECTION): Likewise.
4950 (DEBUG_LTO_MACINFO_SECTION): Likewise.
4951 (DEBUG_MACRO_SECTION): Likewise.
4952 (DEBUG_LTO_MACRO_SECTION): Likewise.
4953 (DEBUG_STR_DWO_SECTION): Likewise.
4954 (DEBUG_LTO_STR_DWO_SECTION): Likewise.
4955 (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
4956 (DEBUG_LTO_DWO_LINE_SECTION): Define.
4957 (DEBUG_LTO_LINE_STR_SECTION): Define.
4958 (init_sections_and_labels): Initialize debug_line_str_section
4959 variable. Initialize debug_loc_section for -gdwarf-5 to
4960 DEBUG_LOCLISTS_SECTION. Formatting fixes.
4962 2017-09-20 Richard Biener <rguenther@suse.de>
4964 * graphite-sese-to-poly.c (extract_affine): Properly handle
4965 POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
4967 2017-09-20 Richard Biener <rguenther@suse.de>
4969 PR tree-optimization/81373
4970 * graphite-scop-detection.c (build_cross_bb_scalars_def):
4971 Force SESE live-out defs to be handled even if they are
4974 2017-09-19 Jeff Law <law@redhat.com>
4976 * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
4977 nothing for stack adjustments with REG_STACK_CHECK.
4978 * sched-deps.c (parse_add_or_inc): Reject insns with
4979 REG_STACK_CHECK from dependency breaking.
4980 * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
4981 (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
4982 * reg-notes.def (STACK_CHECK): New note.
4984 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
4985 (ix86_expand_prologue): Dump stack clash info as needed.
4986 Call ix86_adjust_stack_and_probe_stack_clash as needed.
4988 * function.c (dump_stack_clash_frame_info): New function.
4989 * function.h (dump_stack_clash_frame_info): Prototype.
4990 (enum stack_clash_probes): New enum.
4992 * config/alpha/alpha.c (alpha_expand_prologue): Also check
4993 flag_stack_clash_protection.
4994 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
4995 (arm_expand_prologue, thumb1_expand_prologue): Likewise.
4996 (arm_frame_pointer_required): Likewise.
4997 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
4998 (ia64_expand_prologue): Likewise.
4999 * config/mips/mips.c (mips_expand_prologue): Likewise.
5000 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
5001 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
5002 (sparc_flat_expand_prologue): Likewise.
5003 * config/spu/spu.c (spu_expand_prologue): Likewise.
5005 * explow.c: Include "params.h".
5006 (anti_adjust_stack_and_probe_stack_clash): New function.
5007 (get_stack_check_protect): Likewise.
5008 (compute_stack_clash_protection_loop_data): Likewise.
5009 (emit_stack_clash_protection_loop_start): Likewise.
5010 (emit_stack_clash_protection_loop_end): Likewise.
5011 (allocate_dynamic_stack_space): Use get_stack_check_protect.
5012 Use anti_adjust_stack_and_probe_stack_clash.
5013 * explow.h (compute_stack_clash_protection_loop_data): Prototype.
5014 (emit_stack_clash_protection_loop_start): Likewise.
5015 (emit_stack_clash_protection_loop_end): Likewise.
5016 * rtl.h (get_stack_check_protect): Prototype.
5017 * target.def (stack_clash_protection_final_dynamic_probe): New hook.
5018 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
5019 * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
5021 * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
5023 * doc/tm.texi: Rebuilt.
5024 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
5025 get_stack_check_protect.
5026 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
5027 * config/arm/arm.c (arm_expand_prologue): Likewise.
5028 (arm_frame_pointer_required): Likewise.
5029 * config/i386/i386.c (ix86_expand_prologue): Likewise.
5030 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
5031 * config/mips/mips.c (mips_expand_prologue): Likewise.
5032 * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
5033 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
5034 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
5035 (sparc_flat_expand_prologue): Likewise.
5037 * common.opt (-fstack-clash-protection): New option.
5038 * flag-types.h (enum stack_check_type): Note difference between
5039 -fstack-check= and -fstack-clash-protection.
5040 * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
5041 (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
5042 * toplev.c (process_options): Issue warnings/errors for cases
5043 not handled with -fstack-clash-protection.
5044 * doc/invoke.texi (-fstack-clash-protection): Document new option.
5045 (-fstack-check): Note additional problem with -fstack-check=generic.
5046 Note that -fstack-check is primarily for Ada and refer users
5047 to -fstack-clash-protection for stack-clash-protection.
5048 Document new params for stack clash protection.
5050 2017-09-19 Uros Bizjak <ubizjak@gmail.com>
5052 * config/i386/i386.c (ix86_split_long_move): Do not handle
5053 address used for LEA in a special way.
5055 2017-09-19 Segher Boessenkool <segher@kernel.crashing.org>
5057 * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
5059 2017-09-19 Martin Sebor <msebor@redhat.com>
5062 * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
5063 of incompatible types.
5065 2017-09-19 Will Schmidt <will_schmidt@vnet.ibm.com>
5067 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
5068 for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
5069 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5070 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
5072 2017-09-19 Richard Biener <rguenther@suse.de>
5074 PR tree-optimization/82244
5075 * tree-vrp.c (remove_range_assertions): Do not propagate
5076 a constant to abnormals but replace the assert with a copy.
5078 2017-09-19 Alexander Monakov <amonakov@ispras.ru>
5080 PR rtl-optimization/57878
5081 PR rtl-optimization/68988
5082 * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
5083 avoidance test involving non_reload_pseudos. Move frequency test
5084 below the general fragmentation avoidance test.
5086 2017-09-19 Richard Biener <rguenther@suse.de>
5088 PR tree-optimization/69728
5089 * graphite-sese-to-poly.c (schedule_error): New global.
5090 (add_loop_schedule): Handle empty domain by failing the
5092 (build_original_schedule): Handle schedule_error.
5094 2017-09-19 Richard Biener <rguenther@suse.de>
5096 * graphite-scop-detection.c (scop_detection::can_represent_loop):
5097 Do not iterate to sibling loops but only to siblings of inner
5100 2017-09-18 Andreas Schwab <schwab@linux-m68k.org>
5103 * config/m68k/m68k.md (moveq feeding equality comparison): Check
5104 that the registers are different.
5106 2017-09-18 Uros Bizjak <ubizjak@gmail.com>
5108 * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
5109 to processor_model and "amdfam17h" to arch_names_table.
5110 * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
5112 2017-09-18 Jakub Jelinek <jakub@redhat.com>
5115 * doc/extend.texi: Add @findex entry for __builtin_shuffle.
5117 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
5118 Alan Hayward <alan.hayward@arm.com>
5119 David Sherwood <david.sherwood@arm.com>
5121 * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
5123 * tree-vect-loop.c (vect_analyze_loop_operations): Update call
5125 * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
5126 parameter. Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
5127 vect_schedule_slp_instance.
5128 (vect_slp_analyze_operations): Replace parameters with a vec_info *.
5129 Update call to vect_slp_analyze_node_operations. Simplify return
5131 (vect_slp_analyze_bb_1): Update call accordingly.
5132 (vect_schedule_slp_instance): Remove vectorization_factor parameter.
5133 Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
5134 (vect_schedule_slp): Update call accordingly.
5136 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
5137 Alan Hayward <alan.hayward@arm.com>
5138 David Sherwood <david.sherwood@arm.com>
5140 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
5141 with types that aren't in fact scalar.
5143 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
5145 * tree-vect-slp.c (vect_record_max_nunits): New function,
5147 (vect_build_slp_tree_1): ...here.
5148 (vect_build_slp_tree_2): Call it for phis too.
5150 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
5152 * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
5153 to vect_get_vec_def_for_operand when getting the mask operand.
5155 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
5156 Alan Hayward <alan.hayward@arm.com>
5157 David Sherwood <david.sherwood@arm.com>
5159 * tree-vect-loop.c (vectorizable_live_operation): Fix type of
5162 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
5163 Alan Hayward <alan.hayward@arm.com>
5164 David Sherwood <david.sherwood@arm.com>
5166 * tree-vect-loop.c (vectorizable_live_operation): Fix element size
5167 calculation for vector booleans.
5169 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
5170 Alan Hayward <alan.hayward@arm.com>
5171 David Sherwood <david.sherwood@arm.com>
5173 * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
5175 (vect_transform_stmt): ...here.
5176 (vect_analyze_stmt): Use it instead of calling
5177 vectorizable_live_operation directly.
5179 2017-09-18 Cesar Philippidis <cesar@codesourcery.com>
5181 * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
5182 non-SIMT targets in acc vector loops.
5184 2017-09-18 Claudiu Zissulescu <claziss@synopsys.com>
5186 * configure.ac: Add arc and check if assembler supports gdwarf2.
5187 * configure: Regenerate.
5189 2017-09-18 Richard Biener <rguenther@suse.de>
5191 PR tree-optimization/82220
5192 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
5193 epilogue niters from the min_profitable_iters compute.
5195 2017-09-18 Jakub Jelinek <jakub@redhat.com>
5198 * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
5199 changes. Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
5200 (ix86_init_pic_reg): Revert 2017-09-01 changes.
5202 2017-09-18 Eric Botcazou <ebotcazou@adacore.com>
5205 * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
5206 switching to a new text section.
5208 2017-09-18 Richard Biener <rguenther@suse.de>
5210 * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
5212 (build_alias_set): Reject aliases with no access function.
5214 2017-09-18 Richard Biener <rguenther@suse.de>
5216 PR tree-optimization/79622
5217 * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
5219 (build_cross_bb_scalars_use): Likewise.
5221 2017-09-18 Pierre-Marie de Rodat <derodat@adacore.com>
5223 * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
5225 2017-09-18 Alan Modra <amodra@gmail.com>
5228 * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
5229 stack_pointer_rtx for count 0. Update comments. Break up
5230 large rtl expression.
5232 2017-09-17 Daniel Santos <daniel.santos@pobox.com>
5234 * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
5235 Increase to 20 bytes.
5236 (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
5237 (xlogue_layout::get_stub_name): Modify to select the appropairate sse
5238 or avx version of the stub.
5240 2017-09-17 H.J. Lu <hongjiu.lu@intel.com>
5243 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
5244 compute the minimum stack alignment. Also update preferred stack
5245 boundary for leaf functions.
5247 2017-09-16 Richard Sandiford <richard.sandiford@linaro.org>
5249 PR tree-optimization/82228
5250 * tree-vect-loop.c (vectorizable_live_operation): Move initialization
5253 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
5255 * common/config/nds32/nds32-common.c
5256 (nds32_option_optimization_table): Refine formatting.
5257 (nds32_option_optimization_table): Use -fsched-pressure and
5258 -fomit-frame-pointer for specific optimization level.
5260 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
5262 * config/nds32/nds32.c: Refine formatting and comments.
5263 * config/nds32/nds32.h: Likewise.
5264 * config/nds32/nds32.md: Likewise.
5265 * config/nds32/nds32-cost.c: Likewise.
5266 * config/nds32/nds32-isr.c: Likewise.
5267 * config/nds32/nds32-md-auxiliary.c: Likewise.
5268 * config/nds32/nds32-multiple.md: Likewise.
5269 * config/nds32/nds32-predicates.c: Likewise.
5271 2017-09-15 Andrew Sutton <andrew.n.sutton@gmail.com>
5272 Jakub Jelinek <jakub@redhat.com>
5274 Add support for -std=c++2a.
5275 * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
5277 * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
5279 2017-09-15 Steve Ellcey <sellcey@cavium.com>
5282 * doc/extend.texi (Common Function Attributes): Add
5283 references to ARM, AArch64, and S/390 specific attributes.
5284 (Function Specific Option Pragmas): Add AArch64 and S/390
5285 to list of back ends that support the target pragma.
5287 2017-09-15 Nathan Sidwell <nathan@acm.org>
5289 * doc/standards.texi: Fix C++17 description. Update URLs for
5292 2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
5294 * common.opt (Wcast-align=strict): New warning option.
5295 * doc/invoke.texi: Document -Wcast-align=strict.
5297 2017-09-15 Pierre-Marie de Rodat <derodat@adacore.com>
5299 * cgraph.h (cgraph_thunk_info): Add comments.
5300 * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
5301 assert for VIRTUAL_* arguments stricter.
5303 2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com>
5305 PR tree-optimization/71026
5306 * match.pd: Move RDIV patterns from fold-const.c
5307 * fold-const.c (distribute_real_division): Removed.
5308 (fold_binary_loc): Remove calls to distribute_real_divison.
5310 2017-09-15 Jakub Jelinek <jakub@redhat.com>
5312 * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
5313 c++1z and gnu++1z as deprecated. Change other references to
5314 -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
5315 Change -Wc++1z-compat to -Wc++17-compat.
5316 * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
5317 * dwarf2out.c (highest_c_language): Handle C++17.
5318 (gen_compile_unit_die): Likewise.
5320 2017-09-15 Jakub Jelinek <jakub@redhat.com>
5322 PR rtl-optimization/82192
5323 * combine.c (make_extraction): Don't look through non-paradoxical
5324 SUBREGs or TRUNCATE if pos + len is or might be bigger than
5327 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
5328 Alan Hayward <alan.hayward@arm.com>
5329 David Sherwood <david.sherwood@arm.com>
5331 * target.def (function_arg_offset): New hook.
5332 * targhooks.h (default_function_arg_offset): Declare.
5333 * targhooks.c (default_function_arg_offset): New function.
5334 * function.c (locate_and_pad_parm): Use
5335 targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
5336 * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
5337 (TARGET_FUNCTION_ARG_OFFSET): ...this.
5338 * doc/tm.texi: Regenerate.
5339 * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
5340 * config/spu/spu.c (spu_function_arg_offset): New function.
5341 (TARGET_FUNCTION_ARG_OFFSET): Redefine.
5342 * system.h (FUNCTION_ARG_OFFSET): Poison.
5344 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
5345 Alan Hayard <alan.hayward@arm.com>
5346 David Sherwood <david.sherwood@arm.com>
5348 * target.def (truly_noop_truncation): New hook.
5349 (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
5350 than TRULY_NOOP_TRUNCATION.
5351 * hooks.h (hook_bool_uint_uint_true): Declare.
5352 * hooks.c (hook_bool_uint_uint_true): New function.
5353 * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
5354 (TARGET_TRULY_NOOP_TRUNCATION): ...this.
5355 * doc/tm.texi: Regenerate.
5356 * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
5357 rather than TRULY_NOOP_TRUNCATION in comments.
5358 (simplify_comparison): Likewise.
5359 (record_truncated_value): Likewise.
5360 * expmed.c (extract_bit_field_1): Likewise.
5361 (extract_split_bit_field): Likewise.
5362 * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
5363 instead of TRULY_NOOP_TRUNCATION.
5364 * function.c (assign_parm_setup_block): Likewise.
5365 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
5366 * rtlhooks.c: Include target.h.
5367 * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
5368 * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
5369 * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
5370 * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
5371 * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
5372 * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
5373 * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
5374 * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
5375 * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
5376 * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
5377 * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
5378 * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
5379 * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
5380 * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
5381 * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
5382 * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
5383 * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
5384 * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
5385 * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
5386 * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
5387 * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
5388 * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
5389 * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
5390 * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
5391 * config/mips/mips.c (mips_truly_noop_truncation): New function.
5392 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
5393 * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
5394 rather than TRULY_NOOP_TRUNCATION in comments.
5395 * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
5396 * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
5397 * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
5398 * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
5399 * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
5400 * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
5401 * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
5402 * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
5403 * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
5404 * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
5405 * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
5406 * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
5407 rather than TRULY_NOOP_TRUNCATION in comments.
5408 * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
5409 * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
5410 * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
5411 * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
5412 * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
5413 TRULY_NOOP_TRUNCATION condition.
5414 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
5415 (TRULY_NOOP_TRUNCATION): Delete.
5416 * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
5417 * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
5418 * config/spu/spu.c (spu_truly_noop_truncation): New function.
5419 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
5420 * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
5421 * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
5422 * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
5423 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
5424 * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
5425 rather than TRULY_NOOP_TRUNCATION in comments.
5426 * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
5427 * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
5428 * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
5429 * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
5430 * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
5431 * system.h (TRULY_NOOP_TRUNCATION): Poison.
5433 2017-09-15 Christophe Lyon <christophe.lyon@linaro.org>
5436 * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
5437 (*cmp_ior): Likewise.
5438 (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
5439 (*ior_scc_scc_cmp): Likewise.
5440 (*and_scc_scc): Likewise.
5441 (*and_scc_scc_cmp): Likewise.
5443 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
5444 Alan Hayard <alan.hayward@arm.com>
5445 David Sherwood <david.sherwood@arm.com>
5447 * target.def (can_change_mode_class): New hook.
5448 (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
5449 (hard_regno_nregs): Likewise.
5450 * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
5451 * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
5452 * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
5453 (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
5454 (LOAD_EXTEND_OP): Update accordingly.
5455 * doc/tm.texi: Regenerate.
5456 * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
5457 CANNOT_CHANGE_MODE_CLASS.
5458 * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
5459 (REG_CAN_CHANGE_MODE_P): ...this new macro.
5460 * combine.c (simplify_set): Update accordingly.
5461 * emit-rtl.c (validate_subreg): Likewise.
5462 * recog.c (general_operand): Likewise.
5463 * regcprop.c (mode_change_ok): Likewise.
5464 * reload1.c (choose_reload_regs): Likewise.
5465 (inherit_piecemeal_p): Likewise.
5466 * rtlanal.c (simplify_subreg_regno): Likewise.
5467 * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
5468 instead of CANNOT_CHANGE_MODE_CLASS.
5469 (reload_cse_simplify_operands): Likewise.
5470 * reload.c (push_reload): Use targetm.can_change_mode_class
5471 instead of CANNOT_CHANGE_MODE_CLASS.
5472 (push_reload): Likewise. Also use REG_CAN_CHANGE_MODE_P instead of
5473 REG_CANNOT_CHANGE_MODE_P.
5474 * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5475 * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
5476 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5477 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5478 * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5479 (arm_can_change_mode_class): New function.
5480 * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
5481 than CANNOT_CHANGE_MODE_CLASS in comments.
5482 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5483 * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
5484 * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
5485 (ix86_can_change_mode_class): ...this new function, inverting the
5486 sense of the return value.
5487 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5488 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5489 * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5490 (ia64_can_change_mode_class): New function.
5491 * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5492 * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
5493 * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
5494 (m32c_can_change_mode_class): ...this new function, inverting the
5495 sense of the return value.
5496 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5497 * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5498 * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
5499 * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
5500 (mips_can_change_mode_class): ...this new function, inverting the
5501 sense of the return value.
5502 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5503 * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5504 * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5505 (msp430_can_change_mode_class): New function.
5506 * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5507 * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
5508 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5509 * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5510 * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5511 * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
5512 * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5513 (pa_cannot_change_mode_class): Replace with...
5514 (pa_can_change_mode_class): ...this new function, inverting the
5515 sense of the return value.
5516 (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
5517 than CANNOT_CHANGE_MODE_CLASS in comments.
5518 * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5519 * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
5520 * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5521 (pdp11_cannot_change_mode_class): Replace with...
5522 (pdp11_can_change_mode_class): ...this new function, inverting the
5523 sense of the return value.
5524 * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5525 * config/powerpcspe/powerpcspe-protos.h
5526 (rs6000_cannot_change_mode_class_ptr): Delete.
5527 * config/powerpcspe/powerpcspe.c
5528 (rs6000_cannot_change_mode_class_ptr): Delete.
5529 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5530 (rs6000_option_override_internal): Assign to
5531 targetm.can_change_mode_class instead of
5532 rs6000_cannot_change_mode_class_ptr.
5533 (rs6000_cannot_change_mode_class): Replace with...
5534 (rs6000_can_change_mode_class): ...this new function, inverting the
5535 sense of the return value.
5536 (rs6000_debug_cannot_change_mode_class): Replace with...
5537 (rs6000_debug_can_change_mode_class): ...this new function.
5538 * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5539 * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
5540 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5541 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5542 * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
5544 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
5545 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5546 (rs6000_option_override_internal): Assign to
5547 targetm.can_change_mode_class instead of
5548 rs6000_cannot_change_mode_class_ptr.
5549 (rs6000_cannot_change_mode_class): Replace with...
5550 (rs6000_can_change_mode_class): ...this new function, inverting the
5551 sense of the return value.
5552 (rs6000_debug_cannot_change_mode_class): Replace with...
5553 (rs6000_debug_can_change_mode_class): ...this new function.
5554 * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5555 * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
5556 * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
5557 (s390_can_change_mode_class): ...this new function, inverting the
5558 sense of the return value.
5559 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5560 * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5561 * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
5562 * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5563 (sh_cannot_change_mode_class): Replace with...
5564 (sh_can_change_mode_class): ...this new function, inverting the
5565 sense of the return value.
5566 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5567 * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5568 (sparc_can_change_mode_class): New function.
5569 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5570 * config/spu/spu.c (spu_can_change_mode_class): New function.
5571 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5572 * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5573 * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5574 (visium_can_change_mode_class): New function.
5575 * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
5577 2017-09-15 Richard Biener <rguenther@suse.de>
5579 PR tree-optimization/82217
5580 * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
5581 but not undefined case.
5583 2017-09-15 Jakub Jelinek <jakub@redhat.com>
5586 * postreload.c (reload_cse_simplify_operands): Skip
5587 NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
5589 2017-09-15 Richard Biener <rguenther@suse.de>
5591 PR tree-optimization/68823
5592 * graphite-scop-detection.c (build_alias_set): If we have a
5593 possible dependence check whether we can handle them by just
5594 looking at the DRs DR_ACCESS_FNs.
5595 (build_scops): If build_alias_set fails, fail the SCOP.
5597 2017-09-14 Michael Meissner <meissner@linux.vnet.ibm.com>
5599 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
5600 to support float128 built-in functions that require the ISA 3.0
5602 (BU_FLOAT128_3_HW): Likewise.
5603 (SQRTF128): Add support for the IEEE 128-bit square root and fma
5605 (FMAF128): Likewise.
5607 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
5608 support for built-in functions that need the ISA 3.0 IEEE 128-bit
5609 floating point instructions.
5610 (rs6000_invalid_builtin): Likewise.
5611 (rs6000_builtin_mask_names): Likewise.
5612 * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
5613 (RS6000_BTM_FLOAT128_HW): Likewise.
5614 (RS6000_BTM_COMMON): Likewise.
5615 * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
5617 * doc/extend.texi (RS/6000 built-in functions): Document the
5618 IEEE 128-bit floating point square root and fused multiply-add
5621 2017-09-14 Pat Haugen <pthaugen@us.ibm.com>
5623 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
5624 reg (r2) isn't in the set of registers defined in the prologue.
5626 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
5627 Alan Hayward <alan.hayward@arm.com>
5628 David Sherwood <david.sherwood@arm.com>
5630 * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
5631 (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
5632 (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
5633 (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
5634 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
5636 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
5637 max_vectorization_factor.
5638 (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
5640 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
5641 Alan Hayward <alan.hayward@arm.com>
5642 David Sherwood <david.sherwood@arm.com>
5644 * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
5645 (vect_worthwhile_without_simd_p): Declare.
5646 * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
5647 (vectorizable_reduction): Use it.
5648 * tree-vect-stmts.c (vectorizable_shift): Likewise.
5649 (vectorizable_operation): Likewise.
5651 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
5652 Alan Hayward <alan.hayward@arm.com>
5653 David Sherwood <david.sherwood@arm.com>
5655 * tree-vectorizer.h (vect_get_num_copies): New function.
5656 * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
5657 * tree-vect-loop.c (vectorizable_reduction): Likewise.
5658 (vectorizable_induction): Likewise.
5659 (vectorizable_live_operation): Likewise.
5660 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
5661 (vectorizable_bswap): Likewise.
5662 (vectorizable_call): Likewise.
5663 (vectorizable_conversion): Likewise.
5664 (vectorizable_assignment): Likewise.
5665 (vectorizable_shift): Likewise.
5666 (vectorizable_operation): Likewise.
5667 (vectorizable_store): Likewise.
5668 (vectorizable_load): Likewise.
5669 (vectorizable_condition): Likewise.
5670 (vectorizable_comparison): Likewise.
5671 (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
5673 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
5674 Alan Hayward <alan.hayward@arm.com>
5675 David Sherwood <david.sherwood@arm.com>
5677 * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
5678 of vect_init_vector.
5680 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
5681 Alan Hayward <alan.hayward@arm.com>
5682 David Sherwood <david.sherwood@arm.com>
5684 * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
5685 an inline wrapper that provides a location.
5686 (gimple_build_vector): Likewise.
5687 * gimple-fold.c (gimple_build_vector_from_val): New function.
5688 (gimple_build_vector): Likewise.
5689 * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
5690 functions to build the initial value. Always return a gimple value.
5691 (get_initial_defs_for_reduction): Likewise. Only compute
5693 (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
5694 vect_init_vector on the results from get_initial_def(s)_for_reduction.
5695 (vectorizable_induction): Use gimple_build_vector rather than
5698 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
5699 Alan Hayward <alan.hayward@arm.com>
5700 David Sherwood <david.sherwood@arm.com>
5702 * target.h (vec_perm_indices): New typedef.
5703 (auto_vec_perm_indices): Likewise.
5704 * optabs-query.h: Include target.h
5705 (can_vec_perm_p): Take a vec_perm_indices *.
5706 * optabs-query.c (can_vec_perm_p): Likewise.
5707 (can_mult_highpart_p): Update accordingly. Use auto_vec_perm_indices.
5708 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
5709 * tree-vect-generic.c (lower_vec_perm): Likewise.
5710 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
5711 (vect_grouped_load_supported): Likewise.
5712 (vect_shift_permute_load_chain): Likewise.
5713 (vect_permute_store_chain): Use auto_vec_perm_indices.
5714 (vect_permute_load_chain): Likewise.
5715 * fold-const.c (fold_vec_perm): Take vec_perm_indices.
5716 (fold_ternary_loc): Update accordingly. Use auto_vec_perm_indices.
5717 Update uses of can_vec_perm_p.
5718 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
5719 mode with a number of elements. Take a vec_perm_indices *.
5720 (vect_create_epilog_for_reduction): Update accordingly.
5721 Use auto_vec_perm_indices.
5722 (have_whole_vector_shift): Likewise. Update call to can_vec_perm_p.
5723 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
5724 (vect_transform_slp_perm_load): Likewise.
5725 (vect_schedule_slp_instance): Use auto_vec_perm_indices.
5726 * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
5727 (vect_gen_perm_mask_checked): Likewise.
5728 * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
5729 (vect_gen_perm_mask_checked): Likewise.
5730 (vectorizable_mask_load_store): Use auto_vec_perm_indices.
5731 (vectorizable_store): Likewise.
5732 (vectorizable_load): Likewise.
5733 (perm_mask_for_reverse): Likewise. Update call to can_vec_perm_p.
5734 (vectorizable_bswap): Likewise.
5736 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
5737 Alan Hayward <alan.hayward@arm.com>
5738 David Sherwood <david.sherwood@arm.com>
5740 * tree.h (build_vector): Take a vec<tree> instead of a tree *.
5741 * tree.c (build_vector): Likewise.
5742 (build_vector_from_ctor): Update accordingly.
5743 (build_vector_from_val): Likewise.
5744 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
5745 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
5746 * tree-vect-generic.c (add_rshift): Likewise.
5747 (expand_vector_divmod): Likewise.
5748 (optimize_vector_constructor): Likewise.
5749 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5750 (vect_transform_slp_perm_load): Likewise.
5751 (vect_schedule_slp_instance): Likewise.
5752 * tree-vect-stmts.c (vectorizable_bswap): Likewise.
5753 (vectorizable_call): Likewise.
5754 (vect_gen_perm_mask_any): Likewise. Add elements in order.
5755 * expmed.c (make_tree): Likewise.
5756 * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
5757 a vector passed to build_vector.
5758 (fold_convert_const): Likewise.
5759 (exact_inverse): Likewise.
5760 (fold_ternary_loc): Likewise.
5761 (fold_relational_const): Likewise.
5762 (const_binop): Likewise. Use VECTOR_CST_ELT directly when operating
5763 on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
5764 (const_unop): Likewise. Store the reduction accumulator in a
5765 variable rather than an array.
5766 (vec_cst_ctor_to_array): Take the number of elements as a parameter.
5767 (fold_vec_perm): Update calls accordingly. Use auto_vec<tree> for
5768 the new vector, rather than constructing it after the input arrays.
5769 (native_interpret_vector): Use auto_vec<tree> when building
5770 a vector passed to build_vector. Add elements in order.
5771 * tree-vect-loop.c (get_initial_defs_for_reduction): Use
5772 auto_vec<tree> when building a vector passed to build_vector.
5773 (vect_create_epilog_for_reduction): Likewise.
5774 (vectorizable_induction): Likewise.
5775 (get_initial_def_for_reduction): Likewise. Fix indentation of
5777 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
5779 (sparc_fold_builtin): Use auto_vec<tree> when building a vector
5780 passed to build_vector.
5782 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
5783 Alan Hayward <alan.hayward@arm.com>
5784 David Sherwood <david.sherwood@arm.com>
5786 * tree-core.h (tree_base::u): Add an "nelts" field.
5787 (tree_vector): Use VECTOR_CST_NELTS as the length.
5788 * tree.c (tree_size): Likewise.
5789 (make_vector): Initialize VECTOR_CST_NELTS.
5790 * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
5791 * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
5792 TYPE_VECTOR_SUBPARTS.
5793 * expr.c (const_vector_mask_from_tree): Consistently use "units"
5794 as the number of units, setting it from VECTOR_CST_NELTS.
5795 (const_vector_from_tree): Likewise.
5796 * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
5797 TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
5798 (fold_negate_expr_1): Likewise.
5799 (fold_convert_const): Likewise.
5800 (const_binop): Likewise. Differentiate the number of output and
5802 (const_unop): Likewise.
5803 (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
5804 in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
5805 in cases that did the opposite.
5807 2017-09-14 Richard Biener <rguenther@suse.de>
5809 * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
5812 2017-09-14 Eric Botcazou <ebotcazou@adacore.com>
5814 * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
5816 2017-09-14 Jakub Jelinek <jakub@redhat.com>
5819 * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
5820 if and where to split a bb, except for splitting before debug insn
5821 sequences followed by non-label real insn. Delete debug insns
5822 in between basic blocks.
5824 * combine.c (make_compound_operation_int): Formatting fixes.
5826 * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
5827 * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
5828 * config/netbsd.h (LINK_EH_SPEC): Likewise.
5829 * config/sol2.h (LINK_EH_SPEC): Likewise.
5830 * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
5831 * config/s390/linux.h (LINK_SPEC): Likewise.
5832 * config/freebsd.h (LINK_EH_SPEC): Likewise.
5833 * config/openbsd.h (LINK_EH_SPEC): Likewise.
5834 * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
5835 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
5836 * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
5837 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
5838 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
5839 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
5841 2017-09-13 Jakub Jelinek <jakub@redhat.com>
5843 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
5845 (ENDFILE_LINUX_SPEC): Likewise.
5846 (LINK_EH_SPEC): Likewise.
5847 * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
5848 (LINK_OS_LINUX_SPEC32): Likewise.
5849 (LINK_OS_LINUX_SPEC64): Likewise.
5850 * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
5851 (LINK_OS_LINUX_SPEC): Likewise.
5853 2017-09-13 Martin Liska <mliska@suse.cz>
5856 * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
5857 CASE_HIGH is NULL_TREE.
5859 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
5860 Alan Hayward <alan.hayward@arm.com>
5861 David Sherwood <david.sherwood@arm.com>
5863 * target.def (secondary_memory_needed): New hook.
5864 (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
5865 instead of SECONDARY_MEMORY_NEEDED.
5866 (secondary_memory_needed_mode): Likewise.
5867 * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
5868 * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
5869 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
5870 (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
5871 (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
5872 * doc/tm.texi: Regenerate.
5873 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
5874 * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
5875 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5876 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
5877 * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
5878 * config/i386/i386.c (inline_secondary_memory_needed): Put the
5879 mode argument first and change the reg_class arguments to reg_class_t.
5880 (ix86_secondary_memory_needed): Likewise. Remove the strict parameter.
5881 Make static. Update the call to inline_secondary_memory_needed.
5882 (ix86_register_move_cost): Update the call to
5883 inline_secondary_memory_needed.
5884 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5885 * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
5887 * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
5888 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
5890 * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
5891 * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
5892 * config/mips/mips.c (mips_secondary_memory_needed): Make static
5893 and match hook interface. Add comment from mips.h.
5894 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5895 * config/mmix/mmix.md (truncdfsf2): Refer to
5896 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
5898 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
5899 (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
5900 * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5901 (pa_secondary_memory_needed): New function.
5902 * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
5903 * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
5904 * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5905 (pdp11_secondary_memory_needed): Make static and match hook interface.
5906 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
5907 * config/powerpcspe/powerpcspe-protos.h
5908 (rs6000_secondary_memory_needed_ptr): Delete.
5909 * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
5911 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5912 (rs6000_option_override_internal): Assign to
5913 targetm.secondary_memory_needed rather than
5914 rs6000_secondary_memory_needed_ptr.
5915 (rs6000_secondary_memory_needed): Match hook interface.
5916 (rs6000_debug_secondary_memory_needed): Likewise.
5917 * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
5918 * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
5919 (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
5920 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5921 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
5922 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
5924 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
5925 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5926 (rs6000_option_override_internal): Assign to
5927 targetm.secondary_memory_needed rather than
5928 rs6000_secondary_memory_needed_ptr.
5929 (rs6000_secondary_memory_needed): Match hook interface.
5930 (rs6000_debug_secondary_memory_needed): Likewise.
5931 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
5932 * config/s390/s390.c (s390_secondary_memory_needed): New function.
5933 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5934 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
5935 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
5936 (sparc_secondary_memory_needed): New function.
5937 * lra-constraints.c (check_and_process_move): Refer to
5938 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
5940 (curr_insn_transform): Likewise.
5941 (process_alt_operands): Use targetm.secondary_memory_needed
5942 instead of TARGET_SECONDARY_MEMORY_NEEDED.
5943 (check_secondary_memory_needed_p): Likewise.
5944 (choose_split_class): Likewise.
5945 * reload.c: Unconditionally include code that was previously
5946 conditional on SECONDARY_MEMORY_NEEDED.
5947 (push_secondary_reload): Use targetm.secondary_memory_needed
5948 instead of TARGET_SECONDARY_MEMORY_NEEDED.
5949 (push_reload): Likewise.
5950 * reload1.c: Unconditionally include code that was previously
5951 conditional on SECONDARY_MEMORY_NEEDED.
5952 (choose_reload_regs): Use targetm.secondary_memory_needed
5953 instead of TARGET_SECONDARY_MEMORY_NEEDED.
5954 (gen_reload): Likewise.
5955 * system.h (SECONDARY_MEMORY_NEEDED): Poison.
5957 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
5958 Alan Hayward <alan.hayward@arm.com>
5959 David Sherwood <david.sherwood@arm.com>
5961 * target.def (secondary_memory_needed_mode): New hook:
5962 * targhooks.c (default_secondary_memory_needed_mode): Declare.
5963 * targhooks.h (default_secondary_memory_needed_mode): New function.
5964 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
5965 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
5966 * doc/tm.texi: Regenerate.
5967 * lra-constraints.c (check_and_process_move): Use
5968 targetm.secondary_memory_needed_mode instead of
5969 TARGET_SECONDARY_MEMORY_NEEDED_MODE.
5970 (curr_insn_transform): Likewise.
5971 * reload.c (get_secondary_mem): Likewise.
5972 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5973 * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
5975 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5976 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5977 * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
5978 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5979 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
5981 * config/powerpcspe/powerpcspe-protos.h
5982 (rs6000_secondary_memory_needed_mode): Delete.
5983 * config/powerpcspe/powerpcspe.c
5984 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5985 (rs6000_secondary_memory_needed_mode): Make static.
5986 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5987 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
5989 * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
5991 (rs6000_secondary_memory_needed_mode): Make static.
5992 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5993 * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
5994 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
5995 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
5996 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
5998 (sparc_secondary_memory_needed_mode): New function.
5999 * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
6001 2017-09-13 Jackson Woodruff <jackson.woodruff@arm.com>
6003 * config/aarch64/constraints.md (Umq): New constraint.
6004 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
6006 (mov<mode>): Update condition.
6008 2017-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6010 * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
6011 when bitposition is the same.
6013 2017-09-13 Richard Biener <rguenther@suse.de>
6015 * dwarf2out.c (output_die_symbol): Remove.
6016 (output_die): Do not output a DIEs symbol.
6018 2017-09-13 Richard Biener <rguenther@suse.de>
6021 * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
6022 default-def to avoid breaking iterator update with the weird
6023 interaction with cgraph_update_edges_for_call_stmt_node.
6025 2017-09-13 Richard Biener <rguenther@suse.de>
6027 * tree-cfg.c (verify_gimple_assign_binary): Add verification
6028 for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
6029 VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
6030 (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
6032 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org>
6034 * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
6035 Disable pc relative literal load irrespective of
6036 TARGET_FIX_ERR_A53_84341 for default.
6038 2017-09-12 Eric Botcazou <ebotcazou@adacore.com>
6040 * config/sparc/sparc.c (output_return): Output the source location of
6041 the insn in the delay slot, if any.
6042 (output_sibcall): Likewise.
6044 2017-09-12 H.J. Lu <hongjiu.lu@intel.com>
6047 * common.opt (-static-pie): New alias.
6048 (shared): Negate static-pie.
6049 (-no-pie): Update help text.
6051 (static-pie): New option.
6052 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
6053 -static-pie support.
6054 (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
6055 (LINK_EH_SPEC): Likewise.
6056 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
6057 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
6058 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
6059 * gcc.c (LINK_COMMAND_SPEC): Likewise.
6060 (init_gcc_specs): Likewise.
6061 (init_spec): Likewise.
6062 (display_help): Update help message for -pie.
6063 * doc/invoke.texi: Update -pie, -no-pie and -static. Document
6066 2017-09-12 Wilco Dijkstra <wdijkstr@arm.com>
6068 * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
6069 (movdi_aarch64): Likewise.
6070 (movti_aarch64): Likewise.
6072 2017-09-12 Simon Wright <simon@pushface.org>
6075 * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
6076 calculation of the minor version, always output as 0.
6078 2017-09-12 Jakub Jelinek <jakub@redhat.com>
6081 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
6082 ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
6083 on it early, rather than manual conversion late. For
6084 ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
6085 instead of performing manual conversion.
6087 2017-09-12 Carl Love <cel@us.ibm.com>
6089 * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
6090 vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
6092 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
6093 VMULOSW): Add definitions.
6094 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6095 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
6096 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
6097 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
6098 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
6100 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
6102 * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
6104 (movti_aarch64): Likewise.
6105 (movdf_aarch64): Likewise.
6106 (movtf_aarch64): Likewise.
6107 (load_pairdi): Likewise.
6108 (store_pairdi): Likewise.
6109 (load_pairdf): Likewise.
6110 (store_pairdf): Likewise.
6111 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
6112 (storewb_pair<GPI:mode>_<P:mode>): Likewise.
6113 (ldr_got_small_<mode>): Likewise.
6114 (ldr_got_small_28k_<mode>): Likewise.
6115 (ldr_got_tiny): Likewise.
6116 * config/aarch64/iterators.md (ldst_sz): New.
6117 (ldpstp_sz): Likewise.
6118 * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
6120 (thunderx_load): Split load_8 to load_16.
6121 * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
6123 (thunderx2t99_storepair_basic): Split store_8 to store_16.
6124 * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
6125 (xgene1_store_pair): Split store_8 to store_16.
6126 * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
6127 (falkor_st_0_st_sd): Split store_8 to store_16.
6129 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
6131 * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
6132 and store1/2/3/4 to store_4/8/12/16.
6133 * config/aarch64/aarch64.md: Update for rename.
6134 * config/arm/arm.md: Likewise.: Likewise.
6135 * config/arm/arm.c: Likewise.
6136 * config/arm/thumb1.md: Likewise.
6137 * config/arm/thumb2.md: Likewise.
6138 * config/arm/vfp.md: Likewise.
6139 * config/arm/arm-generic.md: Likewise.
6140 * config/arm/arm1020e.md: Likewise.
6141 * config/arm/arm1026ejs.md: Likewise.
6142 * config/arm/arm1136jfs.md: Likewise.
6143 * config/arm/arm926ejs.md: Likewise.
6144 * config/arm/cortex-a15.md: Likewise.
6145 * config/arm/cortex-a17.md: Likewise.
6146 * config/arm/cortex-a5.md: Likewise.
6147 * config/arm/cortex-a53.md: Likewise.
6148 * config/arm/cortex-a57.md: Likewise.
6149 * config/arm/cortex-a7.md: Likewise.
6150 * config/arm/cortex-a8.md: Likewise.
6151 * config/arm/cortex-a9.md: Likewise.
6152 * config/arm/cortex-m4.md: Likewise.
6153 * config/arm/cortex-m7.md: Likewise.
6154 * config/arm/cortex-r4.md: Likewise.
6155 * config/arm/exynos-m1.md: Likewise.
6156 * config/arm/fa526.md: Likewise.
6157 * config/arm/fa606te.md: Likewise.
6158 * config/arm/fa626te.md: Likewise.
6159 * config/arm/fa726te.md: Likewise.
6160 * config/arm/fmp626.md: Likewise.
6161 * config/arm/iwmmxt.md: Likewise.
6162 * config/arm/ldmstm.md: Likewise.
6163 * config/arm/marvell-pj4.md: Likewise.
6164 * config/arm/xgene1.md: Likewise.
6165 * config/aarch64/thunderx.md: Likewise.
6166 * config/aarch64/thunderx2t99.md: Likewise.
6167 * config/aarch64/falkor.md: Likewise.
6169 2017-09-12 Martin Liska <mliska@suse.cz>
6171 * attribs.c (private_lookup_attribute): New function.
6172 * attribs.h (private_lookup_attribute): Declared here.
6173 (lookup_attribute): Called from this place.
6175 2017-09-12 Richard Biener <rguenther@suse.de>
6177 PR tree-optimization/82157
6178 * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
6179 stmts with side-effects.
6181 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
6182 Alan Hayward <alan.hayward@arm.com>
6183 David Sherwood <david.sherwood@arm.com>
6185 * target.def (hard_regno_nregs): New hook.
6186 (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
6187 * targhooks.h (default_hard_regno_nregs): Declare.
6188 * targhooks.c (default_hard_regno_nregs): New function.
6189 * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
6190 (TARGET_HARD_REGNO_NREGS): ...this hook.
6191 (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
6192 (CLASS_MAX_NREGS): Likewise.
6193 * doc/tm.texi: Regenerate.
6194 * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
6195 instead of HARD_REGNO_NREGS.
6196 * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
6197 HARD_REGNO_NREGS in the comment.
6198 * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
6199 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
6200 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
6201 Return an unsigned int.
6202 (TARGET_HARD_REGNO_NREGS): Redefine.
6203 * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
6204 * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
6205 * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
6206 (arc_hard_regno_nregs): New function.
6207 * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
6208 * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
6209 (arm_hard_regno_nregs): New function.
6210 * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
6211 * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
6212 * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
6213 (TARGET_HARD_REGNO_NREGS): Redefine.
6214 * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
6215 * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
6216 (HARD_REGNO_NREGS): Delete.
6217 * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
6218 (cr16_hard_regno_nregs): New function.
6219 (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
6220 * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
6221 * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
6222 (cris_hard_regno_nregs): New function.
6223 * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
6224 * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
6225 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
6226 * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
6227 (CLASS_MAX_NREGS): Remove outdated copy of documentation.
6228 * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
6229 * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
6230 (frv_hard_regno_nregs): Make static. Take and return an
6232 (frv_class_max_nregs): Remove outdated copy of documentation.
6233 * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
6234 * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
6235 * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
6236 * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
6237 * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
6238 * config/i386/i386.c (ix86_hard_regno_nregs): New function.
6239 (TARGET_HARD_REGNO_NREGS): Redefine.
6240 * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
6241 (CLASS_MAX_NREGS): Update comment.
6242 * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
6243 (ia64_hard_regno_nregs): New function.
6244 * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
6245 * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
6246 * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
6247 * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
6248 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
6250 (m32c_hard_regno_nregs): Likewise. Make static.
6251 (TARGET_HARD_REGNO_NREGS): Redefine.
6252 * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
6253 * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
6254 * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
6255 (m68k_hard_regno_nregs): New function.
6256 * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
6257 * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
6258 * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
6259 * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
6260 * config/mips/mips.c (mips_hard_regno_nregs): Make static.
6261 Take and return an unsigned int.
6262 (TARGET_HARD_REGNO_NREGS): Redefine.
6263 * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
6264 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
6265 * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
6266 * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
6267 * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
6268 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
6269 * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
6270 (msp430_hard_regno_nregs): Make static. Take and return an
6272 * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
6273 * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
6274 * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
6275 (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
6276 * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
6277 * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
6278 * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
6279 (TARGET_HARD_REGNO_NREGS): Redefine.
6280 * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
6281 (PA_HARD_REGNO_NREGS): ...this.
6282 * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
6283 (PA_HARD_REGNO_NREGS): ...this.
6284 * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
6285 (pa_hard_regno_nregs): New function.
6286 * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
6287 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
6288 (pdp11_hard_regno_nregs): New function.
6289 * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
6290 * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
6291 (rs6000_hard_regno_nregs_hook): New function.
6292 * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
6293 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
6294 * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
6295 Take and return an unsigned int. Move earlier in file.
6296 (TARGET_HARD_REGNO_NREGS): Redefine.
6297 * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
6298 * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
6299 * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
6300 (rl78_hard_regno_nregs): Make static. Take and return an
6302 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
6303 * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
6304 (rs6000_hard_regno_nregs_hook): New function.
6305 * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
6306 * config/rx/rx.c (rx_hard_regno_nregs): New function.
6307 (TARGET_HARD_REGNO_NREGS): Redefine.
6308 * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
6309 * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
6310 instead of HARD_REGNO_NREGS.
6311 (s390_hard_regno_nregs): New function.
6312 (s390_hard_regno_mode_ok): Add comment from s390.h.
6313 (TARGET_HARD_REGNO_NREGS): Redefine.
6314 * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
6315 * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
6316 (sh_hard_regno_nregs): New function.
6317 (sh_pass_in_reg_p): Use it.
6318 * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
6319 * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
6320 (sparc_hard_regno_nregs): New function.
6321 * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
6322 * config/spu/spu.c (spu_hard_regno_nregs): New function.
6323 (spu_function_arg_advance): Use it, supplying a valid register number.
6324 (TARGET_HARD_REGNO_NREGS): Redefine.
6325 * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
6326 * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
6327 * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
6328 * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
6329 * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
6330 * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
6331 (CLASS_MAX_NREGS): Remove copy of old documentation.
6332 * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
6333 (visium_hard_regno_nregs): New function.
6334 (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
6335 * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
6336 * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
6337 xtensa_hard_regno_nregs): New function.
6338 * system.h (HARD_REGNO_NREGS): Poison.
6340 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
6342 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
6343 hard_regno_nregs instead of HARD_REGNO_NREGS.
6344 (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
6345 * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
6346 (c6x_expand_epilogue): Likewise.
6347 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
6348 (frv_read_iacc_argument): Likewise.
6349 * config/sh/sh.c: Include regs.h.
6350 (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
6351 (regs_used): Likewise.
6352 (output_stack_adjust): Likewise.
6353 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
6354 * expmed.c: Include regs.h.
6355 (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
6356 * ree.c: Include regs.h.
6357 (combine_reaching_defs): Use hard_regno_nregs instead of
6359 (add_removable_extension): Likewise.
6361 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
6363 * regs.h (hard_regno_nregs): Turn into a function.
6364 (end_hard_regno): Update accordingly.
6365 * caller-save.c (setup_save_areas): Likewise.
6366 (save_call_clobbered_regs): Likewise.
6367 (replace_reg_with_saved_mem): Likewise.
6368 (insert_restore): Likewise.
6369 (insert_save): Likewise.
6370 * combine.c (can_change_dest_mode): Likewise.
6371 (move_deaths): Likewise.
6372 (distribute_notes): Likewise.
6373 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
6374 * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
6375 (rs6000_split_multireg_move): Likewise.
6376 (rs6000_register_move_cost): Likewise.
6377 (rs6000_memory_move_cost): Likewise.
6378 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
6379 (rs6000_split_multireg_move): Likewise.
6380 (rs6000_register_move_cost): Likewise.
6381 (rs6000_memory_move_cost): Likewise.
6382 * cselib.c (cselib_reset_table): Likewise.
6383 (cselib_lookup_1): Likewise.
6384 * emit-rtl.c (set_mode_and_regno): Likewise.
6385 * function.c (aggregate_value_p): Likewise.
6386 * ira-color.c (setup_profitable_hard_regs): Likewise.
6387 (check_hard_reg_p): Likewise.
6388 (calculate_saved_nregs): Likewise.
6389 (assign_hard_reg): Likewise.
6390 (improve_allocation): Likewise.
6391 (calculate_spill_cost): Likewise.
6392 * ira-emit.c (modify_move_list): Likewise.
6393 * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
6394 (ira_hard_reg_in_set_p): Likewise.
6395 * ira.c (setup_reg_mode_hard_regset): Likewise.
6396 (clarify_prohibited_class_mode_regs): Likewise.
6397 (check_allocation): Likewise.
6398 * lra-assigns.c (find_hard_regno_for_1): Likewise.
6399 (lra_setup_reg_renumber): Likewise.
6400 (setup_try_hard_regno_pseudos): Likewise.
6401 (spill_for): Likewise.
6402 (assign_hard_regno): Likewise.
6403 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
6404 * lra-constraints.c (in_class_p): Likewise.
6405 (lra_constraint_offset): Likewise.
6406 (simplify_operand_subreg): Likewise.
6407 (lra_constraints): Likewise.
6408 (split_reg): Likewise.
6409 (split_if_necessary): Likewise.
6410 (invariant_p): Likewise.
6411 (inherit_in_ebb): Likewise.
6412 * lra-lives.c (process_bb_lives): Likewise.
6413 * lra-remat.c (reg_overlap_for_remat_p): Likewise.
6414 (get_hard_regs): Likewise.
6415 (do_remat): Likewise.
6416 * lra-spills.c (assign_spill_hard_regs): Likewise.
6417 * mode-switching.c (create_pre_exit): Likewise.
6418 * postreload.c (reload_combine_recognize_pattern): Likewise.
6419 * recog.c (peep2_find_free_register): Likewise.
6420 * regcprop.c (kill_value_regno): Likewise.
6421 (set_value_regno): Likewise.
6422 (copy_value): Likewise.
6423 (maybe_mode_change): Likewise.
6424 (find_oldest_value_reg): Likewise.
6425 (copyprop_hardreg_forward_1): Likewise.
6426 * regrename.c (check_new_reg_p): Likewise.
6427 (regrename_do_replace): Likewise.
6428 * reload.c (push_reload): Likewise.
6429 (combine_reloads): Likewise.
6430 (find_dummy_reload): Likewise.
6431 (operands_match_p): Likewise.
6432 (find_reloads): Likewise.
6433 (find_equiv_reg): Likewise.
6434 (reload_adjust_reg_for_mode): Likewise.
6435 * reload1.c (count_pseudo): Likewise.
6436 (count_spilled_pseudo): Likewise.
6437 (find_reg): Likewise.
6438 (clear_reload_reg_in_use): Likewise.
6439 (free_for_value_p): Likewise.
6440 (allocate_reload_reg): Likewise.
6441 (choose_reload_regs): Likewise.
6442 (reload_adjust_reg_for_temp): Likewise.
6443 (emit_reload_insns): Likewise.
6444 (delete_output_reload): Likewise.
6445 * rtlanal.c (subreg_get_info): Likewise.
6446 * sched-deps.c (sched_analyze_reg): Likewise.
6447 * sel-sched.c (init_regs_for_mode): Likewise.
6448 (mark_unavailable_hard_regs): Likewise.
6449 (choose_best_reg_1): Likewise.
6450 (verify_target_availability): Likewise.
6451 * valtrack.c (dead_debug_insert_temp): Likewise.
6452 * var-tracking.c (track_loc_p): Likewise.
6453 (emit_note_insn_var_location): Likewise.
6454 * varasm.c (make_decl_rtl): Likewise.
6455 * reginfo.c (choose_hard_reg_mode): Likewise.
6456 (init_reg_modes_target): Refer directly to
6457 this_target_regs->x_hard_regno_nregs.
6459 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
6461 * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
6462 instead of hard_regno_nregs.
6464 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
6466 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
6467 end_hard_regno instead of hard_regno_nregs.
6468 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
6469 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
6470 * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
6471 * ira-color.c (improve_allocation): Likewise.
6472 * lra-assigns.c (find_hard_regno_for_1): Likewise.
6473 * lra-lives.c (mark_regno_live): Likewise.
6474 (mark_regno_dead): Likewise.
6475 * lra-remat.c (operand_to_remat): Likewise.
6476 * lra.c (collect_non_operand_hard_regs): Likewise.
6477 * postreload.c (reload_combine_note_store): Likewise.
6478 (move2add_valid_value_p): Likewise.
6479 * reload.c (regno_clobbered_p): Likewise.
6481 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
6483 * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
6485 * config/v850/v850.c (v850_reorg): Likewise.
6486 * reload.c (refers_to_regno_for_reload_p): Likewise.
6487 (find_equiv_reg): Likewise.
6488 * reload1.c (reload_reg_reaches_end_p): Likewise.
6490 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
6492 * caller-save.c (add_used_regs): Use REG_NREGS instead of
6494 * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
6495 * config/arm/arm.c (output_move_neon): Likewise.
6496 (arm_attr_length_move_neon): Likewise.
6497 (neon_split_vcombine): Likewise.
6498 * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
6499 (c6x_mark_reg_written): Likewise.
6500 (c6x_dwarf_register_span): Likewise.
6501 * config/i386/i386.c (ix86_save_reg): Likewise.
6502 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
6503 (rws_access_reg): Likewise.
6504 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
6505 * mode-switching.c (create_pre_exit): Likewise.
6506 * ree.c (combine_reaching_defs): Likewise.
6507 (add_removable_extension): Likewise.
6508 * regcprop.c (find_oldest_value_reg): Likewise.
6509 (copyprop_hardreg_forward_1): Likewise.
6510 * reload.c (reload_inner_reg_of_subreg): Likewise.
6511 (push_reload): Likewise.
6512 (combine_reloads): Likewise.
6513 (find_dummy_reload): Likewise.
6514 (reload_adjust_reg_for_mode): Likewise.
6515 * reload1.c (find_reload_regs): Likewise.
6516 (forget_old_reloads_1): Likewise.
6517 (reload_reg_free_for_value_p): Likewise.
6518 (reload_adjust_reg_for_temp): Likewise.
6519 (emit_reload_insns): Likewise.
6520 (delete_output_reload): Likewise.
6521 * sel-sched.c (choose_best_reg_1): Likewise.
6522 (choose_best_pseudo_reg): Likewise.
6524 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
6525 Alan Hayward <alan.hayward@arm.com>
6526 David Sherwood <david.sherwood@arm.com>
6528 * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
6529 * target.def (slow_unaligned_access): New hook.
6530 * targhooks.h (default_slow_unaligned_access): Declare.
6531 * targhooks.c (default_slow_unaligned_access): New function.
6532 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
6533 (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
6534 * doc/tm.texi: Regenerate.
6535 * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
6536 * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
6537 * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
6539 * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
6540 * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
6542 (rs6000_slow_unaligned_access): New function.
6543 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
6544 (expand_block_compare): Likewise.
6545 (expand_strn_compare): Likewise.
6546 (rs6000_rtx_costs): Likewise.
6547 * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
6548 (riscv_slow_unaligned_access): Likewise.
6549 * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
6550 (riscv_slow_unaligned_access_p): ...this and make static.
6551 (riscv_option_override): Update accordingly.
6552 (riscv_slow_unaligned_access): New function.
6553 (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
6554 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
6555 * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
6556 (rs6000_slow_unaligned_access): New function.
6557 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
6558 (rs6000_rtx_costs): Likewise.
6559 * config/rs6000/rs6000-string.c (expand_block_compare)
6560 (expand_strn_compare): Use targetm.slow_unaligned_access instead
6561 of SLOW_UNALIGNED_ACCESS.
6562 * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
6563 * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
6564 * calls.c (expand_call): Use targetm.slow_unaligned_access instead
6565 of SLOW_UNALIGNED_ACCESS.
6566 * expmed.c (simple_mem_bitfield_p): Likewise.
6567 * expr.c (alignment_for_piecewise_move): Likewise.
6568 (emit_group_load_1): Likewise.
6569 (emit_group_store): Likewise.
6570 (copy_blkmode_from_reg): Likewise.
6571 (emit_push_insn): Likewise.
6572 (expand_assignment): Likewise.
6573 (store_field): Likewise.
6574 (expand_expr_real_1): Likewise.
6575 * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
6576 * lra-constraints.c (simplify_operand_subreg): Likewise.
6577 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
6578 * gimple-ssa-store-merging.c: Likewise in block comment at start
6580 * tree-ssa-strlen.c: Include target.h.
6581 (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
6582 of SLOW_UNALIGNED_ACCESS.
6583 * system.h (SLOW_UNALIGNED_ACCESS): Poison.
6585 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
6587 PR rtl-optimization/82185
6588 * expmed.c (emit_store_flag_int): Only test tem if it has been
6591 2017-09-12 Richard Biener <rguenther@suse.de>
6594 * match.pd ((FTYPE) N CMP CST): Fix typo.
6596 2017-09-12 Simon Atanasyan <simon.atanasyan@imgtec.com>
6598 * config/mips/mips.c (mips_attribute_table): Add 'short_call'
6600 (mips_near_type_p): Add 'short_call' attribute as a synonym
6602 * doc/extend.texi (short_call): Document new function attribute.
6604 2017-09-12 Jakub Jelinek <jakub@redhat.com>
6607 * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
6608 assertion check that in the condition.
6609 (get_atomic_generic_size): Likewise. Before testing if parameter
6610 has pointer type, if it has array type, call for C++
6611 default_conversion to perform array-to-pointer conversion.
6613 2017-09-12 Richard Biener <rguenther@suse.de>
6615 * tree-vect-generic.c (expand_vector_operations_1): Do nothing
6616 for operations we cannot scalarize.
6618 2017-09-12 Aldy Hernandez <aldyh@redhat.com>
6620 * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
6621 vectors heap vectors. Clean up comments.
6622 Make visited_bbs a reference.
6623 (profitable_jump_thread_path): Make GC
6624 vectors heap vectors. Clean up comments.
6626 (convert_and_register_jump_thread_path): Make GC vectors heap
6628 (check_subpath_and_update_thread_path): Same. Clean up comments.
6629 Make visited_bbs a reference.
6630 (handle_phi): Abstract common code to to
6631 register_jump_thread_path_if_profitable.
6632 Rename VAR_BB to DEF_BB.
6634 Make GC vectors heap vectors.
6635 Make visited_bbs a reference.
6636 (handle_assignment): Same.
6637 (register_jump_thread_path_if_profitable): New.
6638 (fsm_find_control_statement_thread_paths): Rename VAR_BB to
6640 Make GC vectors heap vectors. Clean up comments.
6641 Make visited_bbs a reference.
6642 (find_jump_threads_backwards): Make visited_bbs live in the stack.
6643 * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
6646 2017-09-11 Max Filippov <jcmvbkbc@gmail.com>
6649 * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
6650 words of E_DImode object are reachable by xtensa_uimm8x4 access.
6652 2017-09-11 Vidya Praveen <vidyapraveen@arm.com>
6654 Revert r251800 and r251799.
6656 2017-09-11 Martin Jambor <mjambor@suse.cz>
6659 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
6660 arguments in advance.
6661 * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
6662 use it to find predecessor edges.
6663 (naive_outof_ssa): Collect vector of predecessors.
6665 2017-09-08 Jason Merrill <jason@redhat.com>
6667 PR c++/70029 - ICE with ref-qualifier and -flto
6668 * langhooks.h (struct lang_hooks_for_types): Add
6669 copy_lang_qualifiers.
6670 * attribs.c (build_type_attribute_qual_variant): Use it.
6671 * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
6673 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
6674 * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
6676 2017-09-08 Eric Botcazou <ebotcazou@adacore.com>
6679 * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
6680 (*mulsi3_sp64): New instruction.
6681 (mulsi3): New expander.
6683 2017-09-08 Uros Bizjak <ubizjak@gmail.com>
6685 * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
6687 2017-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6689 * sancov.c: Include memmodel.h.
6691 2017-09-07 Eric Botcazou <ebotcazou@adacore.com>
6694 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
6697 2017-09-07 Carl Love <cel@us.ibm.com>
6699 * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
6700 the sldi instruction.
6702 2017-09-07 David Edelsohn <dje.gcc@gmail.com>
6704 * sancov.c: Include tm_p.h.
6706 2017-09-07 Jakub Jelinek <jakub@redhat.com>
6709 * output.h (switch_to_other_text_partition): New declaration.
6710 * varasm.c (switch_to_other_text_partition): New function.
6711 * config/rs6000/rs6000.c (uses_TOC): Return 2 if
6712 NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
6713 (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
6714 to the other text partition before emitting LCL label and switch back
6715 after emitting the word after it.
6717 2017-09-07 Richard Biener <rguenther@suse.de>
6719 * passes.def (pass_split_crit_edges): Remove instance before PRE.
6720 * tree-ssa-pre.c (pass_pre::execute): Instead manually split
6721 critical edges here, after loop init.
6722 (pass_data_pre): Remove PROP_no_crit_edges flags.
6723 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
6724 for valueization of call args to avoid leaking VN_TOP.
6725 (visit_use): Assert we do not visit default defs.
6726 (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
6727 Use error_mark_node to more easily detect leaking VN_TOP.
6728 All default-defs are varying, not VN_TOP. Mark them visited.
6729 (run_scc_vn): Make code match comment.
6731 2017-09-07 Michael Meissner <meissner@linux.vnet.ibm.com>
6733 * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
6734 OPTION_MASK_FLOAT128_KEYWORD.
6735 (POWERPC_MASKS): Likewise.
6736 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
6737 support for the -mfloat128-type option, and make -mfloat128
6738 default on PowerPC Linux systems. Define or undefine
6739 __FLOAT128__ and __FLOAT128_HARDWARE__ for the current options.
6740 Define __float128 to be __ieee128 if IEEE 128-bit support is
6741 enabled, or undefine it.
6742 (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
6743 Delete defining __FLOAT128_TYPE__.
6744 * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
6745 -mfloat128-type option and make -mfloat128 default on PowerPC
6747 (TARGET_FLOAT128_TYPE): Likewise.
6748 (-mfloat128-type): Likewise.
6749 * config/rs6000/rs6000.c (rs6000_option_override_internal):
6750 Delete the -mfloat128-type option and make -mfloat128 default on
6751 PowerPC Linux systems. Always use __ieee128 to be the keyword for
6752 the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
6753 128-bit floating point is enabled. Change tests from using
6754 -mfloat128-type to -mfloat128.
6755 (rs6000_mangle_type): Use the correct mangling for the __float128
6756 type even if normal long double is restricted to 64-bits.
6757 (floatn_mode): Enable the _Float128 type by default on VSX Linux
6759 * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
6760 (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
6761 (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
6763 * doc/invoke.texi (RS/6000 and PowerPC Options): Update
6764 documentation for -mfloat128.
6766 2017-09-06 Olivier Hainque <hainque@adacore.com>
6768 * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
6770 2017-09-06 Wish Wu <wishwu007@gmail.com>
6771 Jakub Jelinek <jakub@redhat.com>
6773 * asan.c (initialize_sanitizer_builtins): Add
6774 BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
6775 BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
6776 BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
6777 BT_FN_VOID_UINT64_PTR variables.
6778 * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
6779 (BT_FN_VOID_UINT16_UINT16): Likewise.
6780 (BT_FN_VOID_UINT32_UINT32): Likewise.
6781 (BT_FN_VOID_FLOAT_FLOAT): Likewise.
6782 (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
6783 (BT_FN_VOID_UINT64_PTR): Likewise.
6784 * common.opt (flag_sanitize_coverage): New variable.
6785 (fsanitize-coverage=trace-pc): Remove.
6786 (fsanitize-coverage=): Add.
6787 * flag-types.h (enum sanitize_coverage_code): New enum.
6788 * fold-const.c (fold_range_test): Disable non-short-circuit
6789 optimization if flag_sanitize_coverage.
6790 (fold_truth_andor): Likewise.
6791 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
6792 * opts.c (COVERAGE_SANITIZER_OPT): Define.
6793 (coverage_sanitizer_opts): New array.
6794 (get_closest_sanitizer_option): Add OPTS argument, handle also
6795 OPT_fsanitize_coverage_.
6796 (parse_sanitizer_options): Adjusted to also handle
6797 OPT_fsanitize_coverage_.
6798 (common_handle_option): Add OPT_fsanitize_coverage_.
6799 * sancov.c (instrument_comparison, instrument_switch): New function.
6800 (sancov_pass): Add trace-cmp support.
6801 * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
6802 BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
6803 BUILT_IN_SANITIZER_COV_TRACE_CMP8,
6804 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
6805 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
6806 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
6807 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
6808 BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
6809 BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
6810 * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
6812 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
6814 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
6815 error. Only quit immediately if parsing is complete.
6816 (BEGIN): Initialize fatal_err and parse_done.
6817 (begin fpu, end fpu): Check number of arguments.
6818 (begin arch, end arch): Likewise.
6819 (begin cpu, end cpu): Likewise.
6820 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
6821 (optalias): Likewise.
6823 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
6825 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
6826 * config/arm/arm-isa.h: Delete. Move definitions to ...
6827 * arm-cpus.in: ... here. Use new feature and fgroup values.
6828 * config/arm/arm.c (arm_option_override): Use lower case for feature
6830 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
6831 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
6832 * config/arm/parsecpu.awk (END): Add new command 'isa'.
6834 (print_isa_bits_for): New function.
6835 (gen_isa): New function.
6836 (gen_comm_data): Use print_isa_bits_for.
6837 (define feature): New keyword.
6838 (define fgroup): New keyword.
6839 * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
6840 (arm-isa.h): Add rule to generate file.
6841 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
6842 case for feature bit names.
6844 2017-09-06 Richard Biener <rguenther@suse.de>
6846 * tree-ssa-pre.c (NECESSARY): Remove.
6847 (create_expression_by_pieces): Do not touch pass-local flags.
6848 (insert_into_preds_of_block): Likewise.
6849 (do_pre_regular_insertion): Likewise.
6850 (eliminate_insert): Likewise.
6851 (eliminate_dom_walker::before_dom_children): Likewise.
6852 (fini_eliminate): Do not look at inserted_exprs.
6853 (mark_operand_necessary): Remove.
6854 (remove_dead_inserted_code): Replace with simple work-list
6855 algorithm based on inserted_exprs and SSA uses.
6856 (pass_pre::execute): Re-order fini_eliminate and
6857 remove_dead_inserted_code.
6859 2017-09-06 Olivier Hainque <hainque@adacore.com>
6861 * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
6862 for VxWorks 7. Adjust surrounding comments.
6864 2017-09-06 Richard Biener <rguenther@suse.de>
6866 * gimple-ssa-strength-reduction.c
6867 (find_candidates_dom_walker::before_dom_children): Also allow
6870 2017-09-06 Richard Biener <rguenther@suse.de>
6872 PR tree-optimization/82108
6873 * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
6874 for gap in the non-permutation SLP case.
6876 2017-09-06 Martin Jambor <mjambor@suse.cz>
6878 PR tree-optimization/82078
6879 * tree-sra.c (sort_and_splice_var_accesses): Move call to
6880 add_access_to_work_queue...
6881 (build_accesses_from_assign): ...here.
6882 (propagate_all_subaccesses): Make sure racc is the group
6883 representative, if there is one.
6885 2017-09-06 Jakub Jelinek <jakub@redhat.com>
6888 * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
6891 2017-09-06 Richard Biener <rguenther@suse.de>
6893 * gimple-ssa-strength-reduction.c
6894 (find_candidates_dom_walker::before_doom_children): Use a
6895 type and not a mode check.
6897 2017-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
6900 * config/arm/predicates.md (arm_general_adddi_operand): Create new
6902 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
6904 2017-09-05 Jeff Law <law@redhat.com>
6906 PR tree-optimization/64910
6907 * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
6908 cases where we have 3 or more operands.
6910 2017-09-05 Jakub Jelinek <jakub@redhat.com>
6913 * omp-low.c (lower_omp_for): Recompute tree invariant if
6914 gimple_omp_for_initial/final is ADDR_EXPR.
6917 * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
6918 into gimple val before gimplification fo the COND_EXPR.
6920 2017-09-05 Aldy Hernandez <aldyh@redhat.com>
6922 * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
6923 REGION_COPY argument.
6924 (thread_through_all_blocks): Remove unused argument to
6925 duplicate_thread_path.
6927 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6928 Alan Hayward <alan.hayward@arm.com>
6929 David Sherwood <david.sherwood@arm.com>
6931 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
6932 Take a scalar_mode rather than a machine_mode.
6933 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
6934 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
6935 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
6936 (aarch64_gen_adjusted_ldpstp): Likewise.
6937 (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
6939 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6940 Alan Hayward <alan.hayward@arm.com>
6941 David Sherwood <david.sherwood@arm.com>
6943 * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
6944 Take a scalar_int_mode instead of a machine_mode.
6945 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
6946 (aarch64_output_scalar_simd_mov_immediate): Likewise.
6947 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
6948 (aarch64_simd_attr_length_rglist): Delete.
6949 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
6950 a scalar_int_mode instead of a machine_mode.
6951 (aarch64_add_offset): Likewise.
6952 (aarch64_internal_mov_immediate): Likewise
6953 (aarch64_add_constant_internal): Likewise.
6954 (aarch64_add_constant): Likewise.
6955 (aarch64_movw_imm): Likewise.
6956 (aarch64_rtx_arith_op_extract_p): Likewise.
6957 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
6958 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
6959 Remove assert that the mode isn't a vector.
6960 (aarch64_output_scalar_simd_mov_immediate): Likewise.
6961 (aarch64_expand_mov_immediate): Update calls after above changes.
6962 (aarch64_output_casesi): Use as_a <scalar_int_mode>.
6963 (aarch64_and_bitmask_imm): Check for scalar integer modes.
6964 (aarch64_move_imm): Likewise.
6965 (aarch64_can_const_movi_rtx_p): Likewise.
6966 (aarch64_strip_extend): Likewise.
6967 (aarch64_extr_rtx_p): Likewise.
6968 (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
6969 a CONST_INT when the mode parameter is VOIDmode.
6970 (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
6972 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6974 * machmode.h (bitwise_mode_for_mode): Return opt_mode.
6975 * stor-layout.c (bitwise_mode_for_mode): Likewise.
6976 (bitwise_type_for_mode): Update accordingly.
6978 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6980 * stor-layout.h (mode_for_size_tree): Return an opt_mode.
6981 * stor-layout.c (mode_for_size_tree): Likewise.
6982 (mode_for_array): Update accordingly.
6983 (layout_decl): Likewise.
6984 (compute_record_mode): Likewise. Only set the mode once.
6986 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
6988 * target.def (get_mask_mode): Change return type to opt_mode.
6990 * doc/tm.texi: Regenerate.
6991 * targhooks.h (default_get_mask_mode): Return an opt_mode.
6992 * targhooks.c (default_get_mask_mode): Likewise.
6993 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
6994 * optabs-query.c (can_vec_mask_load_store_p): Update use of
6995 targetm.get_mask_mode.
6996 * tree.c (build_truth_vector_type): Likewise.
6998 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
7000 * machmode.h (mode_for_vector): Return an opt_mode.
7001 * stor-layout.c (mode_for_vector): Likewise.
7002 (mode_for_int_vector): Update accordingly.
7003 (layout_type): Likewise.
7004 * config/i386/i386.c (emit_memmov): Likewise.
7005 (ix86_expand_set_or_movmem): Likewise.
7006 (ix86_expand_vector_init): Likewise.
7007 (ix86_get_mask_mode): Likewise.
7008 * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
7010 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
7011 * expmed.c (extract_bit_field_1): Likewise.
7012 * expr.c (expand_expr_real_2): Likewise.
7013 * optabs-query.c (can_vec_perm_p): Likewise.
7014 (can_vec_mask_load_store_p): Likewise.
7015 * optabs.c (expand_vec_perm): Likewise.
7016 * targhooks.c (default_get_mask_mode): Likewise.
7017 * tree-vect-stmts.c (vectorizable_store): Likewise.
7018 (vectorizable_load): Likewise.
7019 (get_vectype_for_scalar_type_and_size): Likewise.
7021 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
7023 * machmode.h (mode_for_int_vector): New function.
7024 * stor-layout.c (mode_for_int_vector): Likewise.
7025 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
7026 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
7027 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
7028 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
7029 (s390_expand_vcond): Likewise.
7031 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
7033 * machmode.h (opt_machine_mode): New type.
7034 (opt_mode<T>): Allow construction from anything that can be
7036 (is_a, as_a, dyn_cast): Add overloads for opt_mode.
7037 (mode_for_size): Return an opt_machine_mode.
7038 * stor-layout.c (mode_for_size): Likewise.
7039 (mode_for_size_tree): Update call accordingly.
7040 (bitwise_mode_for_mode): Likewise.
7041 (make_fract_type): Likewise.
7042 (make_accum_type): Likewise.
7043 * caller-save.c (replace_reg_with_saved_mem): Update call
7045 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
7046 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
7047 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
7048 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
7049 * expmed.c (extract_bit_field_1): Likewise.
7050 * reload.c (get_secondary_mem): Likewise.
7051 * varasm.c (assemble_integer): Likewise.
7052 * lower-subreg.c (simplify_subreg_concatn): Likewise. Move
7055 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
7057 * machmode.h (decimal_float_mode_for_size): New function.
7058 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
7059 (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
7060 (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
7061 (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
7062 (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
7063 (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
7065 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
7067 * builtins.c (expand_builtin_powi): Use int_mode_for_size.
7068 (get_builtin_sync_mode): Likewise.
7069 (expand_ifn_atomic_compare_exchange): Likewise.
7070 (expand_builtin_atomic_clear): Likewise.
7071 (expand_builtin_atomic_test_and_set): Likewise.
7072 (fold_builtin_atomic_always_lock_free): Likewise.
7073 * calls.c (compute_argument_addresses): Likewise.
7074 (emit_library_call_value_1): Likewise.
7075 (store_one_arg): Likewise.
7076 * combine.c (combine_instructions): Likewise.
7077 * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
7078 * config/arm/arm.c (arm_function_value): Likewise.
7079 (aapcs_allocate_return_reg): Likewise.
7080 * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
7081 * config/i386/i386.c (construct_container): Likewise.
7082 (ix86_gimplify_va_arg): Likewise.
7083 (ix86_expand_sse_cmp): Likewise.
7084 (emit_memmov): Likewise.
7085 (emit_memset): Likewise.
7086 (expand_small_movmem_or_setmem): Likewise.
7087 (ix86_expand_pextr): Likewise.
7088 (ix86_expand_pinsr): Likewise.
7089 * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
7090 * config/microblaze/microblaze.c (microblaze_block_move_straight):
7092 * config/mips/mips.c (mips_function_value_1) Likewise.
7093 (mips_block_move_straight): Likewise.
7094 (mips_expand_ins_as_unaligned_store): Likewise.
7095 * config/powerpcspe/powerpcspe.c
7096 (rs6000_darwin64_record_arg_advance_flush): Likewise.
7097 (rs6000_darwin64_record_arg_flush): Likewise.
7098 * config/rs6000/rs6000.c
7099 (rs6000_darwin64_record_arg_advance_flush): Likewise.
7100 (rs6000_darwin64_record_arg_flush): Likewise.
7101 * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
7102 (sparc_function_value_1): Likewise.
7103 * config/spu/spu.c (adjust_operand): Likewise.
7104 (spu_emit_branch_or_set): Likewise.
7105 (arith_immediate_p): Likewise.
7106 * emit-rtl.c (gen_lowpart_common): Likewise.
7107 * expr.c (expand_expr_real_1): Likewise.
7108 * function.c (assign_parm_setup_block): Likewise.
7109 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
7110 * reload1.c (alter_reg): Likewise.
7111 * stor-layout.c (mode_for_vector): Likewise.
7112 (layout_type): Likewise.
7114 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
7116 * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
7117 (spu_convert_move): Likewise.
7118 * lower-subreg.c (resolve_simple_move): Likewise.
7120 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7123 * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
7124 define_insn to a define_expand.
7125 (altivec_vsum2sws_direct): New define_insn.
7126 (altivec_vsumsws): Convert from a define_insn to a define_expand.
7128 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
7130 * config/arm/arm.c (arm_option_params_internal): Improve setting of
7133 2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
7138 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
7139 realign stack if stack alignment needed is less than incoming
7142 2017-09-05 Marek Polacek <polacek@redhat.com>
7145 * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
7148 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
7150 * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
7152 2017-09-05 Richard Biener <rguenther@suse.de>
7154 PR tree-optimization/82084
7155 * fold-const.c (can_native_encode_string_p): Handle wide characters.
7157 2017-09-05 Richard Biener <rguenther@suse.de>
7159 PR tree-optimization/82102
7160 * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
7162 2017-09-05 Martin Liska <mliska@suse.cz>
7164 PR tree-optimization/82032
7165 * tree-cfg.c (generate_range_test): New function.
7166 * tree-cfg.h (generate_range_test): Declared here.
7167 * tree-cfgcleanup.c (convert_single_case_switch): New function.
7168 (cleanup_control_expr_graph): Use it.
7169 * tree-switch-conversion.c (try_switch_expansion): Remove
7171 (emit_case_nodes): Use generate_range_test.
7173 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
7176 * config/i386/i386.md (*<btsc><mode>_mask): Add
7177 TARGET_USE_BT to insn constraint.
7178 (*btr<mode>_mask): Ditto.
7180 2017-09-04 Wilco Dijkstra <wdijkstr@arm.com>
7182 * config/arm/arm.c (arm_legitimate_index_p): Add comment.
7183 (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
7185 2017-09-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
7188 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
7189 TARGET_NEON and TARGET_IWMMXT.
7190 (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
7191 TARGET_NEON and TARGET_IWMMXT.
7192 (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
7194 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
7196 * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
7197 (ix86_rewrite_tls_address): Ditto.
7198 * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
7199 (ix86_rewrite_tls_address_1): Ditto.
7200 (ix86_rewrite_tls_address): Ditto.
7201 * config/i386/predicates.md (tls_address_pattern): New predicate.
7202 * config/i386/i386.md (TLS address splitter): New splitter.
7204 2017-09-04 Richard Biener <rguenther@suse.de>
7206 PR tree-optimization/82084
7207 * fold-const.h (can_native_encode_string_p): Declare.
7208 * fold-const.c (can_native_encode_string_p): Factor out from ...
7209 (native_encode_string): ... here.
7210 * tree-vect-stmts.c (vectorizable_store): Call it to avoid
7211 vectorizing stores from constants we later cannot handle.
7213 2017-09-04 Marek Polacek <polacek@redhat.com>
7216 * doc/invoke.texi: Update -Wtautological-compare documentation.
7218 2017-09-04 Jeff Law <law@redhat.com>
7220 PR tree-optimization/64910
7221 * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
7222 swap the first and last operand if the last is a constant.
7224 2017-09-04 Marek Polacek <polacek@redhat.com>
7227 * convert.c (do_narrow): When sanitizing signed integer overflows,
7228 bail out for signed types.
7229 (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
7231 2017-09-04 Richard Biener <rguenther@suse.de>
7233 PR tree-optimization/82060
7234 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
7235 Move devirtualization after stmt folding and before EH/AB/noreturn
7236 cleanup to get the stmt refs canonicalized. Use a bool instead
7237 of gimple_modified_p since that doesn't work for NOPs. Schedule
7238 NOPs generated by folding for removal.
7240 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
7241 Alan Hayward <alan.hayward@arm.com>
7242 David Sherwood <david.sherwood@arm.com>
7244 * coretypes.h (pad_direction): New enum.
7245 * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
7246 (FUNCTION_ARG_PADDING): Likewise.
7247 * target.def (function_arg_padding): New hook.
7248 * targhooks.h (default_function_arg_padding): Declare.
7249 * targhooks.c (default_function_arg_padding): New function.
7250 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
7251 (TARGET_FUNCTION_ARG_PADDING): ...this.
7252 * doc/tm.texi: Regenerate.
7253 * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
7254 instead of direction.
7255 (compute_argument_addresses): Likewise.
7256 (load_register_parameters): Likewise.
7257 (emit_library_call_value_1): Likewise.
7258 (store_one_arg): Use targetm.calls.function_arg_padding instead
7259 of FUNCTION_ARG_PADDING.
7260 (must_pass_in_stack_var_size_or_pad): Likewise.
7261 * expr.c (emit_group_load_1): Use pad_direction instead of direction.
7262 (emit_group_store): Likewise.
7263 (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
7264 instead of FUNCTION_ARG_PADDING.
7265 (emit_push_insn): Likewise, and propagate enum change throughout
7267 * function.h (direction): Delete.
7268 (locate_and_pad_arg_data::where_pad): Use pad_direction instead
7270 * function.c (assign_parm_find_stack_rtl): Likewise.
7271 (assign_parm_setup_block_p): Likewise.
7272 (assign_parm_setup_block): Likewise.
7273 (gimplify_parameters): Likewise.
7274 (locate_and_pad_parm): Use targetm.calls.function_arg_padding
7275 instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
7277 * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
7278 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
7279 * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
7280 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
7281 (aarch64_function_arg_padding): ...this new function.
7282 (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
7283 (TARGET_FUNCTION_ARG_PADDING): Redefine.
7284 * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
7285 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
7286 * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
7287 * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7288 (arm_pad_arg_upward): Replace with...
7289 (arm_function_arg_padding): ...this new function.
7290 * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
7292 * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
7293 * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
7294 * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7295 (ia64_hpux_function_arg_padding): Replace with...
7296 (ia64_function_arg_padding): ...this new function. Use pad_direction
7297 instead of direction. Check for TARGET_HPUX.
7298 * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
7299 * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7300 (iq2000_function_arg_padding): New function.
7301 * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
7302 * config/mips/mips.c (mips_pad_arg_upward): Replace with...
7303 (mips_function_arg_padding): ...this new function.
7304 (mips_pad_reg_upward): Update accordingly.
7305 (TARGET_FUNCTION_ARG_PADDING): Redefine.
7306 * config/mips/mips.h (PAD_VARARGS_DOWN): Use
7307 targetm.calls.function_arg_padding.
7308 (FUNCTION_ARG_PADDING): Delete.
7309 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
7310 * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
7311 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
7312 * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
7313 (nios2_block_reg_padding): Return pad_direction instead of direction.
7314 * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
7315 instead of direction.
7316 (nios2_function_arg_padding): Likewise. Make static.
7317 (TARGET_FUNCTION_ARG_PADDING): Redefine.
7318 * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
7319 (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
7320 * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
7321 * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7322 (pa_function_arg_padding): Make static. Return pad_direction instead
7324 * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
7325 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
7326 * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
7327 instead of direction. Use targetm.calls.function_arg_padding.
7328 * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
7329 * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
7330 * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
7331 * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
7332 * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
7334 (function_arg_padding): Rename to...
7335 (rs6000_function_arg_padding): ...this. Make static. Return
7336 pad_direction instead of direction.
7337 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
7338 * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
7339 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
7340 * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
7341 instead of direction. Use targetm.calls.function_arg_padding.
7342 * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
7343 * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
7344 * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
7345 * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
7346 * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7347 (function_arg_padding): Rename to...
7348 (rs6000_function_arg_padding): ...this. Make static. Return
7349 pad_direction instead of direction.
7350 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
7351 * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
7352 * config/s390/s390.c (s390_function_arg_padding): New function.
7353 (TARGET_FUNCTION_ARG_PADDING): Redefine.
7354 * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
7355 * config/sparc/sparc-protos.h (function_arg_padding): Delete.
7356 * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7357 (function_arg_padding): Rename to...
7358 (sparc_function_arg_padding): ...this. Make static. Return
7359 pad_direction instead of direction.
7360 * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
7361 * config/spu/spu.c (spu_function_arg_padding): New function.
7362 (TARGET_FUNCTION_ARG_PADDING): Redefine.
7363 * system.h (FUNCTION_ARG_PADDING): Poison.
7365 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
7366 Alan Hayward <alan.hayward@arm.com>
7367 David Sherwood <david.sherwood@arm.com>
7369 * target.def (modes_tieable_p): New hook.
7370 * doc/tm.texi (MODES_TIEABLE_P): Replace with...
7371 (TARGET_MODES_TIEABLE_P): ...this.
7372 * doc/tm.texi.in: Regenerate.
7373 * hooks.h (hook_bool_mode_mode_true): Declare.
7374 * hooks.c (hook_bool_mode_mode_true): New function.
7375 * combine.c (subst): Use targetm.modes_tieable_p instead of
7377 * dse.c (find_shift_sequence): Likewise.
7378 * expmed.c (extract_low_bits): Likewise.
7379 * lower-subreg.c: Include target.h.
7380 (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
7382 * rtlanal.c (rtx_cost): Likewise.
7383 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
7384 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
7385 * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
7386 (TARGET_MODES_TIEABLE_P): Redefine.
7387 * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
7388 * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
7389 (TARGET_MODES_TIEABLE_P): Redefine.
7390 * config/arc/arc.h (MODES_TIEABLE_P): Delete.
7391 * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
7392 (arc_modes_tieable_p): New function.
7393 * config/arm/arm.h (MODES_TIEABLE_P): Delete.
7394 * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
7395 * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
7396 (arm_modes_tieable_p): Make static.
7397 * config/avr/avr.h (MODES_TIEABLE_P): Delete.
7398 * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
7399 * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
7400 (TARGET_MODES_TIEABLE_P): Redefine.
7401 * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
7402 * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
7403 (TARGET_MODES_TIEABLE_P): Redefine.
7404 * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
7405 * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
7406 (cr16_modes_tieable_p): New function.
7407 * config/cris/cris.h (MODES_TIEABLE_P): Delete.
7408 * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
7409 * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
7410 (TRULY_NOOP_TRUNCATION): Update comment.
7411 * config/frv/frv.h (MODES_TIEABLE_P): Delete.
7412 (TRULY_NOOP_TRUNCATION): Update comment.
7413 * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
7414 (frv_modes_tieable_p): New function.
7415 * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
7416 * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
7417 * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
7418 (TARGET_MODES_TIEABLE_P): Redefine.
7419 * config/i386/i386.h (MODES_TIEABLE_P): Delete.
7420 * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
7421 * config/i386/i386.c (ix86_modes_tieable_p): Make static.
7422 (TARGET_MODES_TIEABLE_P): Redefine.
7423 * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
7424 * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
7425 (ia64_modes_tieable_p): New function.
7426 * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
7427 * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
7428 (iq2000_modes_tieable_p): New function.
7429 * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
7430 * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
7431 (lm32_modes_tieable_p): New function.
7432 * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
7433 * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
7434 * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
7435 (TARGET_MODES_TIEABLE_P): Redefine.
7436 * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
7437 * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
7438 (m32r_modes_tieable_p): New function.
7439 * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
7440 * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
7441 (m68k_modes_tieable_p): New function.
7442 * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
7443 * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
7444 (mcore_modes_tieable_p): New function.
7445 * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
7446 * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
7448 (TARGET_MODES_TIEABLE_P): Redefine.
7449 * config/mips/mips.h (MODES_TIEABLE_P): Delete.
7450 * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
7451 * config/mips/mips.c (mips_modes_tieable_p): Make static.
7452 (TARGET_MODES_TIEABLE_P): Redefine.
7453 * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
7454 * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
7455 * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
7456 * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
7457 (mn10300_modes_tieable_p): ...this and make static.
7458 (TARGET_MODES_TIEABLE_P): Redefine.
7459 * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
7460 * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
7461 * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
7462 * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
7463 (msp430_modes_tieable_p): Make static.
7464 * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
7465 * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
7466 (TARGET_MODES_TIEABLE_P): Redefine.
7467 * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
7468 * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
7469 * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
7470 (TARGET_MODES_TIEABLE_P): Redefine.
7471 * config/pa/pa.h (MODES_TIEABLE_P): Delete.
7472 * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
7473 * config/pa/pa.c (pa_modes_tieable_p): Make static.
7474 (TARGET_MODES_TIEABLE_P): Redefine.
7475 * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
7476 * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
7477 (pdp11_modes_tieable_p): New function.
7478 * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
7479 * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
7480 (rs6000_modes_tieable_p): New function.
7481 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
7482 * config/powerpcspe/powerpcspe.md: Update comment.
7483 * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
7484 * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
7485 (TARGET_MODES_TIEABLE_P): Redefine.
7486 * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
7487 * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
7488 (rl78_modes_tieable_p): New function.
7489 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
7490 * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
7491 (rs6000_modes_tieable_p): New function.
7492 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
7493 * config/rs6000/rs6000.md: Update comment.
7494 * config/rx/rx.h (MODES_TIEABLE_P): Delete.
7495 * config/rx/rx.c (rx_modes_tieable_p): New function.
7496 (TARGET_MODES_TIEABLE_P): Redefine.
7497 * config/s390/s390.h (MODES_TIEABLE_P): Delete.
7498 * config/s390/s390.c (s390_modes_tieable_p): New function.
7499 (TARGET_MODES_TIEABLE_P): Redefine.
7500 * config/sh/sh.h (MODES_TIEABLE_P): Delete.
7501 * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
7502 (sh_modes_tieable_p): New function.
7503 * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
7504 * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
7505 * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
7506 (sparc_modes_tieable_p): Make static.
7507 * config/spu/spu.h (MODES_TIEABLE_P): Delete.
7508 * config/spu/spu.c (spu_modes_tieable_p): New function.
7509 (TARGET_MODES_TIEABLE_P): Redefine.
7510 * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
7511 * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
7512 (TARGET_MODES_TIEABLE_P): Redefine.
7513 * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
7514 * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
7515 * config/v850/v850.h (MODES_TIEABLE_P): Delete.
7516 * config/v850/v850.c (v850_modes_tieable_p): New function.
7517 (TARGET_MODES_TIEABLE_P): Redefine.
7518 * config/vax/vax.h (MODES_TIEABLE_P): Delete.
7519 * config/visium/visium.h (MODES_TIEABLE_P): Delete.
7520 * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
7521 (visium_modes_tieable_p): New function.
7522 * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
7523 * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
7524 (xtensa_modes_tieable_p): New function.
7525 * system.h (MODES_TIEABLE_P): Poison.
7527 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
7528 Alan Hayward <alan.hayward@arm.com>
7529 David Sherwood <david.sherwood@arm.com>
7531 * target.def (hard_regno_mode_ok): New hook.
7532 * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
7533 (TARGET_HARD_REGNO_MODE_OK): ...this.
7534 * doc/tm.texi.in: Regenerate.
7535 * hooks.h (hook_bool_uint_mode_true): Declare.
7536 * hooks.c (hook_bool_uint_mode_true): New function.
7537 * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
7539 * genpreds.c (write_insn_preds_c): Add an include of target.h.
7540 * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
7541 instead of HARD_REGNO_MODE_OK.
7542 * caller-save.c: Include target.h.
7543 (reg_save_code): Use targetm.hard_regno_mode_ok instead of
7545 * combine.c (can_combine_p): Likewise.
7546 (combinable_i3pat): Likewise.
7547 (can_change_dest_mode): Likewise.
7548 * expr.c (init_expr_target): Likewise.
7549 (convert_move): Likewise.
7550 (convert_modes): Likewise.
7551 * ira.c (setup_prohibited_class_mode_regs): Likewise.
7552 (setup_prohibited_mode_move_regs): Likewise.
7553 * ira.h (target_ira): Likewise.
7554 * lra-assigns.c (find_hard_regno_for_1): Likewise.
7555 * lra-constraints.c (process_alt_operands): Likewise.
7556 (split_reg): Likewise.
7557 * recog.c (peep2_find_free_register): Likewise.
7558 * ree.c (combine_reaching_defs): Likewise.
7559 * regcprop.c (maybe_mode_change): Likewise.
7560 * reginfo.c (init_reg_sets_1): Likewise.
7561 (choose_hard_reg_mode): Likewise.
7562 (simplifiable_subregs): Likewise.
7563 * regrename.c (check_new_reg_p): Likewise.
7564 * reload.c (find_valid_class): Likewise.
7565 (find_valid_class_1): Likewise.
7566 (reload_inner_reg_of_subreg): Likewise.
7567 (push_reload): Likewise.
7568 (combine_reloads): Likewise.
7569 (find_dummy_reload): Likewise.
7570 (find_reloads): Likewise.
7571 * reload1.c (find_reg): Likewise.
7572 (set_reload_reg): Likewise.
7573 (allocate_reload_reg): Likewise.
7574 (choose_reload_regs): Likewise.
7575 (reload_adjust_reg_for_temp): Likewise.
7576 * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
7577 (simplify_subreg_regno): Likewise.
7578 * sel-sched.c (init_regs_for_mode): Likewise.
7579 * varasm.c (make_decl_rtl): Likewise.
7580 * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
7581 (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
7583 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
7584 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
7585 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7586 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
7587 * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
7588 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7589 * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
7590 (arc_mode_class): Delete.
7591 (HARD_REGNO_MODE_OK): Delete.
7592 * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7593 (arc_hard_regno_mode_ok): Rename old array to...
7594 (arc_hard_regno_mode_ok_modes): ...this.
7595 (arc_conditional_register_usage): Update accordingly.
7596 (arc_mode_class): Make static.
7597 (arc_hard_regno_mode_ok): New function.
7598 * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
7599 * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
7600 * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7601 (arm_hard_regno_mode_ok): Make static.
7602 * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
7604 * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
7605 * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
7606 * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
7608 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7609 * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
7610 * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
7611 * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
7612 (bfin_hard_regno_mode_ok): ...this. Make static and return a bool.
7613 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7614 * config/bfin/predicates.md (valid_reg_operand): Use
7615 targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
7616 * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
7617 * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
7618 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7619 * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
7620 * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
7621 * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7622 (cr16_hard_regno_mode_ok): Make static and return a bool.
7623 * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
7624 * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7625 (cris_hard_regno_mode_ok): New function.
7626 * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
7627 (epiphany_mode_class): Delete.
7628 (HARD_REGNO_MODE_OK): Delete.
7629 * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
7630 * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7631 (hard_regno_mode_ok): Rename to...
7632 (epiphany_hard_regno_mode_ok): ...this. Make static and return a bool.
7633 * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
7634 * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
7636 * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
7637 * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
7638 * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7639 (frv_hard_regno_mode_ok): Make static and return a bool.
7640 * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
7642 * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
7643 * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
7644 * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
7645 * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
7647 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7648 * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
7649 * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
7650 * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
7652 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7653 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
7654 * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7655 (ia64_hard_regno_mode_ok): New function.
7656 * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
7657 * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7658 (iq2000_hard_regno_mode_ok): New function.
7659 * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
7660 * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7661 (lm32_hard_regno_mode_ok): New function.
7662 * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
7663 * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
7664 * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
7665 instead of HARD_REGNO_MODE_OK.
7666 (m32c_hard_regno_ok): Rename to...
7667 (m32c_hard_regno_mode_ok): ...this. Make static and return a bool.
7668 (m32c_cannot_change_mode_class): Update accordingly.
7669 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7670 * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
7671 (m32r_mode_class): Delete.
7672 (HARD_REGNO_MODE_OK): Delete.
7673 * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7674 (m32r_hard_regno_mode_ok): Rename to...
7675 (m32r_hard_regno_modes): ...this.
7676 (m32r_mode_class): Make static.
7677 (m32r_hard_regno_mode_ok): New function.
7678 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
7679 * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
7680 * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7681 (m68k_hard_regno_mode_ok): Make static.
7682 * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
7683 * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7684 (mcore_hard_regno_mode_ok): New function.
7685 * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
7686 (HARD_REGNO_MODE_OK): Delete.
7687 * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
7689 (microblaze_hard_regno_mode_ok_p): ...this and make static.
7690 (microblaze_hard_regno_mode_ok): New function.
7691 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7692 * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
7693 (mips_hard_regno_mode_ok): Delete.
7694 * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
7695 (mips_hard_regno_mode_ok_p): ...this and make static.
7696 (mips_hard_regno_mode_ok_p): Rename to...
7697 (mips_hard_regno_mode_ok_uncached): ...this.
7698 (mips_hard_regno_mode_ok): New function.
7699 (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
7700 of HARD_REGNO_MODE_OK.
7701 (mips_option_override): Update after above name changes.
7702 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7703 * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
7704 * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
7705 * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
7706 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
7707 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7708 * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
7709 * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
7710 * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
7711 * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7712 (msp430_hard_regno_mode_ok): Make static and return a bool.
7713 * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
7714 * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
7715 * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
7717 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7718 * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
7719 * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
7720 * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
7721 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
7722 (PA_HARD_REGNO_MODE_OK): ...this
7723 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
7724 (PA_HARD_REGNO_MODE_OK): ...this.
7725 * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7726 (pa_hard_regno_mode_ok): New function.
7727 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
7728 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7729 (pdp11_hard_regno_mode_ok): New function.
7730 * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
7731 * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
7733 * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
7735 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7736 (rs6000_hard_regno_mode_ok): Rename to...
7737 (rs6000_hard_regno_mode_ok_uncached): ...this.
7738 (rs6000_init_hard_regno_mode_ok): Update accordingly.
7739 (rs6000_hard_regno_mode_ok): New function.
7740 * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
7741 * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
7742 * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
7743 (riscv_hard_regno_mode_ok): ...this and make static.
7744 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7745 * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
7746 * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
7747 * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7748 (rl78_hard_regno_mode_ok): Make static and return bool.
7749 * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
7750 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
7752 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
7753 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7754 (rs6000_hard_regno_mode_ok): Rename to...
7755 (rs6000_hard_regno_mode_ok_uncached): ...this.
7756 (rs6000_init_hard_regno_mode_ok): Update accordingly.
7757 (rs6000_hard_regno_mode_ok): New function.
7758 * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
7759 * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
7760 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7761 * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
7762 * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
7763 * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
7764 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7765 * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
7766 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
7767 * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7768 (sh_hard_regno_mode_ok): Make static.
7769 * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
7770 instead of HARD_REGNO_MODE_OK.
7771 * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
7772 (sparc_mode_class): Delete.
7773 (HARD_REGNO_MODE_OK): Delete.
7774 * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7775 (hard_regno_mode_classes): Make static.
7776 (sparc_mode_class): Likewise.
7777 (sparc_hard_regno_mode_ok): New function.
7778 * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
7779 * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
7780 * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
7782 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7783 * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
7784 * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
7785 * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
7786 * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
7787 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7788 * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
7789 * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
7790 * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7791 (visium_hard_regno_mode_ok): New function.
7792 * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
7793 instead of HARD_REGNO_MODE_OK.
7794 * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
7795 (HARD_REGNO_MODE_OK): Delete.
7796 * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
7797 (xtensa_hard_regno_mode_ok_p): ...this and make static.
7798 (xtensa_option_override): Update accordingly.
7799 (TARGET_HARD_REGNO_MODE_OK): Redefine.
7800 (xtensa_hard_regno_mode_ok): New function.
7801 * system.h (HARD_REGNO_MODE_OK): Poison.
7803 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
7804 Alan Hayward <alan.hayward@arm.com>
7805 David Sherwood <david.sherwood@arm.com>
7807 * target.def (hard_regno_call_part_clobbered): New hook.
7808 * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
7809 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
7810 * doc/tm.texi: Regenerate.
7811 * hooks.h (hook_bool_uint_mode_false): Declare.
7812 * hooks.c (hook_bool_uint_mode_false): New function.
7813 * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7814 * cselib.c (cselib_process_insn): Use
7815 targetm.hard_regno_call_part_clobbered instead of
7816 HARD_REGNO_CALL_PART_CLOBBERED.
7817 * ira-conflicts.c (ira_build_conflicts): Likewise.
7818 * ira-costs.c (ira_tune_allocno_costs): Likewise.
7819 * lra-constraints.c (need_for_call_save_p): Likewise.
7820 * lra-lives.c: Include target.h.
7821 (check_pseudos_live_through_calls): Use
7822 targetm.hard_regno_call_part_clobbered instead of
7823 HARD_REGNO_CALL_PART_CLOBBERED.
7824 * regcprop.c: Include target.h.
7825 (copyprop_hardreg_forward_1): Use
7826 targetm.hard_regno_call_part_clobbered instead of
7827 HARD_REGNO_CALL_PART_CLOBBERED.
7828 * reginfo.c (choose_hard_reg_mode): Likewise.
7829 * regrename.c (check_new_reg_p): Likewise.
7830 * reload.c (find_equiv_reg): Likewise.
7831 * reload1.c (emit_reload_insns): Likewise.
7832 * sched-deps.c (deps_analyze_insn): Likewise.
7833 * sel-sched.c (init_regs_for_mode): Likewise.
7834 (mark_unavailable_hard_regs): Likewise.
7835 * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
7836 * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7837 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
7839 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7840 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7841 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
7843 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
7845 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7846 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7847 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
7849 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7850 * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7851 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
7853 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7854 * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
7856 * config/powerpcspe/powerpcspe.c
7857 (rs6000_hard_regno_call_part_clobbered): New function.
7858 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7859 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7860 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
7862 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7863 * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7864 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
7866 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
7867 * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
7868 * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
7870 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
7871 Alan Hayward <alan.hayward@arm.com>
7872 David Sherwood <david.sherwood@arm.com>
7874 * rtl.h (subreg_memory_offset): Declare.
7875 * emit-rtl.c (subreg_memory_offset): New function.
7876 * expmed.c (store_bit_field_1): Use it.
7877 * expr.c (undefined_operand_subword_p): Likewise.
7878 * simplify-rtx.c (simplify_subreg): Likewise.
7880 2017-09-04 Alexander Monakov <amonakov@ispras.ru>
7882 PR rtl-optimization/57448
7885 * optabs.c (expand_atomic_load): Place compiler memory barriers if
7886 using atomic_load pattern.
7887 (expand_atomic_store): Likewise.
7889 2017-09-04 Jakub Jelinek <jakub@redhat.com>
7892 * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
7893 and UBSAN_BOUNDS internal calls. Clean up IFN_UBSAN_OBJECT_SIZE
7894 handling. Use replace_call_with_value with NULL instead of
7895 gsi_replace, unlink_stmt_vdef and release_defs.
7897 * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
7900 * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
7902 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
7905 * rtl.h (emit_library_call_value_1): Declare.
7906 (emit_library_call): Replace declaration with a series of overloads.
7907 Remove the parameter count argument.
7908 (emit_library_call_value): Likewise.
7909 * calls.c (emit_library_call_value_1): Make global. Replace varargs
7910 with an "rtx_mode_t *".
7911 (emit_library_call_value): Delete.
7912 (emit_library_call): Likewise.
7913 * asan.c (asan_emit_stack_protection): Update calls accordingly.
7914 (asan_emit_allocas_unpoison): Likewise.
7915 * builtins.c (expand_builtin_powi): Likewise.
7916 (expand_asan_emit_allocas_unpoison): Likewise.
7917 * cfgexpand.c (expand_main_function): Likewise.
7918 * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
7919 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
7920 * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
7921 * config/arm/arm.c (arm_trampoline_init): Likewise.
7922 (arm_call_tls_get_addr): Likewise.
7923 (arm_expand_divmod_libfunc): Likewise.
7924 * config/bfin/bfin.md (umulsi3_highpart): Likewise.
7925 (smulsi3_highpart): Likewise.
7926 * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
7927 (c6x_expand_compare): Likewise.
7928 (c6x_expand_movmem): Likewise.
7929 * config/frv/frv.c (frv_trampoline_init): Likewise.
7930 * config/i386/i386.c (ix86_trampoline_init): Likewise.
7931 (ix86_expand_divmod_libfunc): Likewise.
7932 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
7933 (ia64_expand_compare): Likewise.
7934 (ia64_profile_hook): Likewise.
7935 * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
7936 (nonlocal_goto): Likewise.
7937 (restore_stack_nonlocal): Likewise.
7938 * config/m32r/m32r.c (block_move_call): Likewise.
7939 (m32r_trampoline_init): Likewise.
7940 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
7941 * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
7942 (m68k_call_m68k_read_tp): Likewise.
7943 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
7944 (microblaze_expand_divide): Likewise.
7945 * config/mips/mips.h (mips_args): Likewise.
7946 * config/mips/sdemtk.h (mips_sync_icache): Likewise.
7947 (MIPS_ICACHE_SYNC): Likewise.
7948 * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
7949 (nios2_trampoline_init): Likewise.
7950 * config/pa/pa.c (hppa_tls_call): Likewise.
7951 (pa_trampoline_init): Likewise.
7952 * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
7953 * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
7954 (expand_strn_compare): Likewise.
7955 (rs6000_generate_compare): Likewise.
7956 (rs6000_expand_float128_convert): Likewise.
7957 (output_profile_hook): Likewise.
7958 (rs6000_trampoline_init): Likewise.
7959 * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
7960 * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
7961 * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
7962 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
7963 (rs6000_generate_compare): Likewise.
7964 (rs6000_expand_float128_convert): Likewise.
7965 (output_profile_hook): Likewise.
7966 (rs6000_trampoline_init): Likewise.
7967 * config/rs6000/rs6000.md (neg<mode>2): Likewise.
7968 * config/sh/sh.c (sh_trampoline_init): Likewise.
7969 * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
7970 (sparc_emit_float_lib_cmp): Likewise.
7971 (sparc32_initialize_trampoline): Likewise.
7972 (sparc64_initialize_trampoline): Likewise.
7973 (sparc_profile_hook): Likewise.
7974 * config/spu/spu.c (ea_load_store): Likewise.
7975 * config/spu/spu.md (floatunssidf2): Likewise.
7976 * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
7977 * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
7978 * config/visium/visium.c (expand_block_move_4): Likewise.
7979 (expand_block_move_2): Likewise.
7980 (expand_block_move_1): Likewise.
7981 (expand_block_set_4): Likewise.
7982 (expand_block_set_2): Likewise.
7983 (expand_block_set_1): Likewise.
7984 (visium_trampoline_init): Likewise.
7985 (visium_profile_hook): Likewise.
7986 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
7987 (xtensa_setup_frame_addresses): Likewise.
7988 (xtensa_trampoline_init): Likewise.
7989 * except.c (sjlj_emit_function_enter): Likewise.
7990 (sjlj_emit_function_exit): Likewise.
7991 * explow.c (allocate_dynamic_stack_space): Likewise.
7992 (probe_stack_range): Likewise.
7993 * expr.c (convert_mode_scalar): Likewise.
7994 * optabs.c (expand_binop): Likewise.
7995 (expand_twoval_binop_libfunc): Likewise.
7996 (expand_unop): Likewise.
7997 (prepare_cmp_insn): Likewise.
7998 (prepare_float_lib_cmp): Likewise.
7999 (expand_float): Likewise.
8000 (expand_fix): Likewise.
8001 (expand_fixed_convert): Likewise.
8002 (maybe_emit_sync_lock_test_and_set): Likewise.
8003 (expand_atomic_compare_and_swap): Likewise.
8004 (expand_mem_thread_fence): Likewise.
8005 (expand_atomic_fetch_op): Likewise.
8007 2017-09-03 Gerald Pfeifer <gerald@pfeifer.com>
8009 * doc/generic.texi (OpenACC): Adjust URL.
8010 * doc/invoke.texi (C Dialect Options): Ditto.
8012 2017-09-03 Uros Bizjak <ubizjak@gmail.com>
8014 * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
8015 predicate for operand 1. Add (m,<S>) constraint.
8016 (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
8017 Prevent memory operand 1 with register operand 2.
8019 2017-09-01 Segher Boessenkool <segher@kernel.crashing.org>
8021 PR rtl-optimization/82024
8022 * combine.c (try_combine): If the combination result is a PARALLEL,
8023 and we only need to retain the SET in there that would be placed
8024 at I2, check that we can place that at I3 instead, before doing so.
8026 2017-09-01 Jakub Jelinek <jakub@redhat.com>
8029 * config/i386/i386.c (ix86_init_large_pic_reg): Return label
8031 (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
8032 if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
8035 2017-09-01 Joerg Sonnenberger <joerg@bec.de>
8036 Jeff Law <law@redhat.com>
8038 * varasm.c (bss_initializer_p): Do not put constants into .bss
8039 (categorize_decl_for_section): Handle bss_initializer_p returning
8040 false when DECL_INITIAL is NULL.
8042 2017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8045 * config/s390/s390.c (s390_can_inline_p): New function.
8047 2017-09-01 Jeff Law <law@redhat.com>
8049 PR tree-optimization/82052
8050 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
8051 Always initialize the returned slot after a hash table miss
8052 when INSERT is true.
8054 2017-09-01 Alexander Monakov <amonakov@ispras.ru>
8056 * config/s390/s390.md (mem_signal_fence): Remove.
8057 * doc/md.texi (mem_signal_fence): Remove.
8058 * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
8060 * target-insns.def (mem_signal_fence): Remove.
8062 2017-09-01 Jakub Jelinek <jakub@redhat.com>
8065 * doc/invoke.texi: Document -fsanitize=pointer-overflow.
8068 * asan.c (create_odr_indicator): Strip name encoding from assembler
8069 name before appending it after __odr_asan_.
8071 2017-09-01 Martin Liska <mliska@suse.cz>
8073 PR tree-optimization/82059
8074 * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
8075 frequency only when an edge is redirected.
8077 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
8079 * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
8080 * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
8081 (arc_conditional_register_usage): Remove ARC600 lp_count
8083 (arc_file_start): Emit Tag_ARC_CPU_variation.
8084 (arc_can_use_doloop_p): New conditions to use ZOLs.
8085 (hwloop_fail): New function.
8086 (hwloop_optimize): Likewise.
8087 (hwloop_pattern_reg): Likewise.
8088 (arc_doloop_hooks): New struct, to be used with reorg_loops.
8089 (arc_reorg_loops): New function, calls reorg_loops.
8090 (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling.
8091 (arc600_corereg_hazard): Remove ZOL checking, case handled by
8093 (arc_loop_hazard): Remove function, functionality moved into
8095 (arc_hazard): Remove arc_loop_hazard call.
8096 (arc_adjust_insn_length): Remove ZOL handling, functionality moved
8097 into hwloop_optimize.
8098 (arc_label_align): Remove ZOL handling.
8099 * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
8100 * config/arc/arc.md (doloop_begin): Remove pattern.
8101 (doloop_begin_i): Likewise.
8102 (doloop_end_i): Likewise.
8103 (doloop_fallback): Likewise.
8104 (doloop_fallback_m): Likewise.
8105 (doloop_end): Reimplement expand.
8106 (arc_lp): New pattern for LP instruction.
8107 (loop_end): New pattern.
8108 (loop_fail): Likewise.
8109 (decrement_and_branch_until_zero): Likewise.
8110 * config/arc/arc.opt (mlpc-width): New option.
8111 * doc/invoke.texi (mlpc-width): Document option.
8113 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
8115 * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
8116 (arc_ccfsm_advance): Fix checking for delay slots.
8117 (arc_reorg): Add rtl dump after each call to arc_ifcvt.
8119 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
8121 * config/arc/arc.md (movqi_insn): Add stores to save constant long
8123 (movhi_insn): Update store instruction constraint which are saving
8124 6-bit short immediates.
8125 (movsi_insn): Consider also short scaled load operations.
8126 (zero_extendhisi2_i): Use Usd constraint instead of T.
8127 (extendhisi2_i): Add q constraint.
8128 (arc_clzsi2): Add type and length attributes.
8129 (arc_ctzsi2): Likewise.
8130 * config/arc/constraints.md (Usc): Update constraint, the
8131 assembler can parse two relocations for a single instruction.
8133 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
8135 * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
8136 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
8138 2017-08-31 Olivier Hainque <hainque@adacore.com>
8140 * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
8141 match as powerpc-wrs-vxworks*.
8143 2017-08-31 James Greenhalgh <james.greenhalgh@arm.com>
8145 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
8146 register constraint for by-element operand.
8147 (aarch64_mls_elt_merge<mode>): Likewise.
8149 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
8151 * config/arc/arc.c (arc_can_follow_jump): Check for short
8154 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
8156 * config.gcc: Use g.opt for arc.
8157 * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
8158 functionality moved to ...
8159 (legitimate_scaled_address_p): New function, ...here.
8160 (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
8161 (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
8162 (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
8164 (arc_override_options): Handle G option.
8165 (arc_output_pic_addr_const): Correct function definition.
8166 (arc_legitimate_address_p): Use legitimate_scaled_address_p.
8167 (arc_decl_anon_ns_mem_p): Delete.
8168 (arc_in_small_data_p): Overhaul this function to take into
8169 consideration the value given via G option.
8170 (arc_rewrite_small_data_1): Renamed and corrected old
8171 arc_rewrite_small_data function.
8172 (arc_rewrite_small_data): New function.
8173 (small_data_pattern): Don't use pic_offset_table_rtx.
8174 * config/arc/arc.h (CC1_SPEC): Recognize G option.
8175 * config/arc/simdext.md (movmisalignv2hi): Use
8176 prepare_move_operands function.
8178 (movmisalign*): Likewise.
8179 * doc/invoke.texi (ARC options): Document -G option.
8181 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
8183 * config/arc/arc-protos.h (compact_sda_memory_operand): Update
8185 * config/arc/arc.c (arc_print_operand): Output scalled address for
8186 sdata whenever is possible.
8187 (arc_in_small_data_p): Allow sdata for 64bit datum when double
8188 load/stores are available.
8189 (compact_sda_memory_operand): Check for the alignment required by
8190 code density instructions.
8191 * config/arc/arc.md (movsi_insn): Use newly introduced Us0
8193 * config/arc/constraints.md (Usd): Update constraint.
8194 (Us0): New constraint.
8195 (Usc): Update constraint.
8197 2017-08-31 Richard Biener <rguenther@suse.de>
8200 * dwarf2out.c (dwarf2out_early_global_decl): Process each
8203 2017-08-31 Tamar Christina <tamar.christina@arm.com>
8205 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
8206 Resize type_signature.
8208 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
8209 Alan Hayward <alan.hayward@arm.com>
8210 David Sherwood <david.sherwood@arm.com>
8212 * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
8213 subregs whose inner modes can be stored in GPRs.
8214 (aarch64_classify_index): Likewise.
8216 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
8217 Alan Hayward <alan.hayward@arm.com>
8218 David Sherwood <david.sherwood@arm.com>
8220 * config/aarch64/iterators.md (V_cmp_result): Rename to...
8221 (V_INT_EQUIV): ...this.
8222 (v_cmp_result): Rename to...
8223 (v_int_equiv): ...this.
8224 * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
8225 * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
8226 (copysign<mode>3): Likewise.
8227 (aarch64_simd_bsl<mode>_internal): Likewise.
8228 (aarch64_simd_bsl<mode>): Likewise.
8229 (vec_cmp<mode><mode>): Likewise.
8230 (vcond<mode><mode>): Likewise.
8231 (vcond<v_cmp_mixed><mode>): Likewise.
8232 (vcondu<mode><v_cmp_mixed>): Likewise.
8233 (aarch64_cm<optab><mode>): Likewise.
8234 (aarch64_cmtst<mode>): Likewise.
8235 (aarch64_fac<optab><mode>): Likewise.
8236 (vec_perm_const<mode>): Likewise.
8237 (vcond_mask_<mode><v_cmp_result>): Rename to...
8238 (vcond_mask_<mode><v_int_equiv>): ...this.
8239 (vec_cmp<mode><v_cmp_result>): Rename to...
8240 (vec_cmp<mode><v_int_equiv>): ...this.
8242 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
8243 Alan Hayward <alan.hayward@arm.com>
8244 David Sherwood <david.sherwood@arm.com>
8246 * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
8248 * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
8249 * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
8250 (UNSPEC_LD4_DREG): New unspecs.
8251 * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
8252 (aarch64_ld2<mode>_dreg_be): Replace with...
8253 (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
8255 (aarch64_ld3<mode>_dreg_le)
8256 (aarch64_ld3<mode>_dreg_be): Replace with...
8257 (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
8259 (aarch64_ld4<mode>_dreg_le)
8260 (aarch64_ld4<mode>_dreg_be): Replace with...
8261 (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
8264 2017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8266 PR tree-optimization/81987
8267 * gimple-ssa-strength-reduction.c (insert_initializers): Don't
8268 insert an initializer in a location not dominated by the stride
8271 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
8273 * tree-eh.c (lower_try_finally_switch): Set the location of the finally
8274 on the entire header of the finally block in the fallthru case.
8276 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
8278 * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
8280 2017-08-30 Pat Haugen <pthaugen@us.ibm.com>
8282 * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
8283 rs6000_emit_move_from_cr and call renamed function.
8284 (rs6000_emit_prologue): Call renamed functions.
8285 * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
8286 movesi_from_cr, remove volatile CRs.
8288 2017-08-30 Jon Beniston <jon@beniston.com>
8289 Richard Biener <rguenther@suse.de>
8291 * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
8292 of VECTOR_MODE_P check.
8293 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
8294 element vector types.
8296 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8298 * df.h (df_read_modify_subreg_p): Remove in favor of...
8299 * rtl.h (read_modify_subreg_p): ...this new function. Take a
8300 const_rtx instead of an rtx.
8301 * cprop.c (local_cprop_find_used_regs): Update accordingly.
8302 * df-problems.c (df_word_lr_mark_ref): Likewise.
8303 * ira-lives.c (mark_pseudo_reg_live): Likewise.
8304 (mark_pseudo_reg_dead): Likewise.
8305 (mark_ref_dead): Likewise.
8306 * reginfo.c (init_subregs_of_mode): Likewise.
8307 * sched-deps.c (sched_analyze_1): Likewise.
8308 * df-scan.c (df_def_record_1): Likewise.
8309 (df_uses_record): Likewise.
8310 (df_read_modify_subreg_p): Remove in favor of...
8311 * rtlanal.c (read_modify_subreg_p): ...this new function. Take a
8312 const_rtx instead of an rtx.
8314 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8315 Alan Hayward <alan.hayward@arm.com>
8316 David Sherwood <david.sherwood@arm.com>
8318 * rtl.h (partial_subreg_p): New function.
8319 * caller-save.c (save_call_clobbered_regs): Use it.
8320 * calls.c (expand_call): Likewise.
8321 * combine.c (combinable_i3pat): Likewise.
8322 (simplify_set): Likewise.
8323 (make_extraction): Likewise.
8324 (make_compound_operation_int): Likewise.
8325 (gen_lowpart_or_truncate): Likewise.
8326 (force_to_mode): Likewise.
8327 (make_field_assignment): Likewise.
8328 (reg_truncated_to_mode): Likewise.
8329 (record_truncated_value): Likewise.
8330 (move_deaths): Likewise.
8331 * cse.c (record_jump_cond): Likewise.
8332 (cse_insn): Likewise.
8333 * cselib.c (cselib_lookup_1): Likewise.
8334 * expmed.c (extract_bit_field_using_extv): Likewise.
8335 * function.c (assign_parm_setup_reg): Likewise.
8336 * ifcvt.c (noce_convert_multiple_sets): Likewise.
8337 * ira-build.c (create_insn_allocnos): Likewise.
8338 * lra-coalesce.c (merge_pseudos): Likewise.
8339 * lra-constraints.c (match_reload): Likewise.
8340 (simplify_operand_subreg): Likewise.
8341 (curr_insn_transform): Likewise.
8342 * lra-lives.c (process_bb_lives): Likewise.
8343 * lra.c (new_insn_reg): Likewise.
8344 (lra_substitute_pseudo): Likewise.
8345 * regcprop.c (mode_change_ok): Likewise.
8346 (maybe_mode_change): Likewise.
8347 (copyprop_hardreg_forward_1): Likewise.
8348 * reload.c (push_reload): Likewise.
8349 (find_reloads): Likewise.
8350 (find_reloads_subreg_address): Likewise.
8351 * reload1.c (alter_reg): Likewise.
8352 (eliminate_regs_1): Likewise.
8353 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8355 2017-08-30 David Edelsohn <dje.gcc@gmail.com>
8357 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
8358 back to if statements, including unpack.
8360 2017-08-30 Martin Liska <mliska@suse.cz>
8363 * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
8365 (func_checker::compare_asm_inputs_outputs): ... this function.
8366 (func_checker::compare_gimple_asm): Use the function to compare
8367 also ASM constrains.
8368 * ipa-icf-gimple.h: Rename the function.
8370 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8371 Alan Hayward <alan.hayward@arm.com>
8372 David Sherwood <david.sherwood@arm.com>
8374 * coretypes.h (complex_mode): New type.
8375 * gdbhooks.py (build_pretty_printer): Handle it.
8376 * machmode.h (complex_mode): New class.
8377 (complex_mode::includes_p): New function.
8378 (is_complex_int_mode): Likewise.
8379 (is_complex_float_mode): Likewise.
8380 * genmodes.c (get_mode_class): Handle complex mode classes.
8381 * function.c (expand_function_end): Use is_complex_int_mode.
8383 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8384 Alan Hayward <alan.hayward@arm.com>
8385 David Sherwood <david.sherwood@arm.com>
8387 * coretypes.h (scalar_mode_pod): New typedef.
8388 * gdbhooks.py (build_pretty_printer): Handle it.
8389 * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
8390 * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
8391 * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
8392 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
8395 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8396 Alan Hayward <alan.hayward@arm.com>
8397 David Sherwood <david.sherwood@arm.com>
8399 * machmode.h (mode_for_vector): Take a scalar_mode instead
8401 * stor-layout.c (mode_for_vector): Likewise.
8402 * explow.c (promote_mode): Use as_a <scalar_mode>.
8403 * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
8405 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8406 Alan Hayward <alan.hayward@arm.com>
8407 David Sherwood <david.sherwood@arm.com>
8409 * target.def (preferred_simd_mode): Take a scalar_mode
8410 instead of a machine_mode.
8411 * targhooks.h (default_preferred_simd_mode): Likewise.
8412 * targhooks.c (default_preferred_simd_mode): Likewise.
8413 * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
8414 * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
8415 * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
8416 * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
8417 * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
8418 * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
8419 * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
8420 * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
8422 * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
8423 * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
8424 * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
8425 * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
8426 (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
8427 * doc/tm.texi: Regenerate.
8428 * optabs-query.c (can_vec_mask_load_store_p): Return false for
8431 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8432 Alan Hayward <alan.hayward@arm.com>
8433 David Sherwood <david.sherwood@arm.com>
8435 * target.def (scalar_mode_supported_p): Take a scalar_mode
8436 instead of a machine_mode.
8437 * targhooks.h (default_scalar_mode_supported_p): Likewise.
8438 * targhooks.c (default_scalar_mode_supported_p): Likewise.
8439 * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
8440 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
8441 * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
8442 * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
8443 * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
8444 * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
8445 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
8446 * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
8447 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
8448 * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
8449 * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
8450 * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
8452 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
8453 * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
8454 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
8455 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
8456 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
8458 * doc/tm.texi: Regenerate.
8460 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8461 Alan Hayward <alan.hayward@arm.com>
8462 David Sherwood <david.sherwood@arm.com>
8464 * coretypes.h (opt_scalar_mode): New typedef.
8465 * gdbhooks.py (build_pretty_printers): Handle it.
8466 * machmode.h (mode_iterator::get_2xwider): Add overload for
8468 * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
8470 * expr.c (convert_mode_scalar): Likewise.
8471 * omp-low.c (omp_clause_aligned_alignment): Likewise.
8472 * optabs.c (expand_float): Likewise.
8473 (expand_fix): Likewise.
8474 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8476 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8477 Alan Hayward <alan.hayward@arm.com>
8478 David Sherwood <david.sherwood@arm.com>
8480 * optabs.c (expand_float): Explicitly check for scalars before
8481 using a branching expansion.
8482 (expand_fix): Likewise.
8484 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8485 Alan Hayward <alan.hayward@arm.com>
8486 David Sherwood <david.sherwood@arm.com>
8488 * expr.c (convert_mode): Split scalar handling out into...
8489 (convert_mode_scalar): ...this new function. Treat the modes
8492 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8493 Alan Hayward <alan.hayward@arm.com>
8494 David Sherwood <david.sherwood@arm.com>
8496 * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
8498 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
8500 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8501 Alan Hayward <alan.hayward@arm.com>
8502 David Sherwood <david.sherwood@arm.com>
8504 * fixed-value.h (fixed_from_double_int): Take a scalar_mode
8505 rather than a machine_mode.
8506 (fixed_from_string): Likewise.
8507 (fixed_convert): Likewise.
8508 (fixed_convert_from_int): Likewise.
8509 (fixed_convert_from_real): Likewise.
8510 (real_convert_from_fixed): Likewise.
8511 * fixed-value.c (fixed_from_double_int): Likewise.
8512 (fixed_from_string): Likewise.
8513 (fixed_convert): Likewise.
8514 (fixed_convert_from_int): Likewise.
8515 (fixed_convert_from_real): Likewise.
8516 (real_convert_from_fixed): Likewise.
8517 * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
8519 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8520 Alan Hayward <alan.hayward@arm.com>
8521 David Sherwood <david.sherwood@arm.com>
8523 * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
8524 of separate mode class checks. Do not allow vector modes here.
8525 (immed_wide_int_const): Use as_a <scalar_mode>.
8526 * explow.c (trunc_int_for_mode): Likewise.
8527 * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
8528 (wi::shwi): Likewise.
8529 (wi::min_value): Likewise.
8530 (wi::max_value): Likewise.
8531 * dwarf2out.c (loc_descriptor): Likewise.
8532 * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
8535 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8536 Alan Hayward <alan.hayward@arm.com>
8537 David Sherwood <david.sherwood@arm.com>
8539 * tree.h (SCALAR_TYPE_MODE): New macro.
8540 * expr.c (expand_expr_addr_expr_1): Use it.
8541 (expand_expr_real_2): Likewise.
8542 * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
8543 (fold_convert_const_fixed_from_int): Likewise.
8544 (fold_convert_const_fixed_from_real): Likewise.
8545 (native_encode_fixed): Likewise
8546 (native_encode_complex): Likewise
8547 (native_encode_vector): Likewise.
8548 (native_interpret_fixed): Likewise.
8549 (native_interpret_real): Likewise.
8550 (native_interpret_complex): Likewise.
8551 (native_interpret_vector): Likewise.
8552 * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
8553 (simd_clone_adjust_argument_types): Likewise.
8554 (simd_clone_init_simd_arrays): Likewise.
8555 (simd_clone_adjust): Likewise.
8556 * stor-layout.c (layout_type): Likewise.
8557 * tree.c (build_minus_one_cst): Likewise.
8558 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
8559 * tree-inline.c (estimate_move_cost): Likewise.
8560 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
8561 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
8562 (vectorizable_reduction): Likewise.
8563 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
8564 (vect_recog_mixed_size_cond_pattern): Likewise.
8565 (check_bool_pattern): Likewise.
8566 (adjust_bool_pattern): Likewise.
8567 (search_type_for_mask_1): Likewise.
8568 * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
8569 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8570 (vectorizable_load): Likewise.
8571 (vectorizable_store): Likewise.
8572 * ubsan.c (ubsan_encode_value): Likewise.
8573 * varasm.c (output_constant): Likewise.
8575 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8576 Alan Hayward <alan.hayward@arm.com>
8577 David Sherwood <david.sherwood@arm.com>
8579 * coretypes.h (scalar_mode): New class.
8580 * machmode.h (scalar_mode): Likewise.
8581 (scalar_mode::includes_p): New function.
8582 (mode_to_inner): Return a scalar_mode rather than a machine_mode.
8583 * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
8584 * genmodes.c (get_mode_class): Handle remaining scalar modes.
8585 * cfgexpand.c (expand_debug_expr): Use scalar_mode.
8586 * expmed.c (store_bit_field_1): Likewise.
8587 (extract_bit_field_1): Likewise.
8588 * expr.c (write_complex_part): Likewise.
8589 (read_complex_part): Likewise.
8590 (emit_move_complex_push): Likewise.
8591 (expand_expr_real_2): Likewise.
8592 * function.c (assign_parm_setup_reg): Likewise.
8593 (assign_parms_unsplit_complex): Likewise.
8594 * optabs.c (expand_binop): Likewise.
8595 * rtlanal.c (subreg_get_info): Likewise.
8596 * simplify-rtx.c (simplify_immed_subreg): Likewise.
8597 * varasm.c (output_constant_pool_2): Likewise.
8599 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8600 Alan Hayward <alan.hayward@arm.com>
8601 David Sherwood <david.sherwood@arm.com>
8603 * expmed.c (extract_high_half): Use scalar_int_mode and remove
8605 (expmed_mult_highpart_optab): Likewise.
8606 (expmed_mult_highpart): Likewise.
8608 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8609 Alan Hayward <alan.hayward@arm.com>
8610 David Sherwood <david.sherwood@arm.com>
8612 * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
8613 instead of a machine_mode.
8614 (builtin_memset_read_str): Likewise.
8615 * builtins.c (c_readstr): Likewise.
8616 (builtin_memcpy_read_str): Likewise.
8617 (builtin_strncpy_read_str): Likewise.
8618 (builtin_memset_read_str): Likewise.
8619 (builtin_memset_gen_str): Likewise.
8620 (expand_builtin_signbit): Use scalar_int_mode for local variables.
8621 * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
8622 instead of a machine_mode.
8623 * combine.c (simplify_if_then_else): Use scalar_int_mode for local
8625 (make_extraction): Likewise.
8626 (try_widen_shift_mode): Take and return scalar_int_modes instead
8628 * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
8629 a scalar_int_mode instead of a machine_mode.
8630 * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
8631 (avr_addr_space_pointer_mode): Likewise.
8632 * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
8633 * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
8634 (msp430_unwind_word_mode): Likewise.
8635 * config/spu/spu.c (spu_unwind_word_mode): Likewise.
8636 (spu_addr_space_pointer_mode): Likewise.
8637 (spu_addr_space_address_mode): Likewise.
8638 (spu_libgcc_cmp_return_mode): Likewise.
8639 (spu_libgcc_shift_count_mode): Likewise.
8640 * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
8641 (rl78_addr_space_pointer_mode): Likewise.
8642 (fl78_unwind_word_mode): Likewise.
8643 (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
8645 * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
8646 * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
8647 * config/mips/mips.c (mips_mode_rep_extended): Likewise.
8648 (mips_valid_pointer_mode): Likewise.
8649 * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
8650 * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
8651 (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
8653 (ft32_addr_space_address_mode): Likewise.
8654 * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
8655 scalar_int_mode instead of a machine_mode.
8656 (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
8658 (m32c_addr_space_address_mode): Likewise.
8659 * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
8660 (rs6000_eh_return_filter_mode): Likewise.
8661 * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
8662 (rs6000_eh_return_filter_mode): Likewise.
8663 * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
8664 (s390_libgcc_shift_count_mode): Likewise.
8665 (s390_unwind_word_mode): Likewise.
8666 (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
8668 * target.def (mode_rep_extended): Likewise.
8669 (valid_pointer_mode): Likewise.
8670 (addr_space.valid_pointer_mode): Likewise.
8671 (eh_return_filter_mode): Return a scalar_int_mode rather than
8673 (libgcc_cmp_return_mode): Likewise.
8674 (libgcc_shift_count_mode): Likewise.
8675 (unwind_word_mode): Likewise.
8676 (addr_space.pointer_mode): Likewise.
8677 (addr_space.address_mode): Likewise.
8678 * doc/tm.texi: Regenerate.
8679 * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
8681 (do_jump): Use scalar_int_mode for local variables.
8682 * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
8683 rather than a machine_mode.
8684 * dwarf2out.c (convert_descriptor_to_mode): Likewise.
8685 (scompare_loc_descriptor_wide): Likewise.
8686 (scompare_loc_descriptor_narrow): Likewise.
8687 * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
8689 * except.c (sjlj_emit_dispatch_table): Likewise.
8690 (expand_builtin_eh_copy_values): Likewise.
8691 * explow.c (convert_memory_address_addr_space_1): Likewise.
8692 Take a scalar_int_mode rather than a machine_mode.
8693 (convert_memory_address_addr_space): Take a scalar_int_mode rather
8694 than a machine_mode.
8695 (memory_address_addr_space): Use scalar_int_mode for local variables.
8696 * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
8697 rather than a machine_mode.
8698 * expmed.c (mask_rtx): Likewise.
8699 (init_expmed_one_conv): Likewise.
8700 (expand_mult_highpart_adjust): Likewise.
8701 (extract_high_half): Likewise.
8702 (expmed_mult_highpart_optab): Likewise.
8703 (expmed_mult_highpart): Likewise.
8704 (expand_smod_pow2): Likewise.
8705 (expand_sdiv_pow2): Likewise.
8706 (emit_store_flag_int): Likewise.
8707 (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
8709 (extract_low_bits): Likewise.
8710 * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
8712 * expr.c (pieces_addr::adjust): Likewise.
8713 (can_store_by_pieces): Likewise.
8714 (store_by_pieces): Likewise.
8715 (clear_by_pieces_1): Likewise.
8716 (expand_expr_addr_expr_1): Likewise.
8717 (expand_expr_addr_expr): Use scalar_int_mode for local variables.
8718 (expand_expr_real_1): Likewise.
8719 (try_casesi): Likewise.
8720 * final.c (shorten_branches): Likewise.
8721 * fold-const.c (fold_convert_const_int_from_fixed): Change the
8722 type of "mode" to machine_mode.
8723 * internal-fn.c (expand_arith_overflow_result_store): Take a
8724 scalar_int_mode rather than a machine_mode.
8725 (expand_mul_overflow): Use scalar_int_mode for local variables.
8726 * loop-doloop.c (doloop_modify): Likewise.
8727 (doloop_optimize): Likewise.
8728 * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
8729 than a machine_mode.
8730 (expand_doubleword_shift_condmove): Likewise.
8731 (expand_doubleword_shift): Likewise.
8732 (expand_doubleword_clz): Likewise.
8733 (expand_doubleword_popcount): Likewise.
8734 (expand_doubleword_parity): Likewise.
8735 (expand_absneg_bit): Use scalar_int_mode for local variables.
8736 (prepare_float_lib_cmp): Likewise.
8737 * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
8738 rather than a machine_mode.
8739 (convert_memory_address_addr_space): Likewise.
8740 (get_mode_bounds): Likewise.
8741 (get_address_mode): Return a scalar_int_mode rather than a
8743 * rtlanal.c (get_address_mode): Likewise.
8744 * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
8745 than a machine_mode.
8746 * targhooks.c (default_mode_rep_extended): Likewise.
8747 (default_valid_pointer_mode): Likewise.
8748 (default_addr_space_valid_pointer_mode): Likewise.
8749 (default_eh_return_filter_mode): Return a scalar_int_mode rather
8750 than a machine_mode.
8751 (default_libgcc_cmp_return_mode): Likewise.
8752 (default_libgcc_shift_count_mode): Likewise.
8753 (default_unwind_word_mode): Likewise.
8754 (default_addr_space_pointer_mode): Likewise.
8755 (default_addr_space_address_mode): Likewise.
8756 * targhooks.h (default_eh_return_filter_mode): Likewise.
8757 (default_libgcc_cmp_return_mode): Likewise.
8758 (default_libgcc_shift_count_mode): Likewise.
8759 (default_unwind_word_mode): Likewise.
8760 (default_addr_space_pointer_mode): Likewise.
8761 (default_addr_space_address_mode): Likewise.
8762 (default_mode_rep_extended): Take a scalar_int_mode rather than
8764 (default_valid_pointer_mode): Likewise.
8765 (default_addr_space_valid_pointer_mode): Likewise.
8766 * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
8768 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
8769 rather than a machine_mode.
8770 * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
8771 for local variables.
8772 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8773 * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
8774 than a machine_mode.
8776 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8777 Alan Hayward <alan.hayward@arm.com>
8778 David Sherwood <david.sherwood@arm.com>
8780 * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
8781 the mode argument to scalar_int_mode.
8782 (do_jump_by_parts_zero_rtx): Likewise.
8783 (do_jump_by_parts_equality_rtx): Likewise.
8784 (do_jump_by_parts_greater): Take a mode argument.
8785 (do_jump_by_parts_equality): Likewise.
8786 (do_jump_1): Update calls accordingly.
8788 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8789 Alan Hayward <alan.hayward@arm.com>
8790 David Sherwood <david.sherwood@arm.com>
8792 * is-a.h (safe_dyn_cast): New function.
8793 * rtl.h (rtx_jump_table_data::get_data_mode): New function.
8794 (jump_table_for_label): Likewise.
8795 * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
8796 instead of an rtx_insn *.
8797 (shorten_branches): Use dyn_cast instead of LABEL_P and
8798 JUMP_TABLE_DATA_P. Use jump_table_for_label and
8799 rtx_jump_table_data::get_data_mode.
8800 (final_scan_insn): Likewise.
8802 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8803 Alan Hayward <alan.hayward@arm.com>
8804 David Sherwood <david.sherwood@arm.com>
8806 * combine.c (try_combine): Use is_a <scalar_int_mode> when
8807 trying to combine a full-register integer set with a subreg
8810 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8811 Alan Hayward <alan.hayward@arm.com>
8812 David Sherwood <david.sherwood@arm.com>
8814 * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
8815 that is always either address_mode or pointer_mode.
8817 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8818 Alan Hayward <alan.hayward@arm.com>
8819 David Sherwood <david.sherwood@arm.com>
8821 * expr.c (expand_expr_real_2): Use word_mode instead of innermode
8822 when the two are known to be equal.
8824 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8825 Alan Hayward <alan.hayward@arm.com>
8826 David Sherwood <david.sherwood@arm.com>
8828 * simplify-rtx.c (simplify_const_unary_operation): Use
8829 is_a <scalar_int_mode> instead of checking for a nonzero
8830 precision. Forcibly convert op_mode to a scalar_int_mode
8831 in that case. More clearly differentiate the operand and
8832 result modes and use the former when deciding what the value
8833 of a count-bits operation should be. Use is_int_mode instead
8834 of checking for a MODE_INT. Remove redundant check for whether
8835 this mode has a zero precision.
8837 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8838 Alan Hayward <alan.hayward@arm.com>
8839 David Sherwood <david.sherwood@arm.com>
8841 * optabs.c (widen_leading): Change the type of the mode argument
8842 to scalar_int_mode. Use opt_scalar_int_mode for the mode iterator.
8843 (widen_bswap): Likewise.
8844 (expand_parity): Likewise.
8845 (expand_ctz): Change the type of the mode argument to scalar_int_mode.
8846 (expand_ffs): Likewise.
8847 (epand_unop): Check for scalar integer modes before calling the
8850 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8851 Alan Hayward <alan.hayward@arm.com>
8852 David Sherwood <david.sherwood@arm.com>
8854 * expr.c (const_scalar_mask_from_tree): Add a mode argument.
8856 (expand_expr_real_1): Update call accordingly.
8858 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8859 Alan Hayward <alan.hayward@arm.com>
8860 David Sherwood <david.sherwood@arm.com>
8862 * expmed.c (store_bit_field_using_insv): Add op0_mode and
8863 value_mode arguments. Use scalar_int_mode internally.
8864 (store_bit_field_1): Rename the new integer mode from imode
8865 to op0_mode and use it instead of GET_MODE (op0). Update calls
8866 to store_split_bit_field, store_bit_field_using_insv and
8867 store_fixed_bit_field.
8868 (store_fixed_bit_field): Add op0_mode and value_mode arguments.
8869 Use scalar_int_mode internally. Use a bit count rather than a mode
8870 when calculating the largest bit size for get_best_mode.
8871 Update calls to store_split_bit_field and store_fixed_bit_field_1.
8872 (store_fixed_bit_field_1): Add mode and value_mode arguments.
8873 Remove assertion that OP0 has a scalar integer mode.
8874 (store_split_bit_field): Add op0_mode and value_mode arguments.
8875 Update calls to extract_fixed_bit_field.
8876 (extract_bit_field_using_extv): Add an op0_mode argument.
8877 Use scalar_int_mode internally.
8878 (extract_bit_field_1): Rename the new integer mode from imode to
8879 op0_mode and use it instead of GET_MODE (op0). Update calls to
8880 extract_split_bit_field, extract_bit_field_using_extv and
8881 extract_fixed_bit_field.
8882 (extract_fixed_bit_field): Add an op0_mode argument. Update calls
8883 to extract_split_bit_field and extract_fixed_bit_field_1.
8884 (extract_fixed_bit_field_1): Add a mode argument. Remove assertion
8885 that OP0 has a scalar integer mode. Use as_a <scalar_int_mode>
8887 (extract_split_bit_field): Add an op0_mode argument. Update call
8888 to extract_fixed_bit_field.
8890 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8891 Alan Hayward <alan.hayward@arm.com>
8892 David Sherwood <david.sherwood@arm.com>
8894 * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
8895 * explow.c (hard_function_value): Likewise.
8896 * expmed.c (extract_fixed_bit_field_1): Likewise. Move the
8897 convert_to_mode call outside the loop.
8898 * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
8899 for the mode iterator. Require the mode specified by max_pieces
8901 (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
8903 (copy_blkmode_to_reg): Likewise.
8904 (set_storage_via_setmem): Likewise.
8905 * optabs.c (prepare_cmp_insn): Likewise.
8906 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
8907 * stor-layout.c (finish_bitfield_representative): Likewise.
8909 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8910 Alan Hayward <alan.hayward@arm.com>
8911 David Sherwood <david.sherwood@arm.com>
8913 * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
8914 * expr.c (convert_move): Use them.
8915 (convert_modes): Likewise.
8916 (store_expr_with_bounds): Likewise.
8918 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8919 Alan Hayward <alan.hayward@arm.com>
8920 David Sherwood <david.sherwood@arm.com>
8922 * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
8923 parameter for the mode of "x". Remove the "known_x", "known_mode"
8924 and "known_ret" arguments. Change the type of the mode argument
8926 (rtl_hooks:reg_num_sign_bit_copies): Likewise.
8927 * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
8928 (reg_num_sign_bit_copies_for_combine): Likewise.
8929 * rtlanal.c (nonzero_bits1): Likewise.
8930 (num_sign_bit_copies1): Likewise.
8931 * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
8932 (reg_num_sign_bit_copies_general): Likewise.
8933 * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
8934 (reg_nonzero_bits_general): Likewise.
8936 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8937 Alan Hayward <alan.hayward@arm.com>
8938 David Sherwood <david.sherwood@arm.com>
8940 * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
8941 than in subroutines. Return 1 for non-integer modes.
8942 (cached_num_sign_bit_copies): Change the type of the mode parameter
8944 (num_sign_bit_copies1): Likewise. Remove early exit for other mode
8945 classes. Handle CONST_INT_P first and then check whether X also
8946 has a scalar integer mode. Check the same thing for inner registers
8947 of a SUBREG and for values that are being extended or truncated.
8949 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8950 Alan Hayward <alan.hayward@arm.com>
8951 David Sherwood <david.sherwood@arm.com>
8953 * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
8954 in subroutines. Return the mode mask for non-integer modes.
8955 (cached_nonzero_bits): Change the type of the mode parameter
8957 (nonzero_bits1): Likewise. Remove early exit for other mode
8958 classes. Handle CONST_INT_P first and then check whether X
8959 also has a scalar integer mode.
8961 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8962 Alan Hayward <alan.hayward@arm.com>
8963 David Sherwood <david.sherwood@arm.com>
8965 * expr.c (widest_int_mode_for_size): Make the comment match the code.
8966 Return a scalar_int_mode and assert that the size is greater than
8968 (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
8969 (op_by_pieces_d::op_by_pieces_d): Likewise.
8970 (op_by_pieces_d::run): Likewise.
8971 (can_store_by_pieces): Likewise.
8973 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8974 Alan Hayward <alan.hayward@arm.com>
8975 David Sherwood <david.sherwood@arm.com>
8977 * combine.c (extract_left_shift): Add a mode argument and update
8979 (make_compound_operation_int): Change the type of the mode parameter
8980 to scalar_int_mode and update the call to extract_left_shift.
8982 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8983 Alan Hayward <alan.hayward@arm.com>
8984 David Sherwood <david.sherwood@arm.com>
8986 * combine.c (simplify_and_const_int): Change the type of the mode
8987 parameter to scalar_int_mode.
8988 (simplify_and_const_int_1): Likewise. Update recursive call.
8990 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
8991 Alan Hayward <alan.hayward@arm.com>
8992 David Sherwood <david.sherwood@arm.com>
8994 * combine.c (simplify_compare_const): Check that the mode is a
8995 scalar_int_mode (rather than VOIDmode) before testing its
8997 (simplify_comparison): Move COMPARISON_P handling out of the
8998 loop and restrict the latter part of the loop to scalar_int_modes.
8999 Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
9000 and when considering SUBREG_REGs. Use is_int_mode instead of
9001 checking GET_MODE_CLASS against MODE_INT.
9003 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9004 Alan Hayward <alan.hayward@arm.com>
9005 David Sherwood <david.sherwood@arm.com>
9007 * combine.c (try_widen_shift_mode): Move check for equal modes to...
9008 (simplify_shift_const_1): ...here. Use scalar_int_mode for
9009 shift_unit_mode and for modes involved in scalar shifts.
9011 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9012 Alan Hayward <alan.hayward@arm.com>
9013 David Sherwood <david.sherwood@arm.com>
9015 * combine.c (force_int_to_mode): New function, split out from...
9016 (force_to_mode): ...here. Keep xmode up-to-date and use it
9017 instead of GET_MODE (x).
9019 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9020 Alan Hayward <alan.hayward@arm.com>
9021 David Sherwood <david.sherwood@arm.com>
9023 * optabs-query.h (extraction_insn::struct_mode): Change type to
9024 opt_scalar_int_mode and update comment.
9025 (extraction_insn::field_mode): Change type to scalar_int_mode.
9026 (extraction_insn::pos_mode): Likewise.
9027 * combine.c (make_extraction): Update accordingly.
9028 * optabs-query.c (get_traditional_extraction_insn): Likewise.
9029 (get_optab_extraction_insn): Likewise.
9030 * recog.c (simplify_while_replacing): Likewise.
9031 * expmed.c (narrow_bit_field_mem): Change the type of the mode
9032 parameter to opt_scalar_int_mode.
9034 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9035 Alan Hayward <alan.hayward@arm.com>
9036 David Sherwood <david.sherwood@arm.com>
9038 * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
9039 to a scalar_int_mode instead of a machine_mode.
9040 (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
9041 (get_best_mode): Return a boolean and use a pointer argument to store
9042 the selected mode. Replace the limit mode parameter with a bit limit.
9043 * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
9044 for the values returned by bit_field_mode_iterator::next_mode.
9045 (store_bit_field): Update call to get_best_mode.
9046 (store_fixed_bit_field): Likewise.
9047 (extract_fixed_bit_field): Likewise.
9048 * expr.c (optimize_bitfield_assignment_op): Likewise.
9049 * fold-const.c (optimize_bit_field_compare): Likewise.
9050 (fold_truth_andor_1): Likewise.
9051 * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
9052 Update for new type of m_mode.
9053 (get_best_mode): As above.
9055 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9056 Alan Hayward <alan.hayward@arm.com>
9057 David Sherwood <david.sherwood@arm.com>
9059 * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
9060 to scalar_int_mode. Remove check for SCALAR_INT_MODE_P.
9061 (store_bit_field): Check is_a <scalar_int_mode> before calling
9062 strict_volatile_bitfield_p.
9063 (extract_bit_field): Likewise.
9065 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9066 Alan Hayward <alan.hayward@arm.com>
9067 David Sherwood <david.sherwood@arm.com>
9069 * target.def (cstore_mode): Return a scalar_int_mode.
9070 * doc/tm.texi: Regenerate.
9071 * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
9072 * targhooks.h (default_cstore_mode): Likewise.
9073 * targhooks.c (default_cstore_mode): Likewise, using a forced
9075 * expmed.c (emit_cstore): Expect the target of the cstore to be
9078 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9079 Alan Hayward <alan.hayward@arm.com>
9080 David Sherwood <david.sherwood@arm.com>
9082 * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
9084 (niter_desc): Likewise mode.
9085 (iv_analyze): Add a mode parameter.
9087 (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
9088 and change its type to scalar_int_mode.
9089 * loop-iv.c: Update commentary at head of file.
9090 (iv_constant): Pass the mode paraeter before the rtx it describes
9091 and change its type to scalar_int_mode. Remove VOIDmode handling.
9092 (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
9093 (iv_extend): Likewise.
9094 (shorten_into_mode): Likewise.
9095 (iv_add): Use scalar_int_mode.
9096 (iv_mult): Likewise.
9097 (iv_shift): Likewise.
9098 (canonicalize_iv_subregs): Likewise.
9099 (get_biv_step_1): Pass the outer_mode parameter before the rtx
9100 it describes and change its mode to scalar_int_mode. Also change
9101 the type of the returned inner_mode to scalar_int_mode.
9102 (get_biv_step): Likewise, turning outer_mode from a pointer
9103 into a direct parameter. Update call to get_biv_step_1.
9104 (iv_analyze_biv): Add an outer_mode parameter. Update calls to
9105 iv_constant and get_biv_step.
9106 (iv_analyze_expr): Pass the mode parameter before the rtx it describes
9107 and change its type to scalar_int_mode. Don't initialise iv->mode
9108 to VOIDmode and remove later checks for its still being VOIDmode.
9109 Update calls to iv_analyze_op and iv_analyze_expr. Check
9110 is_a <scalar_int_mode> when changing the mode under consideration.
9111 (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
9112 Update call to iv_analyze_expr.
9113 (iv_analyze_op): Add a mode parameter. Reject subregs whose
9114 inner register is not also a scalar_int_mode. Update call to
9116 (iv_analyze): Add a mode parameter. Update call to iv_analyze_op.
9117 (biv_p): Add a mode parameter. Update call to iv_analyze_biv.
9118 (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
9119 separate mode class checks. Update calls to iv_analyze. Remove
9120 fix-up of VOIDmodes after iv_analyze_biv.
9121 * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
9122 don't have a scalar_int_mode. Update call to biv_p.
9124 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9125 Alan Hayward <alan.hayward@arm.com>
9126 David Sherwood <david.sherwood@arm.com>
9128 * cfgexpand.c (convert_debug_memory_address): Use
9129 as_a <scalar_int_mode>.
9130 * combine.c (expand_compound_operation): Likewise.
9131 (make_extraction): Likewise.
9132 (change_zero_ext): Likewise.
9133 (simplify_comparison): Likewise.
9134 * cse.c (cse_insn): Likewise.
9135 * dwarf2out.c (minmax_loc_descriptor): Likewise.
9136 (mem_loc_descriptor): Likewise.
9137 (loc_descriptor): Likewise.
9138 * expmed.c (init_expmed_one_mode): Likewise.
9139 (synth_mult): Likewise.
9140 (emit_store_flag_1): Likewise.
9141 (expand_divmod): Likewise. Use HWI_COMPUTABLE_MODE_P instead
9142 of a comparison with size.
9143 * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
9144 (reduce_to_bit_field_precision): Likewise.
9145 * function.c (expand_function_end): Likewise.
9146 * internal-fn.c (expand_arith_overflow_result_store): Likewise.
9147 * loop-doloop.c (doloop_modify): Likewise.
9148 * optabs.c (expand_binop): Likewise.
9149 (expand_unop): Likewise.
9150 (expand_copysign_absneg): Likewise.
9151 (prepare_cmp_insn): Likewise.
9152 (maybe_legitimize_operand): Likewise.
9153 * recog.c (const_scalar_int_operand): Likewise.
9154 * rtlanal.c (get_address_mode): Likewise.
9155 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9156 (simplify_cond_clz_ctz): Likewise.
9157 * tree-nested.c (get_nl_goto_field): Likewise.
9158 * tree.c (build_vector_type_for_mode): Likewise.
9159 * var-tracking.c (use_narrower_mode): Likewise.
9161 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9162 Alan Hayward <alan.hayward@arm.com>
9163 David Sherwood <david.sherwood@arm.com>
9165 * tree.h (SCALAR_INT_TYPE_MODE): New macro.
9166 * builtins.c (expand_builtin_signbit): Use it.
9167 * cfgexpand.c (expand_debug_expr): Likewise.
9168 * dojump.c (do_jump): Likewise.
9169 (do_compare_and_jump): Likewise.
9170 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
9171 * expmed.c (make_tree): Likewise.
9172 * expr.c (expand_expr_real_2): Likewise.
9173 (expand_expr_real_1): Likewise.
9174 (try_casesi): Likewise.
9175 * fold-const-call.c (fold_const_call_ss): Likewise.
9176 * fold-const.c (unextend): Likewise.
9177 (extract_muldiv_1): Likewise.
9178 (fold_single_bit_test): Likewise.
9179 (native_encode_int): Likewise.
9180 (native_encode_string): Likewise.
9181 (native_interpret_int): Likewise.
9182 * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
9183 * internal-fn.c (expand_addsub_overflow): Likewise.
9184 (expand_neg_overflow): Likewise.
9185 (expand_mul_overflow): Likewise.
9186 (expand_arith_overflow): Likewise.
9187 * match.pd: Likewise.
9188 * stor-layout.c (layout_type): Likewise.
9189 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
9190 * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
9191 * tree-ssanames.c (get_range_info): Likewise.
9192 * tree-switch-conversion.c (array_value_type) Likewise.
9193 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
9194 (vect_recog_divmod_pattern): Likewise.
9195 (vect_recog_mixed_size_cond_pattern): Likewise.
9196 * tree-vrp.c (extract_range_basic): Likewise.
9197 (simplify_float_conversion_using_ranges): Likewise.
9198 * tree.c (int_fits_type_p): Likewise.
9199 * ubsan.c (instrument_bool_enum_load): Likewise.
9200 * varasm.c (mergeable_string_section): Likewise.
9201 (narrowing_initializer_constant_valid_p): Likewise.
9202 (output_constant): Likewise.
9204 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9205 Alan Hayward <alan.hayward@arm.com>
9206 David Sherwood <david.sherwood@arm.com>
9208 * machmode.h (NARROWEST_INT_MODE): New macro.
9209 * expr.c (alignment_for_piecewise_move): Use it instead of
9210 GET_CLASS_NARROWEST_MODE (MODE_INT).
9211 (push_block): Likewise.
9212 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
9214 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
9216 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9217 Alan Hayward <alan.hayward@arm.com>
9218 David Sherwood <david.sherwood@arm.com>
9220 * postreload.c (move2add_valid_value_p): Change the type of the
9221 mode parameter to scalar_int_mode.
9222 (move2add_use_add2_insn): Add a mode parameter and use it instead
9224 (move2add_use_add3_insn): Likewise.
9225 (reload_cse_move2add): Update accordingly.
9227 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9228 Alan Hayward <alan.hayward@arm.com>
9229 David Sherwood <david.sherwood@arm.com>
9231 * expr.c (expand_expr_real_2): Use scalar_int_mode for the
9233 * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
9234 * optabs.c (expand_unop): Likewise.
9236 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9237 Alan Hayward <alan.hayward@arm.com>
9238 David Sherwood <david.sherwood@arm.com>
9240 * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
9241 (clz_loc_descriptor): Likewise. Remove SCALAR_INT_MODE_P check.
9242 (popcount_loc_descriptor): Likewise.
9243 (bswap_loc_descriptor): Likewise.
9244 (rotate_loc_descriptor): Likewise.
9245 (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
9246 calling the functions above.
9248 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9249 Alan Hayward <alan.hayward@arm.com>
9250 David Sherwood <david.sherwood@arm.com>
9252 * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
9254 (try_combine): Likewise.
9255 (simplify_if_then_else): Likewise.
9256 * cse.c (cse_insn): Likewise.
9257 * dwarf2out.c (mem_loc_descriptor): Likewise.
9258 * emit-rtl.c (gen_lowpart_common): Likewise.
9259 * simplify-rtx.c (simplify_truncation): Likewise.
9260 (simplify_binary_operation_1): Likewise.
9261 (simplify_const_relational_operation): Likewise.
9262 (simplify_ternary_operation): Likewise.
9263 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
9265 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9266 Alan Hayward <alan.hayward@arm.com>
9267 David Sherwood <david.sherwood@arm.com>
9269 * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
9270 * reload.c (push_reload): Likewise.
9271 (find_reloads): Likewise.
9273 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9274 Alan Hayward <alan.hayward@arm.com>
9275 David Sherwood <david.sherwood@arm.com>
9277 * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
9278 (make_compound_operation_int): Likewise.
9279 (change_zero_ext): Likewise.
9280 * expr.c (convert_move): Likewise.
9281 (convert_modes): Likewise.
9282 * fwprop.c (forward_propagate_subreg): Likewise.
9283 * loop-iv.c (get_biv_step_1): Likewise.
9284 * optabs.c (widen_operand): Likewise.
9285 * postreload.c (move2add_valid_value_p): Likewise.
9286 * recog.c (simplify_while_replacing): Likewise.
9287 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9288 (simplify_binary_operation_1): Likewise. Remove redundant
9289 mode equality check.
9291 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9292 Alan Hayward <alan.hayward@arm.com>
9293 David Sherwood <david.sherwood@arm.com>
9295 * combine.c (combine_simplify_rtx): Add checks for
9296 is_a <scalar_int_mode>.
9297 (simplify_if_then_else): Likewise.
9298 (make_field_assignment): Likewise.
9299 (simplify_comparison): Likewise.
9300 * ifcvt.c (noce_try_bitop): Likewise.
9301 * loop-invariant.c (canonicalize_address_mult): Likewise.
9302 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9304 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9305 Alan Hayward <alan.hayward@arm.com>
9306 David Sherwood <david.sherwood@arm.com>
9308 * gimple-fold.c (gimple_fold_builtin_memory_op): Use
9309 is_a <scalar_int_mode> instead of != BLKmode.
9311 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9312 Alan Hayward <alan.hayward@arm.com>
9313 David Sherwood <david.sherwood@arm.com>
9315 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
9316 instead of != VOIDmode.
9317 * combine.c (if_then_else_cond): Likewise.
9318 (change_zero_ext): Likewise.
9319 * dwarf2out.c (mem_loc_descriptor): Likewise.
9320 (loc_descriptor): Likewise.
9321 * rtlanal.c (canonicalize_condition): Likewise.
9322 * simplify-rtx.c (simplify_relational_operation_1): Likewise.
9324 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9325 Alan Hayward <alan.hayward@arm.com>
9326 David Sherwood <david.sherwood@arm.com>
9328 * simplify-rtx.c (simplify_binary_operation_1): Use
9329 is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
9331 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9332 Alan Hayward <alan.hayward@arm.com>
9333 David Sherwood <david.sherwood@arm.com>
9335 * wide-int.h (int_traits<unsigned char>) New class.
9336 (int_traits<unsigned short>) Likewise.
9337 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
9338 Use GET_MODE_UNIT_PRECISION and remove redundant test for
9340 * combine.c (set_nonzero_bits_and_sign_copies): Use
9341 is_a <scalar_int_mode>.
9342 (find_split_point): Likewise.
9343 (combine_simplify_rtx): Likewise.
9344 (simplify_logical): Likewise.
9345 (expand_compound_operation): Likewise.
9346 (expand_field_assignment): Likewise.
9347 (make_compound_operation): Likewise.
9348 (extended_count): Likewise.
9349 (change_zero_ext): Likewise.
9350 (simplify_comparison): Likewise.
9351 * dwarf2out.c (scompare_loc_descriptor): Likewise.
9352 (ucompare_loc_descriptor): Likewise.
9353 (minmax_loc_descriptor): Likewise.
9354 (mem_loc_descriptor): Likewise.
9355 (loc_descriptor): Likewise.
9356 * expmed.c (init_expmed_one_mode): Likewise.
9357 * lra-constraints.c (lra_constraint_offset): Likewise.
9358 * optabs.c (prepare_libcall_arg): Likewise.
9359 * postreload.c (move2add_note_store): Likewise.
9360 * reload.c (operands_match_p): Likewise.
9361 * rtl.h (load_extend_op): Likewise.
9362 * rtlhooks.c (gen_lowpart_general): Likewise.
9363 * simplify-rtx.c (simplify_truncation): Likewise.
9364 (simplify_unary_operation_1): Likewise.
9365 (simplify_binary_operation_1): Likewise.
9366 (simplify_const_binary_operation): Likewise.
9367 (simplify_const_relational_operation): Likewise.
9368 (simplify_subreg): Likewise.
9369 * stor-layout.c (bitwise_mode_for_mode): Likewise.
9370 * var-tracking.c (adjust_mems): Likewise.
9371 (prepare_call_arguments): Likewise.
9373 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9374 Alan Hayward <alan.hayward@arm.com>
9375 David Sherwood <david.sherwood@arm.com>
9377 * machmode.h (is_int_mode): New fuction.
9378 * combine.c (find_split_point): Use it.
9379 (combine_simplify_rtx): Likewise.
9380 (simplify_if_then_else): Likewise.
9381 (simplify_set): Likewise.
9382 (simplify_shift_const_1): Likewise.
9383 (simplify_comparison): Likewise.
9384 * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
9385 * cse.c (notreg_cost): Likewise.
9386 (cse_insn): Likewise.
9387 * cselib.c (cselib_lookup_1): Likewise.
9388 * dojump.c (do_jump_1): Likewise.
9389 (do_compare_rtx_and_jump): Likewise.
9390 * dse.c (get_call_args): Likewise.
9391 * dwarf2out.c (rtl_for_decl_init): Likewise.
9392 (native_encode_initializer): Likewise.
9393 * expmed.c (emit_store_flag_1): Likewise.
9394 (emit_store_flag): Likewise.
9395 * expr.c (convert_modes): Likewise.
9396 (store_field): Likewise.
9397 (expand_expr_real_1): Likewise.
9398 * fold-const.c (fold_read_from_constant_string): Likewise.
9399 * gimple-ssa-sprintf.c (get_format_string): Likewise.
9400 * optabs-libfuncs.c (gen_int_libfunc): Likewise.
9401 * optabs.c (expand_binop): Likewise.
9402 (expand_unop): Likewise.
9403 (expand_abs_nojump): Likewise.
9404 (expand_one_cmpl_abs_nojump): Likewise.
9405 * simplify-rtx.c (mode_signbit_p): Likewise.
9406 (val_signbit_p): Likewise.
9407 (val_signbit_known_set_p): Likewise.
9408 (val_signbit_known_clear_p): Likewise.
9409 (simplify_relational_operation_1): Likewise.
9410 * tree.c (vector_type_mode): Likewise.
9412 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9413 Alan Hayward <alan.hayward@arm.com>
9414 David Sherwood <david.sherwood@arm.com>
9416 * machmode.h (smallest_mode_for_size): Fix formatting.
9417 (smallest_int_mode_for_size): New function.
9418 * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
9419 instead of smallest_mode_for_size.
9420 * combine.c (make_extraction): Likewise.
9421 * config/arc/arc.c (arc_expand_movmem): Likewise.
9422 * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
9423 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
9424 * config/s390/s390.c (s390_expand_insv): Likewise.
9425 * config/sparc/sparc.c (assign_int_registers): Likewise.
9426 * config/spu/spu.c (spu_function_value): Likewise.
9427 (spu_function_arg): Likewise.
9428 * coverage.c (get_gcov_type): Likewise.
9429 (get_gcov_unsigned_t): Likewise.
9430 * dse.c (find_shift_sequence): Likewise.
9431 * expmed.c (store_bit_field_1): Likewise.
9432 * expr.c (convert_move): Likewise.
9433 (store_field): Likewise.
9434 * internal-fn.c (expand_arith_overflow): Likewise.
9435 * optabs-query.c (get_best_extraction_insn): Likewise.
9436 * optabs.c (expand_twoval_binop_libfunc): Likewise.
9437 * stor-layout.c (layout_type): Likewise.
9438 (initialize_sizetypes): Likewise.
9439 * targhooks.c (default_get_mask_mode): Likewise.
9440 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
9442 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9443 Alan Hayward <alan.hayward@arm.com>
9444 David Sherwood <david.sherwood@arm.com>
9446 * machmode.h (opt_mode::else_blk): New function.
9447 (int_mode_for_mode): Declare.
9448 * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
9449 * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
9451 * cfgexpand.c (expand_debug_expr): Likewise.
9452 * combine.c (gen_lowpart_or_truncate): Likewise.
9453 (gen_lowpart_for_combine): Likewise.
9454 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
9455 * config/avr/avr.c (avr_to_int_mode): Likewise.
9456 (avr_out_plus_1): Likewise.
9457 (avr_out_plus): Likewise.
9458 (avr_out_round): Likewise.
9459 * config/i386/i386.c (ix86_split_to_parts): Likewise.
9460 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
9461 (s390_expand_vcond): Likewise.
9462 * config/spu/spu.c (spu_split_immediate): Likewise.
9463 (spu_expand_mov): Likewise.
9464 * dse.c (get_stored_val): Likewise.
9465 * expmed.c (store_bit_field_1): Likewise.
9466 (convert_extracted_bit_field): Use int_mode_for_mode instead of
9468 (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
9469 (extract_low_bits): Likewise.
9470 * expr.c (emit_group_load_1): Likewise. Separate out the BLKmode
9471 handling rather than repeating the check.
9472 (emit_group_store): Likewise.
9473 (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
9474 * optabs.c (expand_absneg_bit): Likewise.
9475 (expand_copysign_absneg): Likewise.
9476 (expand_copysign_bit): Likewise.
9477 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
9478 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
9479 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
9480 * var-tracking.c (prepare_call_arguments): Likewise.
9481 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
9482 int_mode_for_mode instead of mode_for_size.
9483 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
9485 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9486 Alan Hayward <alan.hayward@arm.com>
9487 David Sherwood <david.sherwood@arm.com>
9489 * machmode.h (int_mode_for_size): New function.
9490 * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
9491 instead of mode_for_size.
9492 * calls.c (save_fixed_argument_area): Likewise. Make use of BLKmode
9494 * combine.c (expand_field_assignment): Use int_mode_for_size
9495 instead of mode_for_size.
9496 (make_extraction): Likewise.
9497 (simplify_shift_const_1): Likewise.
9498 (simplify_comparison): Likewise.
9499 * dojump.c (do_jump): Likewise.
9500 * dwarf2out.c (mem_loc_descriptor): Likewise.
9501 * emit-rtl.c (init_derived_machine_modes): Likewise.
9502 * expmed.c (flip_storage_order): Likewise.
9503 (convert_extracted_bit_field): Likewise.
9504 * expr.c (copy_blkmode_from_reg): Likewise.
9505 * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
9506 * internal-fn.c (expand_mul_overflow): Likewise.
9507 * lower-subreg.c (simple_move): Likewise.
9508 * optabs-libfuncs.c (init_optabs): Likewise.
9509 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9510 * tree.c (vector_type_mode): Likewise.
9511 * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
9512 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
9513 * tree-vect-generic.c (expand_vector_parallel): Likewise.
9514 * tree-vect-stmts.c (vectorizable_load): Likewise.
9515 (vectorizable_store): Likewise.
9517 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9518 Alan Hayward <alan.hayward@arm.com>
9519 David Sherwood <david.sherwood@arm.com>
9521 * coretypes.h (pod_mode): New type.
9522 (scalar_int_mode_pod): New typedef.
9523 * machmode.h (pod_mode): New class.
9524 (int_n_data_t::m): Change type to scalar_int_mode_pod.
9525 * genmodes.c (emit_mode_int_n): Update accordingly.
9526 * lower-subreg.h (target_lower_subreg): Change type to
9527 scalar_int_mode_pod.
9528 * gdbhooks.py (build_pretty_printer): Handle pod_mode and
9529 scalar_int_mode_pod.
9531 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9532 Alan Hayward <alan.hayward@arm.com>
9533 David Sherwood <david.sherwood@arm.com>
9535 * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
9536 machine_mode to scalar_int_mode.
9537 * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
9538 (rs6000_option_override_internal): Remove cast to int.
9539 * config/rs6000/rs6000.h (rs6000_pmode): Change type from
9540 machine_mode to scalar_int_mode.
9541 * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
9542 (rs6000_option_override_internal): Remove cast to int.
9543 * config/s390/s390.h (Pmode): Remove cast to machine_mode.
9544 * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
9546 * config/s390/s390.c (s390_expand_builtin): Likewise.
9547 * coretypes.h (scalar_int_mode): New type.
9548 (opt_scalar_int_mode): New typedef.
9549 * machmode.h (scalar_int_mode): New class.
9550 (scalar_int_mode::includes_p): New function.
9551 (byte_mode): Change type to scalar_int_mode.
9552 (word_mode): Likewise.
9553 (ptr_mode): Likewise.
9554 * emit-rtl.c (byte_mode): Likewise.
9555 (word_mode): Likewise.
9556 (ptr_mode): Likewise.
9557 (init_derived_machine_modes): Update accordingly.
9558 * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
9559 and MODE_PARTIAL_INT.
9560 * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
9561 opt_scalar_int_mode.
9563 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9564 Alan Hayward <alan.hayward@arm.com>
9565 David Sherwood <david.sherwood@arm.com>
9567 * target.def (libgcc_floating_mode_supported_p): Take a
9569 * doc/tm.texi: Regenerate.
9570 * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
9572 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
9573 * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
9576 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9577 Alan Hayward <alan.hayward@arm.com>
9578 David Sherwood <david.sherwood@arm.com>
9580 * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
9581 * doc/tm.texi: Regenerate.
9582 * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
9583 * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
9584 * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
9585 * targhooks.h (default_floatn_mode): Likewise.
9586 * targhooks.c (default_floatn_mode): Likewise.
9587 * tree.c (build_common_tree_nodes): Update accordingly.
9589 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9590 Alan Hayward <alan.hayward@arm.com>
9591 David Sherwood <david.sherwood@arm.com>
9593 * machmode.h (mode_iterator::start): Provide overload for opt_modes.
9594 (mode_iterator::iterate_p): Likewise.
9595 (mode_iterator::get_wider): Likewise.
9596 * expr.c (init_expr_target): Use opt_scalar_float_mode.
9598 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9599 Alan Hayward <alan.hayward@arm.com>
9600 David Sherwood <david.sherwood@arm.com>
9602 * coretypes.h (opt_scalar_float_mode): New typedef.
9603 * machmode.h (float_mode_for_size): New function.
9604 * emit-rtl.c (double_mode): Delete.
9605 (init_emit_once): Use float_mode_for_size.
9606 * stor-layout.c (layout_type): Likewise.
9607 * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
9609 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9610 Alan Hayward <alan.hayward@arm.com>
9611 David Sherwood <david.sherwood@arm.com>
9613 * output.h (assemble_real): Take a scalar_float_mode.
9614 * config/arm/arm.c (arm_assemble_integer): Update accordingly.
9615 * config/arm/arm.md (consttable_4): Likewise.
9616 (consttable_8): Likewise.
9617 (consttable_16): Likewise.
9618 * config/mips/mips.md (consttable_float): Likewise.
9619 * config/s390/s390.c (s390_output_pool_entry): Likewise.
9620 * varasm.c (assemble_real): Take a scalar_float_mode.
9621 (output_constant_pool_2): Update accordingly.
9622 (output_constant): Likewise.
9624 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9625 Alan Hayward <alan.hayward@arm.com>
9626 David Sherwood <david.sherwood@arm.com>
9628 * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
9629 * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
9630 * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
9631 (native_encode_real): Likewise.
9632 (native_interpret_real): Likewise.
9633 * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
9634 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
9636 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9637 Alan Hayward <alan.hayward@arm.com>
9638 David Sherwood <david.sherwood@arm.com>
9640 * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
9641 <scalar_float_mode>. Simplify.
9642 (gen_extend_conv_libfunc): Likewise.
9644 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9645 Alan Hayward <alan.hayward@arm.com>
9646 David Sherwood <david.sherwood@arm.com>
9648 * coretypes.h (scalar_float_mode): New type.
9649 * machmode.h (mode_traits::from_int): Use machine_mode if
9650 USE_ENUM_MODES is defined.
9651 (is_a): New function.
9653 (dyn_cast): Likewise.
9654 (scalar_float_mode): New class.
9655 (scalar_float_mode::includes_p): New function.
9656 (is_float_mode): Likewise.
9657 * gdbhooks.py (MachineModePrinter): New class.
9658 (build_pretty_printer): Use it for scalar_float_mode.
9659 * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
9660 (format_helper::format_helper): Turn into a template.
9661 * genmodes.c (get_mode_class): New function.
9662 (emit_insn_modes_h): Give modes the class returned by get_mode_class,
9663 or machine_mode if none.
9664 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
9665 as_a <scalar_float_mode>.
9666 * dwarf2out.c (mem_loc_descriptor): Likewise.
9667 (insert_float): Likewise.
9668 (add_const_value_attribute): Likewise.
9669 * simplify-rtx.c (simplify_immed_subreg): Likewise.
9670 * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
9671 (expand_unop): Update accordingly.
9672 (expand_abs_nojump): Likewise.
9673 (expand_copysign_absneg): Take a scalar_float_mode.
9674 (expand_copysign_bit): Likewise.
9675 (expand_copysign): Update accordingly.
9677 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9678 Alan Hayward <alan.hayward@arm.com>
9679 David Sherwood <david.sherwood@arm.com>
9681 * coretypes.h (opt_mode): New class.
9682 * machmode.h (opt_mode): Likewise.
9683 (opt_mode::else_void): New function.
9684 (opt_mode::require): Likewise.
9685 (opt_mode::exists): Likewise.
9686 (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
9687 (GET_MODE_2XWIDER_MODE): Likewise.
9688 (mode_iterator::get_wider): Update accordingly.
9689 (mode_iterator::get_2xwider): Likewise.
9690 (mode_iterator::get_known_wider): Likewise, turning into a template.
9691 * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
9692 forcing a wider mode to exist.
9693 * config/cr16/cr16.h (LONG_REG_P): Likewise.
9694 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
9695 * config/c6x/c6x.c (c6x_rtx_costs): Update use of
9696 GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
9697 * lower-subreg.c (init_lower_subreg): Likewise.
9698 * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
9699 on the final iteration.
9700 * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
9701 a wider mode exists before asking for a move pattern.
9702 (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
9703 forcing a wider mode to exist.
9704 (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
9705 returning false if no such mode exists.
9706 * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
9707 * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
9708 * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
9709 Avoid checking for a MODE_INT if we already know the mode is not a
9711 (extract_high_half): Update use of GET_MODE_WIDER_MODE,
9712 forcing a wider mode to exist.
9713 (expmed_mult_highpart_optab): Likewise.
9714 (expmed_mult_highpart): Likewise.
9715 * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
9717 * lto-streamer-in.c (lto_input_mode_table): Likewise.
9718 * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
9719 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
9720 * internal-fn.c (expand_mul_overflow): Update use of
9721 GET_MODE_2XWIDER_MODE.
9722 * omp-low.c (omp_clause_aligned_alignment): Likewise.
9723 * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
9724 GET_MODE_WIDER_MODE.
9725 (convert_plusminus_to_widen): Likewise.
9726 * tree-switch-conversion.c (array_value_type): Likewise.
9727 * var-tracking.c (emit_note_insn_var_location): Likewise.
9728 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
9729 Return false inside rather than outside the loop if no wider mode
9731 * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
9732 and GET_MODE_2XWIDER_MODE
9733 (can_compare_p): Use else_void.
9734 * gdbhooks.py (OptMachineModePrinter): New class.
9735 (build_pretty_printer): Use it for opt_mode.
9737 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9738 Alan Hayward <alan.hayward@arm.com>
9739 David Sherwood <david.sherwood@arm.com>
9741 * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
9742 once. Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
9744 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9745 Alan Hayward <alan.hayward@arm.com>
9746 David Sherwood <david.sherwood@arm.com>
9748 * machmode.h (mode_traits): New structure.
9749 (get_narrowest_mode): New function.
9750 (mode_iterator::start): Likewise.
9751 (mode_iterator::iterate_p): Likewise.
9752 (mode_iterator::get_wider): Likewise.
9753 (mode_iterator::get_known_wider): Likewise.
9754 (mode_iterator::get_2xwider): Likewise.
9755 (FOR_EACH_MODE_IN_CLASS): New mode iterator.
9756 (FOR_EACH_MODE): Likewise.
9757 (FOR_EACH_MODE_FROM): Likewise.
9758 (FOR_EACH_MODE_UNTIL): Likewise.
9759 (FOR_EACH_WIDER_MODE): Likewise.
9760 (FOR_EACH_2XWIDER_MODE): Likewise.
9761 * builtins.c (expand_builtin_strlen): Use new mode iterators.
9762 * combine.c (simplify_comparison): Likewise
9763 * config/i386/i386.c (type_natural_mode): Likewise.
9764 * cse.c (cse_insn): Likewise.
9765 * dse.c (find_shift_sequence): Likewise.
9766 * emit-rtl.c (init_derived_machine_modes): Likewise.
9767 (init_emit_once): Likewise.
9768 * explow.c (hard_function_value): Likewise.
9769 * expmed.c (extract_fixed_bit_field_1): Likewise.
9770 (extract_bit_field_1): Likewise.
9771 (expand_divmod): Likewise.
9772 (emit_store_flag_1): Likewise.
9773 * expr.c (init_expr_target): Likewise.
9774 (convert_move): Likewise.
9775 (alignment_for_piecewise_move): Likewise.
9776 (widest_int_mode_for_size): Likewise.
9777 (emit_block_move_via_movmem): Likewise.
9778 (copy_blkmode_to_reg): Likewise.
9779 (set_storage_via_setmem): Likewise.
9780 (compress_float_constant): Likewise.
9781 * omp-low.c (omp_clause_aligned_alignment): Likewise.
9782 * optabs-query.c (get_best_extraction_insn): Likewise.
9783 * optabs.c (expand_binop): Likewise.
9784 (expand_twoval_unop): Likewise.
9785 (expand_twoval_binop): Likewise.
9786 (widen_leading): Likewise.
9787 (widen_bswap): Likewise.
9788 (expand_parity): Likewise.
9789 (expand_unop): Likewise.
9790 (prepare_cmp_insn): Likewise.
9791 (prepare_float_lib_cmp): Likewise.
9792 (expand_float): Likewise.
9793 (expand_fix): Likewise.
9794 (expand_sfix_optab): Likewise.
9795 * postreload.c (move2add_use_add2_insn): Likewise.
9796 * reg-stack.c (reg_to_stack): Likewise.
9797 * reginfo.c (choose_hard_reg_mode): Likewise.
9798 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
9799 * stor-layout.c (mode_for_size): Likewise.
9800 (smallest_mode_for_size): Likewise.
9801 (mode_for_vector): Likewise.
9802 (finish_bitfield_representative): Likewise.
9803 * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
9804 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
9805 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
9806 * var-tracking.c (prepare_call_arguments): Likewise.
9808 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9809 Alan Hayward <alan.hayward@arm.com>
9810 David Sherwood <david.sherwood@arm.com>
9812 * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
9813 * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
9814 USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
9815 * machmode.h (mode_size): Move earlier in file.
9816 (mode_precision): Likewise.
9817 (mode_inner): Likewise.
9818 (mode_nunits): Likewise.
9819 (mode_unit_size): Likewise.
9820 (unit_unit_precision): Likewise.
9821 (mode_wider): Likewise.
9822 (mode_2xwider): Likewise.
9823 (machine_mode): New class.
9824 (mode_to_bytes): New function.
9825 (mode_to_bits): Likewise.
9826 (mode_to_precision): Likewise.
9827 (mode_to_inner): Likewise.
9828 (mode_to_unit_size): Likewise.
9829 (mode_to_unit_precision): Likewise.
9830 (mode_to_nunits): Likewise.
9831 (GET_MODE_SIZE): Use mode_to_bytes.
9832 (GET_MODE_BITSIZE): Use mode_to_bits.
9833 (GET_MODE_PRECISION): Use mode_to_precision.
9834 (GET_MODE_INNER): Use mode_to_inner.
9835 (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
9836 (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
9837 (GET_MODE_NUNITS): Use mode_to_nunits.
9838 * system.h (ALWAYS_INLINE): New macro.
9839 * config/powerpcspe/powerpcspe-c.c
9840 (altivec_resolve_overloaded_builtin): Use machine_mode instead of
9841 int for arg1_mode and arg2_mode.
9843 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9844 Alan Hayward <alan.hayward@arm.com>
9845 David Sherwood <david.sherwood@arm.com>
9847 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
9848 Prefix mode names with E_ in case statements.
9849 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9850 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
9851 (aarch64_split_simd_move): Likewise.
9852 (aarch64_gen_storewb_pair): Likewise.
9853 (aarch64_gen_loadwb_pair): Likewise.
9854 (aarch64_gen_store_pair): Likewise.
9855 (aarch64_gen_load_pair): Likewise.
9856 (aarch64_get_condition_code_1): Likewise.
9857 (aarch64_constant_pool_reload_icode): Likewise.
9858 (get_rsqrte_type): Likewise.
9859 (get_rsqrts_type): Likewise.
9860 (get_recpe_type): Likewise.
9861 (get_recps_type): Likewise.
9862 (aarch64_gimplify_va_arg_expr): Likewise.
9863 (aarch64_simd_container_mode): Likewise.
9864 (aarch64_emit_load_exclusive): Likewise.
9865 (aarch64_emit_store_exclusive): Likewise.
9866 (aarch64_expand_compare_and_swap): Likewise.
9867 (aarch64_gen_atomic_cas): Likewise.
9868 (aarch64_emit_bic): Likewise.
9869 (aarch64_emit_atomic_swap): Likewise.
9870 (aarch64_emit_atomic_load_op): Likewise.
9871 (aarch64_evpc_trn): Likewise.
9872 (aarch64_evpc_uzp): Likewise.
9873 (aarch64_evpc_zip): Likewise.
9874 (aarch64_evpc_ext): Likewise.
9875 (aarch64_evpc_rev): Likewise.
9876 (aarch64_evpc_dup): Likewise.
9877 (aarch64_gen_ccmp_first): Likewise.
9878 (aarch64_gen_ccmp_next): Likewise.
9879 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
9880 (alpha_emit_xfloating_libcall): Likewise.
9881 (emit_insxl): Likewise.
9882 (alpha_arg_type): Likewise.
9883 * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
9884 (arc_preferred_simd_mode): Likewise.
9885 (arc_secondary_reload): Likewise.
9886 (get_arc_condition_code): Likewise.
9887 (arc_print_operand): Likewise.
9888 (arc_legitimate_constant_p): Likewise.
9889 * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9890 * config/arc/arc.md (casesi_load): Likewise.
9891 (casesi_compact_jump): Likewise.
9892 * config/arc/predicates.md (proper_comparison_operator): Likewise.
9893 (cc_use_register): Likewise.
9894 * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9895 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
9896 (arm_init_iwmmxt_builtins): Likewise.
9897 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
9898 (neon_expand_vector_init): Likewise.
9899 (arm_attr_length_move_neon): Likewise.
9900 (maybe_get_arm_condition_code): Likewise.
9901 (arm_emit_vector_const): Likewise.
9902 (arm_preferred_simd_mode): Likewise.
9903 (arm_output_iwmmxt_tinsr): Likewise.
9904 (thumb1_output_casesi): Likewise.
9905 (thumb2_output_casesi): Likewise.
9906 (arm_emit_load_exclusive): Likewise.
9907 (arm_emit_store_exclusive): Likewise.
9908 (arm_expand_compare_and_swap): Likewise.
9909 (arm_evpc_neon_vuzp): Likewise.
9910 (arm_evpc_neon_vzip): Likewise.
9911 (arm_evpc_neon_vrev): Likewise.
9912 (arm_evpc_neon_vtrn): Likewise.
9913 (arm_evpc_neon_vext): Likewise.
9914 (arm_validize_comparison): Likewise.
9915 * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
9916 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
9917 * config/avr/avr.c (avr_rtx_costs_1): Likewise.
9918 * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
9919 (c6x_preferred_simd_mode): Likewise.
9920 * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
9921 (epiphany_rtx_costs): Likewise.
9922 * config/epiphany/predicates.md (proper_comparison_operator):
9924 * config/frv/frv.c (condexec_memory_operand): Likewise.
9925 (frv_emit_move): Likewise.
9926 (output_move_single): Likewise.
9927 (output_condmove_single): Likewise.
9928 (frv_hard_regno_mode_ok): Likewise.
9929 (frv_matching_accg_mode): Likewise.
9930 * config/h8300/h8300.c (split_adds_subs): Likewise.
9931 (h8300_rtx_costs): Likewise.
9932 (h8300_print_operand): Likewise.
9933 (compute_mov_length): Likewise.
9934 (output_logical_op): Likewise.
9935 (compute_logical_op_length): Likewise.
9936 (compute_logical_op_cc): Likewise.
9937 (h8300_shift_needs_scratch_p): Likewise.
9938 (output_a_shift): Likewise.
9939 (compute_a_shift_length): Likewise.
9940 (compute_a_shift_cc): Likewise.
9941 (expand_a_rotate): Likewise.
9942 (output_a_rotate): Likewise.
9943 * config/i386/i386.c (classify_argument): Likewise.
9944 (function_arg_advance_32): Likewise.
9945 (function_arg_32): Likewise.
9946 (function_arg_64): Likewise.
9947 (function_value_64): Likewise.
9948 (ix86_gimplify_va_arg): Likewise.
9949 (ix86_legitimate_constant_p): Likewise.
9950 (put_condition_code): Likewise.
9951 (split_double_mode): Likewise.
9952 (ix86_avx256_split_vector_move_misalign): Likewise.
9953 (ix86_expand_vector_logical_operator): Likewise.
9954 (ix86_split_idivmod): Likewise.
9955 (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
9956 (ix86_build_const_vector): Likewise.
9957 (ix86_build_signbit_mask): Likewise.
9958 (ix86_match_ccmode): Likewise.
9959 (ix86_cc_modes_compatible): Likewise.
9960 (ix86_expand_branch): Likewise.
9961 (ix86_expand_sse_cmp): Likewise.
9962 (ix86_expand_sse_movcc): Likewise.
9963 (ix86_expand_int_sse_cmp): Likewise.
9964 (ix86_expand_vec_perm_vpermi2): Likewise.
9965 (ix86_expand_vec_perm): Likewise.
9966 (ix86_expand_sse_unpack): Likewise.
9967 (ix86_expand_int_addcc): Likewise.
9968 (ix86_split_to_parts): Likewise.
9969 (ix86_vectorize_builtin_gather): Likewise.
9970 (ix86_vectorize_builtin_scatter): Likewise.
9971 (avx_vpermilp_parallel): Likewise.
9972 (inline_memory_move_cost): Likewise.
9973 (ix86_tieable_integer_mode_p): Likewise.
9974 (x86_maybe_negate_const_int): Likewise.
9975 (ix86_expand_vector_init_duplicate): Likewise.
9976 (ix86_expand_vector_init_one_nonzero): Likewise.
9977 (ix86_expand_vector_init_one_var): Likewise.
9978 (ix86_expand_vector_init_concat): Likewise.
9979 (ix86_expand_vector_init_interleave): Likewise.
9980 (ix86_expand_vector_init_general): Likewise.
9981 (ix86_expand_vector_set): Likewise.
9982 (ix86_expand_vector_extract): Likewise.
9983 (emit_reduc_half): Likewise.
9984 (ix86_emit_i387_round): Likewise.
9985 (ix86_mangle_type): Likewise.
9986 (ix86_expand_round_sse4): Likewise.
9987 (expand_vec_perm_blend): Likewise.
9988 (canonicalize_vector_int_perm): Likewise.
9989 (ix86_expand_vec_one_operand_perm_avx512): Likewise.
9990 (expand_vec_perm_1): Likewise.
9991 (expand_vec_perm_interleave3): Likewise.
9992 (expand_vec_perm_even_odd_pack): Likewise.
9993 (expand_vec_perm_even_odd_1): Likewise.
9994 (expand_vec_perm_broadcast_1): Likewise.
9995 (ix86_vectorize_vec_perm_const_ok): Likewise.
9996 (ix86_expand_vecop_qihi): Likewise.
9997 (ix86_expand_mul_widen_hilo): Likewise.
9998 (ix86_expand_sse2_abs): Likewise.
9999 (ix86_expand_pextr): Likewise.
10000 (ix86_expand_pinsr): Likewise.
10001 (ix86_preferred_simd_mode): Likewise.
10002 (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
10003 * config/i386/sse.md (*andnot<mode>3): Likewise.
10004 (<mask_codefor><code><mode>3<mask_name>): Likewise.
10005 (*<code><mode>3): Likewise.
10006 * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
10007 (ia64_expand_atomic_op): Likewise.
10008 (ia64_arg_type): Likewise.
10009 (ia64_mode_to_int): Likewise.
10010 (ia64_scalar_mode_supported_p): Likewise.
10011 (ia64_vector_mode_supported_p): Likewise.
10012 (expand_vec_perm_broadcast): Likewise.
10013 * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
10014 (iq2000_function_arg_advance): Likewise.
10015 (iq2000_function_arg): Likewise.
10016 * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
10017 * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
10018 (m68k_libcall_value): Likewise.
10019 (m68k_function_value): Likewise.
10020 (sched_attr_op_type): Likewise.
10021 * config/mcore/mcore.c (mcore_output_move): Likewise.
10022 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
10024 (microblaze_function_arg): Likewise.
10025 * config/mips/mips.c (mips16_build_call_stub): Likewise.
10026 (mips_print_operand): Likewise.
10027 (mips_mode_ok_for_mov_fmt_p): Likewise.
10028 (mips_vector_mode_supported_p): Likewise.
10029 (mips_preferred_simd_mode): Likewise.
10030 (mips_expand_vpc_loongson_even_odd): Likewise.
10031 (mips_expand_vec_unpack): Likewise.
10032 (mips_expand_vi_broadcast): Likewise.
10033 (mips_expand_vector_init): Likewise.
10034 (mips_expand_vec_reduc): Likewise.
10035 (mips_expand_msa_cmp): Likewise.
10036 * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
10037 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
10038 (cc_flags_for_mode): Likewise.
10039 * config/msp430/msp430.c (msp430_print_operand): Likewise.
10040 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
10041 (nds32_output_casesi_pc_relative): Likewise.
10042 * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10043 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
10044 (nvptx_gen_unpack): Likewise.
10045 (nvptx_gen_pack): Likewise.
10046 (nvptx_gen_shuffle): Likewise.
10047 (nvptx_gen_wcast): Likewise.
10048 (nvptx_preferred_simd_mode): Likewise.
10049 * config/pa/pa.c (pa_secondary_reload): Likewise.
10050 * config/pa/predicates.md (base14_operand): Likewise.
10051 * config/powerpcspe/powerpcspe-c.c
10052 (altivec_resolve_overloaded_builtin): Likewise.
10053 * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
10055 (rs6000_preferred_simd_mode): Likewise.
10056 (output_vec_const_move): Likewise.
10057 (rs6000_expand_vector_extract): Likewise.
10058 (rs6000_split_vec_extract_var): Likewise.
10059 (reg_offset_addressing_ok_p): Likewise.
10060 (rs6000_legitimate_offset_address_p): Likewise.
10061 (rs6000_legitimize_address): Likewise.
10062 (rs6000_emit_set_const): Likewise.
10063 (rs6000_const_vec): Likewise.
10064 (rs6000_emit_move): Likewise.
10065 (spe_build_register_parallel): Likewise.
10066 (rs6000_darwin64_record_arg_recurse): Likewise.
10067 (swap_selector_for_mode): Likewise.
10068 (spe_init_builtins): Likewise.
10069 (paired_init_builtins): Likewise.
10070 (altivec_init_builtins): Likewise.
10071 (do_load_for_compare): Likewise.
10072 (rs6000_generate_compare): Likewise.
10073 (rs6000_expand_float128_convert): Likewise.
10074 (emit_load_locked): Likewise.
10075 (emit_store_conditional): Likewise.
10076 (rs6000_output_function_epilogue): Likewise.
10077 (rs6000_handle_altivec_attribute): Likewise.
10078 (rs6000_function_value): Likewise.
10079 (emit_fusion_gpr_load): Likewise.
10080 (emit_fusion_p9_load): Likewise.
10081 (emit_fusion_p9_store): Likewise.
10082 * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
10083 (fusion_gpr_mem_load): Likewise.
10084 (fusion_addis_mem_combo_load): Likewise.
10085 (fusion_addis_mem_combo_store): Likewise.
10086 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
10087 (fusion_gpr_mem_load): Likewise.
10088 (fusion_addis_mem_combo_load): Likewise.
10089 (fusion_addis_mem_combo_store): Likewise.
10090 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10092 * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
10093 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
10094 (rs6000_preferred_simd_mode): Likewise.
10095 (output_vec_const_move): Likewise.
10096 (rs6000_expand_vector_extract): Likewise.
10097 (rs6000_split_vec_extract_var): Likewise.
10098 (reg_offset_addressing_ok_p): Likewise.
10099 (rs6000_legitimate_offset_address_p): Likewise.
10100 (rs6000_legitimize_address): Likewise.
10101 (rs6000_emit_set_const): Likewise.
10102 (rs6000_const_vec): Likewise.
10103 (rs6000_emit_move): Likewise.
10104 (rs6000_darwin64_record_arg_recurse): Likewise.
10105 (swap_selector_for_mode): Likewise.
10106 (paired_init_builtins): Likewise.
10107 (altivec_init_builtins): Likewise.
10108 (rs6000_expand_float128_convert): Likewise.
10109 (emit_load_locked): Likewise.
10110 (emit_store_conditional): Likewise.
10111 (rs6000_output_function_epilogue): Likewise.
10112 (rs6000_handle_altivec_attribute): Likewise.
10113 (rs6000_function_value): Likewise.
10114 (emit_fusion_gpr_load): Likewise.
10115 (emit_fusion_p9_load): Likewise.
10116 (emit_fusion_p9_store): Likewise.
10117 * config/rx/rx.c (rx_gen_move_template): Likewise.
10118 (flags_from_mode): Likewise.
10119 * config/s390/predicates.md (s390_alc_comparison): Likewise.
10120 (s390_slb_comparison): Likewise.
10121 * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
10122 (s390_vector_mode_supported_p): Likewise.
10123 (s390_cc_modes_compatible): Likewise.
10124 (s390_match_ccmode_set): Likewise.
10125 (s390_canonicalize_comparison): Likewise.
10126 (s390_emit_compare_and_swap): Likewise.
10127 (s390_branch_condition_mask): Likewise.
10128 (s390_rtx_costs): Likewise.
10129 (s390_secondary_reload): Likewise.
10130 (__SECONDARY_RELOAD_CASE): Likewise.
10131 (s390_expand_cs): Likewise.
10132 (s390_preferred_simd_mode): Likewise.
10133 * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
10134 * config/sh/sh.c (sh_print_operand): Likewise.
10135 (dump_table): Likewise.
10136 (sh_secondary_reload): Likewise.
10137 * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10138 * config/sh/sh.md (casesi_worker_1): Likewise.
10139 (casesi_worker_2): Likewise.
10140 * config/sparc/predicates.md (icc_comparison_operator): Likewise.
10141 (fcc_comparison_operator): Likewise.
10142 * config/sparc/sparc.c (sparc_expand_move): Likewise.
10143 (emit_soft_tfmode_cvt): Likewise.
10144 (sparc_preferred_simd_mode): Likewise.
10145 (output_cbranch): Likewise.
10146 (sparc_print_operand): Likewise.
10147 (sparc_expand_vec_perm_bmask): Likewise.
10148 (vector_init_bshuffle): Likewise.
10149 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
10150 (spu_vector_mode_supported_p): Likewise.
10151 (spu_expand_insv): Likewise.
10152 (spu_emit_branch_or_set): Likewise.
10153 (spu_handle_vector_attribute): Likewise.
10154 (spu_builtin_splats): Likewise.
10155 (spu_builtin_extract): Likewise.
10156 (spu_builtin_promote): Likewise.
10157 (spu_expand_sign_extend): Likewise.
10158 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
10159 (tilegx_simd_int): Likewise.
10160 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
10161 (tilepro_simd_int): Likewise.
10162 * config/v850/v850.c (const_double_split): Likewise.
10163 (v850_print_operand): Likewise.
10164 (ep_memory_offset): Likewise.
10165 * config/vax/vax.c (vax_rtx_costs): Likewise.
10166 (vax_output_int_move): Likewise.
10167 (vax_output_int_add): Likewise.
10168 (vax_output_int_subtract): Likewise.
10169 * config/visium/predicates.md (visium_branch_operator): Likewise.
10170 * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
10171 (visium_print_operand_address): Likewise.
10172 * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10173 * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
10174 (xtensa_expand_conditional_branch): Likewise.
10175 (xtensa_copy_incoming_a7): Likewise.
10176 (xtensa_output_literal): Likewise.
10177 * dfp.c (decimal_real_maxval): Likewise.
10178 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
10180 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
10181 Alan Hayward <alan.hayward@arm.com>
10182 David Sherwood <david.sherwood@arm.com>
10184 * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
10185 (mode_nunits_inline): Likewise.
10186 (mode_inner_inline): Likewise.
10187 (mode_unit_size_inline): Likewise.
10188 (mode_unit_precision_inline): Likewise.
10189 (emit_insn_modes_h): Likewise. Also emit a #define of the
10191 (emit_mode_wider): Add an E_ prefix to mode names.
10192 (emit_mode_complex): Likewise.
10193 (emit_mode_inner): Likewise.
10194 (emit_mode_adjustments): Likewise.
10195 (emit_mode_int_n): Likewise.
10196 * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
10197 (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
10198 (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
10199 (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
10200 (CRC32_BUILTIN, ENTRY): Likewise.
10201 * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
10202 (aarch64_pop_regs): Likewise.
10203 (aarch64_process_components): Likewise.
10204 * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
10205 * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
10206 (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
10207 (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
10208 * config/arm/arm.c (arm_init_libfuncs): Likewise.
10209 * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
10211 * config/i386/i386-builtin.def (pcmpestr): Likewise.
10212 (pcmpistr): Likewise.
10213 * config/microblaze/microblaze.c (double_memory_operand): Likewise.
10214 * config/mmix/mmix.c (mmix_output_condition): Likewise.
10215 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
10217 * config/rl78/rl78.c (mduc_regs): Likewise.
10218 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
10219 (htm_expand_builtin): Likewise.
10220 * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
10221 * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
10222 * config/xtensa/xtensa.c (print_operand): Likewise.
10223 * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
10224 (NUM_MODE_VECTOR_INT): Likewise.
10225 * genoutput.c (null_operand): Likewise.
10226 (output_operand_data): Likewise.
10227 * genrecog.c (print_parameter_value): Likewise.
10228 * lra.c (debug_operand_data): Likewise.
10230 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
10232 * dwarf2out.c (scompare_loc_descriptor_wide)
10233 (scompare_loc_descriptor_narrow): New functions, split out from...
10234 (scompare_loc_descriptor): ...here.
10235 * expmed.c (emit_store_flag_int): New function, split out from...
10236 (emit_store_flag): ...here.
10238 2017-08-30 Richard Biener <rguenther@suse.de>
10240 * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
10241 (dwarf2out_early_finish): Move setting of AT_pubnames from
10242 early debug output to early finish.
10244 2017-08-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
10246 * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
10247 and -mdata-region to the assembler.
10249 2017-08-30 Richard Biener <rguenther@suse.de>
10251 * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
10253 (gen_subprogram_die): Add DW_AT_object_pointer only early.
10254 (dwarf2out_early_global_decl): Only generate a DIE for the
10255 abstract origin if it doesn't already exist or is a declaration DIE.
10256 (resolve_addr): Do not add the linkage name twice when
10257 generating a stub DIE for the DW_TAG_GNU_call_site target.
10259 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
10261 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10262 Use machine_mode rather than int for arg1_mode.
10264 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
10267 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
10268 that the second argument of the built-in functions to unpack
10269 128-bit scalar types to 64-bit values is 0 or 1. Change to use a
10270 switch statement instead a lot of if statements.
10271 * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
10272 Allow 64-bit values to be in Altivec registers as well as
10273 traditional floating point registers.
10274 (pack<mode>, FMOVE128_VSX iterator): Likewise.
10276 2017-08-29 Alexander Monakov <amonakov@ispras.ru>
10278 * ira-costs.c (record_address_regs): Handle both operands of PLUS for
10279 MAX_REGS_PER_ADDRESS == 1.
10281 2017-08-29 Uros Bizjak <ubizjak@gmail.com>
10283 * config/i386/i386.opt (flag_fentry): Do not init to -1.
10284 * config/i386/i386.c (ix86_option_override_internal): Simplify
10285 setting of opts->x_flag_entry.
10287 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10288 Jakub Jelinek <jakub@redhat.com>
10289 Richard Biener <rguenther@suse.de>
10291 PR tree-optimization/81503
10292 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
10293 folded constant fits in the target type; reorder tests for clarity.
10295 2017-08-29 Martin Liska <mliska@suse.cz>
10297 * passes.def: Include pass_lower_switch.
10298 * stmt.c (dump_case_nodes): Remove and move to
10299 tree-switch-conversion.
10300 (case_values_threshold): Likewise.
10301 (expand_switch_as_decision_tree_p): Likewise.
10302 (emit_case_decision_tree): Likewise.
10303 (expand_case): Likewise.
10304 (balance_case_nodes): Likewise.
10305 (node_has_low_bound): Likewise.
10306 (node_has_high_bound): Likewise.
10307 (node_is_bounded): Likewise.
10308 (emit_case_nodes): Likewise.
10309 (struct simple_case_node): New struct.
10310 (add_case_node): Remove.
10311 (emit_case_dispatch_table): Use vector instead of case_list.
10312 (reset_out_edges_aux): Remove.
10313 (compute_cases_per_edge): Likewise.
10314 (expand_case): Build list of simple_case_node.
10315 (expand_sjlj_dispatch_table): Use it.
10316 * tree-switch-conversion.c (struct case_node): Moved from
10317 stmt.c and adjusted.
10318 (emit_case_nodes): Likewise.
10319 (node_has_low_bound): Likewise.
10320 (node_has_high_bound): Likewise.
10321 (node_is_bounded): Likewise.
10322 (case_values_threshold): Likewise.
10323 (reset_out_edges_aux): Likewise.
10324 (compute_cases_per_edge): Likewise.
10325 (add_case_node): Likewise.
10326 (dump_case_nodes): Likewise.
10327 (balance_case_nodes): Likewise.
10328 (expand_switch_as_decision_tree_p): Likewise.
10329 (emit_jump): Likewise.
10330 (emit_case_decision_tree): Likewise.
10331 (try_switch_expansion): Likewise.
10332 (do_jump_if_equal): Likewise.
10333 (emit_cmp_and_jump_insns): Likewise.
10334 (fix_phi_operands_for_edge): New function.
10335 (record_phi_operand_mapping): Likewise.
10336 (class pass_lower_switch): New pass.
10337 (pass_lower_switch::execute): New function.
10338 (make_pass_lower_switch): Likewise.
10339 (conditional_probability):
10340 * timevar.def: Add TV_TREE_SWITCH_LOWERING.
10341 * tree-pass.h: Add make_pass_lower_switch.
10343 2017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com>
10346 * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
10349 2017-08-29 Richard Biener <rguenther@suse.de>
10351 * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
10352 we do not add a DW_AT_inline attribute twice.
10353 (gen_subprogram_die): Remove code setting DW_AT_inline on
10354 DECL_ABSTRACT_P nodes.
10356 2017-08-29 Richard Sandiford <richard.sandiford@linaro.org>
10358 * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
10359 calls to internal functions.
10360 (gimplify_modify_expr): Likewise.
10361 * tree-call-cdce.c (use_internal_fn): Likewise.
10362 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
10363 (convert_to_divmod): Set the nothrow flag.
10364 * tree-if-conv.c (predicate_mem_writes): Likewise.
10365 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
10366 (vectorizable_call): Likewise.
10367 (vectorizable_store): Likewise.
10368 (vectorizable_load): Likewise.
10369 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
10370 (vect_recog_mask_conversion_pattern): Likewise.
10372 2017-08-29 Martin Liska <mliska@suse.cz>
10375 * gcc.c (driver_handle_option): Add new argument.
10376 * opts-common.c (handle_option): Pass
10377 target_option_override_hook.
10378 * opts-global.c (lang_handle_option): Add new option.
10379 (set_default_handlers): Add new argument.
10380 (decode_options): Likewise.
10381 * opts.c (target_handle_option): Likewise.
10382 (common_handle_option): Call target_option_override_hook.
10383 * opts.h (struct cl_option_handler_func): Add hook for
10384 target option override.
10385 (struct cl_option_handlers): Likewise.
10386 (set_default_handlers): Add new argument.
10387 (decode_options): Likewise.
10388 (common_handle_option): Likewise.
10389 (target_handle_option): Likewise.
10390 * toplev.c (toplev::main): Pass targetm.target_option.override
10393 2017-08-29 Richard Biener <rguenther@suse.de>
10394 Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
10396 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
10397 life to the active subtree.
10399 2017-08-28 Jeff Law <law@redhat.com>
10401 * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
10402 derive_equivalences.
10403 (derive_equivalences_from_bit_ior, record_temporary_equivalences):
10404 Code moved into....
10405 (edge_info::derive_equivalences): New private member function
10407 * tree-ssa-dom.c (class edge_info): Changed from a struct
10408 to a class. Add ctor/dtor, methods and data members.
10409 (edge_info::edge_info): Renamed from allocate_edge_info.
10410 Initialize additional members.
10411 (edge_info::~edge_info): New.
10412 (free_dom_edge_info): Delete the edge info.
10413 (record_edge_info): Use new class & associated member functions.
10414 Tighten forms for testing for edge equivalences.
10415 (record_temporary_equivalences): Iterate over the simple
10416 equivalences rather than assuming there's only one per edge.
10417 (cprop_into_successor_phis): Iterate over the simple
10418 equivalences rather than assuming there's only one per edge.
10419 (optimize_stmt): Use operand_equal_p rather than pointer
10420 equality for mini-DSE code.
10422 2017-08-28 Nathan Sidwell <nathan@acm.org>
10424 * gcc.c (execute): Fold SIGPIPE handling into switch
10425 statement. Adjust internal error message.
10427 2017-08-28 Richard Biener <rguenther@suse.de>
10430 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
10431 Do nothing for removed DIEs.
10433 2017-08-28 Richard Biener <rguenther@suse.de>
10435 PR tree-optimization/81977
10436 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
10439 2017-08-28 Alexander Monakov <amonakov@ispras.ru>
10442 * doc/md.texi (mem_thread_fence): Remove mention of mode. Rewrite.
10443 * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
10444 using targetm.gen_mem_thread_fence.
10446 2017-08-27 Uros Bizjak <ubizjak@gmail.com>
10449 * config/i386/i386.md (*<btsc><mode>): Change operand 2
10450 predicate to register_operand. Reorder operands.
10451 (*btr<mode>): Ditto.
10452 (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
10453 (*btr<mode>_mask): Ditto.
10455 2017-08-25 Steven Munroe <munroesj@gcc.gnu.org>
10457 * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
10458 * config/rs6000/xmmintrin.h: New file.
10459 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
10461 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10464 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
10465 parameter and_insn and return it.
10466 (recombine_lvx_pattern): Insert a copy to ensure availability of
10467 the base register of the copied masking operation at the point of
10468 the instruction replacement.
10469 (recombine_stvx_pattern): Likewise.
10471 2017-08-25 Michael Meissner <meissner@linux.vnet.ibm.com>
10473 * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
10474 undocumented switches.
10475 (-mpower9-dform-vector): Likewise.
10476 (-mpower9-dform): Likewise.
10477 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
10478 comments to delete references to -mpower9-dform* switches.
10479 * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
10480 Delete reference to -mpower9-dform* switches, test for
10481 -mpower9-vector instead.
10482 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
10483 (OTHER_P9_VECTOR_MASKS): Likewise.
10484 (POWERPC_MASKS): Likewise.
10485 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
10486 tests against -mpower9-dform* to -mpower9-vector. Delete code
10487 that checked for -mpower9-dform* consistancy with other options.
10488 Add test for -mpower9-misc to enable other power9 switches.
10489 (rs6000_init_hard_regno_mode_ok): Likewise.
10490 (rs6000_option_override_internal): Likewise.
10491 (rs6000_emit_prologue): Likewise.
10492 (rs6000_emit_epilogue): Likewise.
10493 (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
10494 (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
10495 (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
10497 (emit_fusion_p9_store): Likewise.
10498 * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
10499 resetting these macros if the assembler does not support ISA 3.0
10501 (TARGET_P9_DFORM_VECTOR): Likewise.
10502 * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
10503 Change to use -mpower9-vector instead of -mpower9-dform-scalar.
10505 2017-08-25 Alan Modra <amodra@gmail.com>
10507 PR rtl-optimization/81747
10508 * cse.c (cse_extended_basic_block): Don't attempt to record
10509 equivalences for degenerate conditional branches that branch
10510 to their fall-through.
10512 2017-08-24 Martin Sebor <msebor@redhat.com>
10514 PR middle-end/81908
10515 * gimple-fold.c (size_must_be_zero_p): New function.
10516 (gimple_fold_builtin_memory_op): Call it.
10518 2017-08-24 Steven Munroe <munroesj@gcc.gnu.org>
10520 * config/rs6000/mm_malloc.h: New file.
10522 2017-08-24 Bin Cheng <bin.cheng@arm.com>
10524 PR tree-optimization/81913
10525 * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
10526 analysis when either IVs in condition can wrap.
10528 2017-08-24 Uros Bizjak <ubizjak@gmail.com>
10530 * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
10531 * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
10533 2017-08-24 Richard Biener <rguenther@suse.de>
10536 * targhooks.c (default_target_can_inline_p): Properly
10537 use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
10538 is present and always compare.
10539 * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
10540 infer -mfpmath=sse from TARGET_SSE_P.
10541 (ix86_can_inline_p): Properly use target_option_default_node when
10542 no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
10544 2017-08-24 Richard Biener <rguenther@suse.de>
10547 * dwarf2out.c (output_die): Handle flag_generate_offload like
10549 (output_comp_unit): Likewise.
10550 (gen_array_type_die): Likewise.
10551 (dwarf2out_early_finish): Likewise.
10552 (note_variable_value_in_expr): Likewise.
10553 (dwarf2out_finish): Likewise. Adjust assert.
10554 * cgraphunit.c (symbol_table::compile): Move setting of
10555 flag_generate_offload earlier ...
10556 (symbol_table::finalize_compilation_unit): ... here, before
10557 early debug finalization.
10559 2017-08-24 Richard Biener <rguenther@suse.de>
10561 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
10562 and ipa-fnsummary.h.
10563 (ix86_can_inline_p): When ix86_fpmath flags do not match
10564 check whether the callee uses FP math at all.
10566 2017-08-24 Aldy Hernandez <aldyh@redhat.com>
10568 PR middle-end/81931
10569 * tree-ssanames.c (get_nonzero_bits): Use element_precision
10570 instead of TYPE_PRECISION.
10572 2017-08-24 Richard Sandiford <richard.sandiford@linaro.org>
10573 Alan Hayward <alan.hayward@arm.com>
10574 David Sherwood <david.sherwood@arm.com>
10576 * combine.c (make_extraction): Use subreg_offset_from_lsb.
10578 2017-08-23 Daniel Santos <daniel.santos@pobox.com>
10580 * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
10582 (ix86_frame::stack_realign_allocate): New field.
10583 (struct machine_frame_state): Modify comments.
10584 (machine_frame_state::sp_realigned_fp_end): New field.
10585 * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
10586 layout calculation.
10587 (sp_valid_at): Add assertion to assure no attempt to access invalid
10588 offset of a realigned stack.
10589 (fp_valid_at): Likewise.
10590 (choose_baseaddr): Modify comments.
10591 (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
10592 ix86_expand_prologue.
10593 (ix86_expand_prologue): Modify stack realignment and allocation.
10594 (ix86_expand_epilogue): Modify comments.
10595 * doc/sourcebuild.texi: Add documentation for target selectors avx2,
10596 avx2_runtime, avx512f, and avx512f_runtime.
10598 2017-08-23 Uros Bizjak <ubizjak@gmail.com>
10600 * config/i386/i386.opt: Remove unneeded Init(0) initializations.
10601 (mstackrealign): Do not init to -1.
10602 * config/i386/i386.c (ix86_option_override_internal):
10603 Check opts_set, not opts when setting default value of
10604 opts->x_ix86_force_align_arg_pointer.
10606 2017-08-23 Richard Biener <rguenther@suse.de>
10608 * function.c (fndecl_name): Use verbosity 1 (no arguments) for
10609 lang_hooks.decl_printable_name.
10610 * print-rtl-function.c (print_rtx_function): Likewise.
10611 * tree-pretty-print.c (dump_function_header): Likewise.
10613 2017-08-23 Richard Biener <rguenther@suse.de>
10616 * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
10617 -g0 at compile-time.
10619 2017-08-23 Tamar Christina <tamar.christina@arm.com>
10621 PR middle-end/19706
10622 * doc/sourcebuild.texi (Other hardware attributes):
10625 2017-08-23 Tamar Christina <tamar.christina@arm.com>
10627 PR middle-end/19706
10628 * tree-ssa-math-opts.c (convert_expand_mult_copysign):
10629 Fix single-use check.
10631 2017-08-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
10633 * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
10635 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
10637 * doc/install.texi: Modify to add more details on running selected
10640 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
10642 * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
10643 is combined with -mabi=ms.
10644 (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
10647 2017-08-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10649 PR tree-optimization/81488
10650 * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
10651 and cached_basis fields.
10652 (MAX_SPREAD): New constant.
10653 (alloc_cand_and_find_basis): Initialize new fields.
10654 (clear_visited): New function.
10655 (create_phi_basis_1): Rename from create_phi_basis, set visited
10656 and cached_basis fields.
10657 (create_phi_basis): New wrapper function.
10658 (phi_add_costs_1): Rename from phi_add_costs, add spread
10659 parameter, set visited field, short-circuit when limits reached.
10660 (phi_add_costs): New wrapper function.
10661 (record_phi_increments_1): Rename from record_phi_increments, set
10663 (record_phi_increments): New wrapper function.
10664 (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
10665 (phi_incr_cost): New wrapper function.
10666 (all_phi_incrs_profitable_1): Rename from
10667 all_phi_incrs_profitable, set visited field.
10668 (all_phi_incrs_profitable): New wrapper function.
10670 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
10671 Alan Hayward <alan.hayward@arm.com>
10672 David Sherwood <david.sherwood@arm.com>
10674 * rtl.h (paradoxical_subreg_p): Define inline, and add a version
10675 that takes the outer and inner modes.
10676 * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
10677 comparison as the canonical test for a paradoxical subreg.
10678 * combine.c (simplify_set): Use paradoxical_subreg_p.
10679 (make_extraction): Likewise.
10680 (force_to_mode): Likewise.
10681 (rtx_equal_for_field_assignment_p): Likewise.
10682 (gen_lowpart_for_combine): Likewise.
10683 (simplify_comparison): Likewise.
10684 * cse.c (equiv_constant): Likewise.
10685 * expmed.c (store_bit_field_1): Likewise.
10686 * final.c (alter_subreg): Likewise.
10687 * fwprop.c (propagate_rtx): Likewise.
10688 (forward_propagate_subreg): Likewise.
10689 * ira-conflicts.c (ira_build_conflicts): Likewise.
10690 * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
10691 * lra-constraints.c (curr_insn_transform): Likewise.
10692 (split_reg): Likewise.
10693 * lra-eliminations.c (move_plus_up): Likewise.
10694 (lra_eliminate_regs_1): Likewise.
10695 * recog.c (general_operand): Likewise.
10696 * ree.c (combine_reaching_defs): Likewise.
10697 * reload.c (push_reload): Likewise.
10698 (find_reloads): Likewise.
10699 * reload1.c (elimination_effects): Likewise.
10700 (compute_reload_subreg_offset): Likewise.
10701 (choose_reload_regs): Likewise.
10702 * rtlanal.c (subreg_lsb_1): Likewise.
10703 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10704 (simplify_subreg): Likewise.
10705 * var-tracking.c (track_loc_p): Likewise.
10706 * emit-rtl.c (byte_lowpart_offset): Likewise.
10707 (paradoxical_subreg_p): Delete out-of-line definition.
10709 2017-08-22 Jeff Law <law@redhat.com>
10711 PR tree-optimization/81741
10712 PR tree-optimization/71947
10713 * tree-ssa-dom.c: Include tree-inline.h.
10714 (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
10715 equivalences if one is more expensive to compute than the other.
10716 * tree-ssa-scopedtables.h (class const_or_copies): Make
10717 record_const_or_copy_raw method private.
10718 (class avail_exprs_stack): New method simplify_binary_operation.
10719 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
10720 avail_exprs_stack::simplify_binary_operation as needed.
10721 (avail_exprs_stack::simplify_binary_operation): New function.
10723 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
10725 * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
10726 * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
10727 (DOT_SYMBOLS): Likewise.
10728 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
10729 (RELOCATABLE_NEEDS_FIXUP): Likewise.
10730 (RS6000_ABI_NAME): Likewise.
10731 (TARGET_CMODEL): Likewise.
10732 (TOC_SECTION_ASM_OP): Likewise.
10733 (SET_CMODEL): New macro.
10734 (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
10736 2017-08-22 Richard Biener <rguenther@suse.de>
10738 * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
10739 to allow for free-lang-data replacements similar to verify_type_variant.
10741 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
10742 Alan Hayward <alan.hayward@arm.com>
10743 David Sherwood <david.sherwood@arm.com>
10745 * config/aarch64/aarch64.md (casesi): Use DImode rather than
10746 VOIDmode for the LABEL_REF.
10748 2017-08-22 Richard Biener <rguenther@suse.de>
10750 * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
10752 2017-08-22 Richard Biener <rguenther@suse.de>
10754 * common.opt (feliminate-dwarf2-dups): Ignore.
10755 * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
10756 * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
10757 same_die_p_wrap, compute_section_prefix,
10758 is_symbol_die, assign_symbol_names, break_out_includes): Remove.
10759 (comdat_symbol_id, comdat_symbol_number): Likewise.
10760 (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
10762 (check_duplicate_cu, record_comdat_symbol_number): Likewise.
10763 (output_die): Mark unreachable path unreachable.
10764 (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
10765 (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
10766 (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
10767 (dwarf2out_early_finish): Likewise.
10769 2017-08-22 Aldy Hernandez <aldyh@redhat.com>
10771 * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
10773 2017-08-22 Georg-Johann Lay <avr@gjlay.de>
10776 * config/avr/avr.c (avr_handle_addr_attribute): Early return if
10777 not VAR_P. Filter attribute warnings with OPT_Wattributes.
10778 (avr_attribute_table) <io, io_low, address>: Initialize
10779 .decl_required with true.
10781 2017-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10783 * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
10784 undocumented debugging options.
10785 (-mvsx-scalar-double): Likewise.
10786 (-mallow-df-permute): Likewise.
10787 (-mvectorize-builtins): Likewise.
10788 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
10789 (rs6000_builtin_vectorized_function): Likewise.
10790 (rs6000_builtin_md_vectorized_function): Likewise.
10791 (rs6000_opt_vars): Likewise.
10793 2017-08-21 Uros Bizjak <ubizjak@gmail.com>
10796 * config/i386/i386.md (*btsq_imm): Rename from *btsq.
10797 (*btrq_imm): Rename from *btrq.
10798 (*btcq_imm): Rename from *btcq.
10799 (btsc): New code attribute.
10800 (*<btsc><mode>): New insn pattern.
10801 (*btr<mode>): Ditto.
10802 (*<btsc><mode>_mask): New insn_and_split pattern.
10803 (*btr<mode>_mask): Ditto.
10805 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10806 Alan Hayward <alan.hayward@arm.com>
10807 David Sherwood <david.sherwood@arm.com>
10809 * function.c (pad_below): Simplify padding calculation.
10811 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10812 Alan Hayward <alan.hayward@arm.com>
10813 David Sherwood <david.sherwood@arm.com>
10815 * target.def (function_prologue): Remove frame size argument.
10816 (function_epilogue): Likewise.
10817 * doc/tm.texi: Regenerate.
10818 * final.c (final_start_function): Update call to function_prologue.
10819 (final_end_function): Update call to function_epilogue.
10820 (default_function_pro_epilogue): Remove frame size argument.
10821 * output.h (default_function_pro_epilogue): Likewise.
10822 * config/arm/arm.c (arm_output_function_epilogue): Likewise.
10823 (arm_output_function_prologue): Likewise.
10824 * config/frv/frv.c (frv_function_prologue): Likewise.
10825 (frv_function_epilogue): Likewise.
10826 * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
10827 * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
10828 (ia64_output_function_epilogue): Likewise.
10829 * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
10830 (m32r_output_function_epilogue): Likewise.
10831 * config/microblaze/microblaze.c (microblaze_function_prologue)
10832 (microblaze_function_epilogue): Likewise.
10833 * config/mips/mips.c (mips_output_function_prologue): Likewise.
10834 (mips_output_function_epilogue): Likewise.
10835 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
10836 (mmix_target_asm_function_epilogue): Likewise.
10837 * config/msp430/msp430.c (msp430_start_function): Likewise.
10838 * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
10839 (nds32_asm_function_epilogue): Likewise.
10840 * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
10841 * config/pa/pa.c (pa_output_function_prologue): Likewise.
10842 (pa_output_function_epilogue): Likewise.
10843 * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
10844 (rs6000_output_function_epilogue): Likewise.
10845 * config/rl78/rl78.c (rl78_start_function): Likewise.
10846 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
10847 (rs6000_output_function_epilogue): Likewise.
10848 * config/rx/rx.c (rx_output_function_prologue): Likewise.
10849 * config/sh/sh.c (sh_output_function_epilogue): Likewise.
10850 * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
10851 (sparc_asm_function_epilogue): Likewise.
10853 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10855 * tree.h (type_has_mode_precision_p): New function.
10856 * convert.c (convert_to_integer_1): Use it.
10857 * expr.c (expand_expr_real_2): Likewise.
10858 (expand_expr_real_1): Likewise.
10859 * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
10860 * match.pd: Likewise.
10861 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
10862 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
10863 * tree-tailcall.c (process_assignment): Likewise.
10864 * tree-vect-loop.c (vectorizable_reduction): Likewise.
10865 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
10866 (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
10867 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
10868 (vectorizable_assignment): Likewise.
10869 (vectorizable_shift): Likewise.
10870 (vectorizable_operation): Likewise.
10871 * tree-vrp.c (register_edge_assert_for_2): Likewise.
10873 2017-08-21 Wilco Dijkstra <wdijkstr@arm.com>
10875 * match.pd: Add pow (C, x) simplification.
10877 2017-08-21 Richard Biener <rguenther@suse.de>
10879 PR tree-optimization/81900
10880 * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
10881 for blocks with abnormal predecessors.
10882 (compute_antic): Do not set visited flag prematurely.
10884 2017-08-21 Georg-Johann Lay <avr@gjlay.de>
10887 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
10889 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
10891 * stor-layout.h (vector_type_mode): Move to...
10892 * tree.h (vector_type_mode): ...here.
10893 * stor-layout.c (vector_type_mode): Move to...
10894 * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h.
10896 2017-08-21 Richard Biener <rguenther@suse.de>
10898 * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
10899 register_external_die hooks.
10900 (debug_false_tree_charstarstar_uhwistar): Declare.
10901 (debug_nothing_tree_charstar_uhwi): Likewise.
10902 * debug.c (do_nothing_debug_hooks): Adjust.
10903 (debug_false_tree_charstarstar_uhwistar): New do nothing.
10904 (debug_nothing_tree_charstar_uhwi): Likewise.
10905 * dbxout.c (dbx_debug_hooks): Adjust.
10906 (xcoff_debug_hooks): Likewise.
10907 * sdbout.c (sdb_debug_hooks): Likewise.
10908 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10909 * dwarf2out.c (macinfo_label_base): New global.
10910 (dwarf2out_register_external_die): New function for the
10911 register_external_die hook.
10912 (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
10913 (dwarf2_debug_hooks): Use them.
10914 (dwarf2_lineno_debug_hooks): Adjust.
10915 (struct die_struct): Add with_offset flag.
10916 (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
10917 DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
10918 DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
10919 DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
10920 DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
10921 DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
10922 defining section names for the early LTO debug variants.
10923 (reset_indirect_string): New helper.
10924 (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
10925 (print_dw_val): Add support for offsetted symbol references.
10926 (get_ultimate_context): Split out from is_cxx.
10927 (is_cxx): Use get_ultimate_context.
10928 (is_fortran): Add decl overload.
10929 (compute_comp_unit_symbol): Split out worker from
10930 compute_section_prefix.
10931 (compute_section_prefix): Call compute_comp_unit_symbol and
10932 set comdat_type_p here.
10933 (output_die): Skip DIE symbol output for the LTO added one.
10934 Handle DIE symbol references with offset.
10935 (output_comp_unit): Guard section name mangling properly.
10936 For LTO debug sections emit a symbol at the section beginning
10937 which we use to refer to its DIEs.
10938 (add_abstract_origin_attribute): For DIEs registered via
10939 dwarf2out_register_external_die directly refer to the early
10940 DIE rather than indirectly through the shadow one we created.
10941 Remove obsolete call to dwarf2out_abstract_function for
10942 non-function/block origins.
10943 (gen_array_type_die): When generating early LTO debug do
10944 not emit DW_AT_string_length.
10945 (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
10946 late when in LTO. As suggested place a gcc_unreachable for
10947 the DECL_ABSTRACT_P case.
10948 (gen_subprogram_die): Avoid another specification DIE
10949 for early built declarations/definitions for the late LTO case.
10950 (gen_variable_die): Add type references for late duplicated VLA dies
10952 (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
10953 we have the abstract instance already.
10954 (process_scope_var): Adjust decl DIE contexts in LTO which
10955 first puts them in limbo.
10956 (gen_decl_die): Do not generate type DIEs late apart from
10957 types for VLAs or for decls we do not yet have a DIE. Do not
10958 call dwarf2out_abstract_function late.
10959 (dwarf2out_early_global_decl): Make sure to create DIEs
10960 for abstract instances of a decl first.
10961 (dwarf2out_late_global_decl): Adjust comment.
10962 (output_macinfo_op): With multiple macro sections use
10963 macinfo_label_base to distinguish labels.
10964 (output_macinfo): Likewise. Update macinfo_label_base.
10965 Pass in the line info label.
10966 (note_variable_value_in_expr): When generating LTO resolve
10967 all variable values here by generating DIEs as needed.
10968 (init_sections_and_labels): Add early LTO debug flag parameter
10969 and generate different sections and names if set. Add generation
10970 counter for the labels so we can have multiple of them.
10971 (reset_dies): Helper to allow DIEs to be output multiple times.
10972 (dwarf2out_finish): When outputting DIEs to the fat part of an
10973 LTO object first reset DIEs.
10974 (dwarf2out_early_finish): Output early DIEs when generating LTO.
10975 (modified_type_die): Check for decl_ultimate_origin being self
10977 (gen_type_die_with_usage): Likewise.
10978 (gen_typedef_die): Allow decl_ultimate_origin being self.
10979 (set_decl_abstract_flags): Remove.
10980 (set_block_abstract_flags): Likewise.
10981 (dwarf2out_abstract_function): Treat the early generated DIEs
10982 as the abstract copy and only add DW_AT_inline and
10983 DW_AT_artificial here and call set_decl_origin_self.
10984 If the DIE has an abstract origin don't do anything.
10985 * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
10986 if we have none yet (Go fails to build one, PR78628).
10987 (variably_modified_type_p): Prevent endless recursion for Ada
10988 cyclic pointer types.
10989 * lto-streamer-in.c: Include debug.h.
10990 (dref_queue): New global.
10991 (lto_read_tree_1): Stream in DIE references.
10992 (lto_input_tree): Register DIE references.
10993 (input_function): Stream DECL_DEBUG_ARGS.
10994 * lto-streamer-out.c: Include debug.h.
10995 (lto_write_tree_1): Output DIE references.
10996 (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
10997 Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
10998 (output_function): Stream DECL_DEBUG_ARGS.
10999 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11000 Stream DECL_ABSTRACT_ORIGIN.
11001 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
11002 (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
11003 DECL_CONTEXT for file-scope decls.
11004 * lto-streamer.h (struct dref_entry): Declare.
11005 (dref_queue): Likewise.
11006 * cfgexpand.c (pass_expand::execute): Do not call the
11007 outlining_inline_function hook here.
11008 * lto-wrapper.c (debug_obj): New global.
11009 (tool_cleanup): Unlink it if required.
11010 (debug_objcopy): New function.
11011 (run_gcc): Handle early debug sections in the IL files by
11012 extracting them to separate files, partially linkin them and
11013 feeding the result back as result to the linker.
11014 * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
11015 DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
11016 DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
11017 sections into a separate segment.
11018 * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
11020 (darwin_asm_dwarf_section): Likewise.
11021 (darwin_asm_output_dwarf_offset): Likewise.
11022 * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
11024 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
11025 Alan Hayward <alan.hayward@arm.com>
11026 David Sherwood <david.sherwood@arm.com>
11028 * read-md.h (md_reader::record_potential_iterator_use): Replace
11029 pointer argument with an rtx and an index.
11030 * read-rtl.c (iterator_group::apply_iterator): Likewise.
11031 (apply_mode_iterator): Likewise.
11032 (apply_code_iterator): Likewise.
11033 (apply_int_iterator): Likewise.
11034 (apply_subst_iterator): Likewise.
11035 (record_iterator_use): Likewise.
11036 (record_attribute_use): Likewise.
11037 (md_reader::record_potential_iterator_use): Likewise. Update calls
11038 to record_iterator_use and apply_iterator.
11039 (iterator_use): Replace ptr with x and index.
11040 (attribute_use): Likewise.
11041 (apply_attribute_uses): Update calls to apply_iterator.
11042 (apply_iterators): Likewise. Update initialization of iterator_use.
11043 (rtx_reader::read_rtx_code): Update calls to record_iterator_use
11044 and record_potential_iterator_use.
11045 (rtx_reader::read_rtx_operand): Likewise.
11047 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
11048 Alan Hayward <alan.hayward@arm.com>
11049 David Sherwood <david.sherwood@arm.com>
11051 * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
11054 2017-08-21 Richard Biener <rguenther@suse.de>
11056 PR middle-end/81884
11057 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
11058 at struct end conservatively when comparing common bases.
11060 2017-08-21 Richard Biener <rguenther@suse.de>
11062 * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
11063 (mem_ref_in_stmt): Remove.
11064 (determine_max_movement): Use ref index to get at the reference.
11065 (invariantness_dom_walker::before_dom_children): Deal with
11066 lim data already initialized.
11067 (gather_mem_refs_stmt): Initialize lim data and record ref index.
11069 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
11071 * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
11072 (TARGET_ISA_ROUND): Ditto.
11073 (TARGET_ROUND): Ditto.
11074 * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
11075 * config/i386/i386.md: Ditto.
11076 * config/i386/sse.md: Ditto.
11077 * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
11078 with OPTION_MASK_ISA_SSE4_1.
11080 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
11083 * doc/extend.texi (x86 Built-in Functions): Correct the name of
11084 __builtin_ia32_lzcnt_u16.
11086 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
11089 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
11090 (rs6000_set_current_function): Rewrite function to use it.
11092 2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
11095 * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
11096 and TYPE_WARN_IF_NOT_ALIGN.
11097 * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
11098 (handle_warn_if_not_align): New.
11099 (place_union_field): Call handle_warn_if_not_align.
11100 (place_field): Call handle_warn_if_not_align.
11101 Copy TYPE_WARN_IF_NOT_ALIGN.
11102 (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
11103 (layout_type): Likewise.
11104 * tree-core.h (tree_type_common): Add warn_if_not_align. Set
11106 (tree_decl_common): Add warn_if_not_align.
11107 * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
11108 * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
11109 (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
11110 (DECL_WARN_IF_NOT_ALIGN): Likewise.
11111 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
11112 * doc/extend.texi: Document warn_if_not_aligned attribute.
11113 * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
11115 2017-08-17 Martin Liska <mliska@suse.cz>
11118 * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
11119 (get_data_dependence): Use it as pointer type.
11120 (distribute_loop): Likewise.
11122 2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11124 * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
11125 (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
11126 (p8_vmrgow_<mode>_direct): New define_insn.
11127 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
11128 handle endianness for vmrgew and vmrgow permute patterns.
11130 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
11132 * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
11133 * config/rs6000/rs6000-cpus.def: Remove comment.
11134 (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
11135 (POWERPC_MASKS): Likewise.
11136 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
11137 use of TARGET_VSX_TIMODE.
11138 (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
11139 (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
11140 TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX.
11141 (rs6000_option_override_internal): Remove dead code.
11142 (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
11143 (rs6000_legitimize_reload_address): Likewise.
11144 (rs6000_legitimate_address_p): Likewise.
11145 (rs6000_opt_masks): Delete "vsx-timode".
11146 (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
11147 from function comment.
11148 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
11149 * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
11150 (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
11152 * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
11153 * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
11154 * config/rs6000/vsx.md (VSX_LE_128): Likewise.
11155 (VSX_TI): Likewise.
11157 (define_peephole2): Likewise.
11159 2017-08-17 Martin Sebor <msebor@redhat.com>
11162 * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
11163 past the end of an array.
11164 (test_pp_format): Add test cases.
11166 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org>
11168 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
11169 missing ECF_NOTHROW flags.
11171 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
11174 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
11175 operands residing in integer registers.
11176 (*vsx_le_perm_load_<mode>): Likewise.
11177 (*vsx_le_perm_store_<mode>): Likewise.
11178 (define_peephole2): Add peepholes to optimize the above.
11180 2017-08-17 Marek Polacek <polacek@redhat.com>
11182 PR middle-end/81814
11183 * fold-const.c (operand_equal_for_comparison_p): Remove code that used
11184 to mimic what shorten_compare did. Change the return type to bool.
11185 (fold_cond_expr_with_comparison): Update call to
11186 operand_equal_for_comparison_p.
11187 (fold_ternary_loc): Likewise.
11189 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com>
11191 * aarch64-simd.md (mov<mode>): No longer force zero immediate into
11193 (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
11195 2017-08-17 Richard Biener <rguenther@suse.de>
11197 * tree-ssa-structalias.c (solve_graph): When propagating
11198 to successors update the graphs succ edges and avoid duplicate work.
11200 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com>
11203 * config/i386/i386.c (ix86_option_override_internal): Save target
11204 specific options after ix86_stack_protector_guard_reg was changed.
11206 2017-08-17 Richard Biener <rguenther@suse.de>
11208 PR tree-optimization/81827
11209 * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
11210 (new_var_info): Initialize it conservatively.
11211 (get_call_vi): Mark register vars.
11212 (new_scalar_tmp_constraint_exp): Likewise.
11213 (handle_rhs_call): Likewise.
11214 (handle_const_call): Likewise.
11215 (create_function_info_for): Likewise.
11216 (solve_constraints): Sort varinfos to separate register from
11217 non-register vars to pack points-to solution bitmaps during
11220 2017-08-17 Marek Polacek <polacek@redhat.com>
11222 * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
11224 2017-08-17 Richard Biener <rguenther@suse.de>
11226 * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
11227 to true when overflow is undefined and we saturated the result.
11229 2017-08-17 Alan Modra <amodra@gmail.com>
11232 * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
11233 Don't use store multiple if only one reg needs saving.
11234 (interesting_frame_related_regno): New function.
11235 (rs6000_frame_related): Don't emit frame info for regs that
11237 (rs6000_emit_epilogue): Likewise.
11239 2017-08-16 Nathan Sidwell <nathan@acm.org>
11241 * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
11242 * tree.h (TYPE_BINFO): Use type_non_common.maxval.
11243 (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
11244 * tree.c (free_lang_data_in_type): Use else-if chain. Always
11245 clear TYPE_LANG_1. Remove obsolete member-function stripping.
11246 (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
11247 (verify_type): Adjust for TYPE_BINFO move.
11248 * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
11249 process TYPE_BINFO directly.
11250 (hash_tree): Likewise.
11251 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
11253 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
11256 2017-08-16 David Malcolm <dmalcolm@redhat.com>
11258 * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
11260 2017-08-16 Uros Bizjak <ubizjak@gmail.com>
11263 * config/i386/i386.md (*anddi_1_btr): Change predicates of
11264 operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
11265 Add ix86_binary_operator_ok to insn constraint.
11266 (*iordi_1_bts): Ditto.
11267 (*xordi_1_btc): Ditto.
11268 (*btsq): Change predicate of operand 0 to nonimmediate_operand.
11269 Update corresponding peephole2 pattern.
11273 2017-08-16 Bin Cheng <bin.cheng@arm.com>
11275 PR tree-optimization/81832
11276 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
11277 copy loop header which has IFN_LOOP_DIST_ALIAS call.
11279 2017-08-16 Marek Polacek <polacek@redhat.com>
11282 * fold-const.c (fold_indirect_ref_1): Restore original behavior
11283 regarding size_zero_node.
11285 2017-08-16 Martin Liska <mliska@suse.cz>
11288 * config.gcc: Respect previously set extra_objs in case
11291 2017-08-16 Richard Sandiford <richard.sandiford@linaro.org>
11293 PR tree-optimization/81835
11294 * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
11295 the phi SSA_NAME. Check that the condition in a COND_EXPR does
11296 not depend on the phi.
11298 2017-08-16 Alan Modra <amodra@gmail.com>
11300 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
11303 2017-08-16 Alan Modra <amodra@gmail.com>
11305 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
11306 (save_reg_p): ..into this. Update all callers.
11307 (first_reg_to_save): Simplify.
11309 2017-08-16 Alan Modra <amodra@gmail.com>
11311 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
11314 2017-08-15 Joseph Myers <joseph@codesourcery.com>
11318 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
11319 constant count if that count is less than 32.
11321 2017-08-15 Nathan Sidwell <nathan@acm.org>
11323 * gcc.c (execute): Emit friendlier message if inferior is killed
11324 by an external cause.
11326 2017-08-15 Richard Biener <rguenther@suse.de>
11328 PR tree-optimization/81790
11329 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
11330 CONSTRUCTORs from simplifying and VN.
11332 2017-08-14 Martin Sebor <msebor@redhat.com>
11334 * builtin-attrs.def: Add comments.
11336 2017-08-14 Martin Sebor <msebor@redhat.com>
11339 * doc/extend.texi (attribute nonstring): Document new attribute.
11341 2017-08-14 Martin Sebor <msebor@redhat.com>
11344 * tree-diagnostic.c (default_tree_printer): Handle %G.
11345 * gimple-pretty-print.h (percent_G_format): Declare new function.
11346 * gimple-pretty-print.c (percent_G_format): Define.
11347 * tree-pretty-print.c (percent_K_format): Add argument.
11349 2017-08-14 Martin Sebor <msebor@redhat.com>
11351 PR translation/79998
11352 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
11353 Remove a stray space.
11355 2017-08-14 Uros Bizjak <ubizjak@gmail.com>
11358 * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
11359 (*iordi_1_bts): Ditto.
11360 (*xordi_1_btc): Ditto.
11362 2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11365 * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
11366 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11368 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
11369 quoted strings, and make more translator-friendly.
11370 (darwin_rs6000_override_options): Likewise.
11371 (rs6000_option_override_internal): Likewise.
11372 (rs6000_return_in_memory): Fix overlong line.
11373 (init_cmulative_args): Use quoted strings, and make more
11374 translator-friendly.
11375 (rs6000_pass_by_reference): Fix overlong line.
11376 (def_builtin): Use quoted strings.
11377 (altivec_expand_predicate_builtin): Use quoted strings, and make
11378 more translator-friendly.
11379 (htm_expand_builtin): Use quoted strings.
11380 (cpu_expand_builtin): Use quoted strings, and make more
11381 translator-friendly.
11382 (altivec_expand_builtin): Likewise.
11383 (paired_expand_predicate_builtin): Likewise.
11384 (rs6000_invalid_builtin): Likewise.
11385 (builtin_function_type): Use quoted strings.
11386 (rs6000_expand_split_stack_prologue): Use quoted strings, and make
11387 more translator-friendly.
11388 (rs6000_trampoline_init): Likewise.
11389 (rs6000_handle_altivec_attribute): Likewise.
11390 (rs6000_inner_target_options): Use quoted strings.
11391 (rs6000_disable_incompatible_switches): Likewise.
11392 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
11393 strings, and make more translator-friendly.
11394 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
11396 2017-08-14 Bin Cheng <bin.cheng@arm.com>
11398 PR tree-optimization/81799
11399 * tree-loop-distribution.c (version_loop_by_alias_check): Force
11400 cond_expr to simple gimple operand.
11402 2017-08-14 Wilco Dijkstra <wdijkstr@arm.com>
11404 PR middle-end/46932
11405 * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
11407 2017-08-14 Georg-Johann Lay <avr@gjlay.de>
11411 * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
11412 * config/avr/avr.md (gasisr, *gasisr): Use it instead of
11413 TARGET_GASISR_PROLOGUES.
11414 * config/avr/avr.c (avr_option_override): Same.
11415 (avr_pass_pre_proep::execute): Same.
11417 2017-08-13 H.J. Lu <hongjiu.lu@intel.com>
11420 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
11421 frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
11423 2017-08-13 Uros Bizjak <ubizjak@gmail.com>
11425 * config/i386/i386.md (*load_tp_<mode>): Redefine as
11426 define_insn_and_split. Split to a memory load from 0 in
11427 DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32
11428 using PTR mode iterator.
11429 (*load_tp_x32_zext"): Redefine as define_insn_and_split.
11430 Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
11431 (*add_tp_<mode>): Redefine as define_insn_and_split.
11432 Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
11433 address space. Merge with *add_tp_x32 using PTR mode iterator.
11434 (*add_tp_x32_zext"): Redefine as define_insn_and_split.
11435 Split to an add with a memory load from 0 in
11436 DEFAULT_TLS_SEG_REG address space.
11438 2017-08-12 Andrew Pinski <apinski@cavium.com>
11440 * config/aarch64/aarch64-option-extensions.def (rdma):
11441 Fix feature string to what Linux prints out in /proc/cpuinfo.
11443 2017-08-12 Pierre-Marie de Rodat <derodat@adacore.com>
11446 * dwarf2out.c (modified_type_die): For C typedef types that have
11447 an ultimate origin, process the ultimate origin instead of the
11449 (gen_typedef_die): Assert that input DECLs have no ultimate
11451 (gen_type_die_with_usage): For typedef variants that have an
11452 ultimate origin, just call gen_decl_die on the original DECL.
11453 (process_scope_var): Avoid creating DIEs for local typedefs and
11454 concrete static variables.
11456 2017-08-12 Alan Modra <amodra@gmail.com>
11460 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
11461 match gnu-user.h startfile.
11462 (ENDFILE_LINUX_SPEC): Similarly.
11464 2017-08-11 Thomas Schwinge <thomas@codesourcery.com>
11467 * config/nvptx/nvptx.c (nvptx_override_options_after_change):
11469 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
11471 2017-08-11 Tamar Christina <tamar.christina@arm.com>
11472 * config/aarch64/aarch64.md (mov<mode>): Change.
11473 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
11474 aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
11475 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
11477 2017-08-11 Eric Botcazou <ebotcazou@adacore.com>
11479 * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
11480 for storage order barriers.
11482 2017-08-11 Martin Liska <mliska@suse.cz>
11485 * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
11486 variables of void type.
11488 2017-08-11 Martin Liska <mliska@suse.cz>
11490 * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
11491 TARGET_SUPPORTS_ALIASES.
11492 * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
11493 * ipa-visibility.c (can_replace_by_local_alias): Likewise.
11494 (optimize_weakref): Likewise.
11495 * symtab.c (symtab_node::noninterposable_alias): Likewise.
11496 * varpool.c (varpool_node::create_extra_name_alias): Likewise.
11497 * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
11499 2017-08-11 Martin Liska <mliska@suse.cz>
11502 * config/i386/i386.c (make_resolver_func): Do complete
11503 refactoring of the function.
11505 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
11508 * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
11509 * config/i386/i386.c (ix86_stack_protect_guard): Use
11510 ix86_stack_protect_guard_symbol_str to generate varible declaration.
11511 * doc/invoke.texi (x86 Options): Document
11512 -mstack-protector-guard-symbol= option.
11514 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
11516 * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
11517 * config/i386/i386.c (ix86_split_stack_guard): New function.
11518 (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
11519 (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
11520 (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
11521 (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
11522 * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
11523 (split_stack_space_check): Call ix86_split_stack_guard.
11525 2017-08-10 Martin Sebor <msebor@redhat.com>
11527 * print-tree.c (print_node): Print location using the established
11529 Replace spaces with colons.
11530 (debug_raw, debug): Ditto.
11532 2017-08-10 Martin Sebor <msebor@redhat.com>
11535 * pretty-print.c (pp_format): Correct the handling of %s precision.
11537 2017-08-10 H.J. Lu <hongjiu.lu@intel.com>
11540 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
11542 (ix86_finalize_stack_frame_flags): This. Also clear
11543 frame_pointer_needed if -fno-omit-frame-pointer is used without
11545 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
11546 with ix86_finalize_stack_frame_flags.
11547 (ix86_expand_epilogue): Likewise.
11548 (ix86_expand_split_stack_prologue): Likewise.
11549 * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
11551 2017-08-10 Martin Liska <mliska@suse.cz>
11554 * c-attribs.c (handle_target_attribute):
11555 Report warning for an empty string argument of target attribute.
11557 2017-08-09 Jakub Jelinek <jakub@redhat.com>
11560 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
11562 * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
11563 or DECL_NONLOCAL labels.
11564 (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
11565 or DECL_NONLOCAL labels here.
11567 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com>
11569 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
11570 to indicate when early gimple folding has been disabled.
11571 (rs6000_gimple_fold_builtin): Add debug content.
11572 (rs6000_invalid_builtin): Fix whitespace.
11573 (rs6000_expand_builtin): Fix whitespace.
11574 * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
11576 2017-08-09 Segher Boessenkool <segher@kernel.crashing.org>
11579 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
11580 SAVE_MULTIPLE if not all the registers that saves, should be saved.
11582 2017-08-09 Jim Wilson <jim.wilson@linaro.org>
11584 * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
11585 (qdf24xx): Likewise.
11586 * config/aarch64/aarch64.md: Include falkor.md.
11587 * config/aarch64/falkor.md: New.
11589 2017-08-09 Marek Polacek <polacek@redhat.com>
11592 * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
11593 * diagnostic.c (emit_diagnostic): Add a comment.
11594 (emit_diagnostic_valist): New function.
11596 2017-08-09 Marek Polacek <polacek@redhat.com>
11599 * input.c (make_location): New overload.
11600 * input.h (make_location): Declare.
11602 2017-08-08 Alan Modra <amodra@gmail.com>
11603 H.J. Lu <hongjiu.lu@intel.com>
11606 * gcc.c (NO_PIE_SPEC): Delete.
11607 (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r
11609 (LINK_PIE_SPEC): ..to here.
11610 (LINK_COMMAND_SPEC): Support -no-pie.
11611 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
11612 chain of crtbegin*.o selection, update for PIE_SPEC changes and
11614 (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
11615 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
11616 (ENDFILE_CRTEND_SPEC): Similarly.
11618 2017-08-08 Uros Bizjak <ubizjak@gmail.com>
11621 * config/i386/i386.opt (mstack-protector-guard-reg=): New option
11622 (mstack-protector-guard-offset=): Ditto.
11623 * config/i386/i386.c (ix86_option_override): Handle
11624 -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
11626 (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
11627 ix86_stack_protect_guard_offset variables.
11628 (TARGET_STACK_PROTECT_GUARD): Always define.
11629 * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
11630 and -mstack-protector-guard-offset= options.
11632 2017-08-08 Bin Cheng <bin.cheng@arm.com>
11634 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
11635 boundary case for the last candidate.
11637 2017-08-08 Bin Cheng <bin.cheng@arm.com>
11639 * doc/invoke.texi: Document -ftree-loop-distribution for O3.
11640 * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
11642 2017-08-08 Tamar Christina <tamar.christina@arm.com>
11644 PR middle-end/19706
11645 * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
11646 * config/aarch64/aarch64-builtins.c
11647 (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
11648 * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
11649 * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
11651 2017-08-08 Tamar Christina <tamar.christina@arm.com>
11652 Andrew Pinski <pinskia@gmail.com>
11654 PR middle-end/19706
11655 * internal-fn.def (XORSIGN): New.
11656 * optabs.def (xorsign_optab): New.
11657 * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
11658 (convert_expand_mult_copysign): New.
11659 (pass_optimize_widening_mul::execute): Call
11660 convert_expand_mult_copysign.
11662 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11664 PR tree-optimization/81354
11665 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
11666 Insert on edges rather than explicitly creating landing pads.
11667 (analyze_candidates_and_replace): Commit edge inserts.
11669 2017-08-08 Richard Biener <rguenther@suse.de>
11671 PR middle-end/81719
11672 * tree-ssa-loop-niter.c: Include tree-dfa.h.
11673 (expand_simple_operations): Also look through ADDR_EXPRs with
11674 MEM_REF bases treating them as POINTER_PLUS_EXPR.
11676 2017-08-08 Richard Biener <rguenther@suse.de>
11678 PR tree-optimization/81723
11679 * tree-vect-slp.c (struct bst_traits): New hash traits.
11680 (bst_fail): New global.
11681 (vect_build_slp_tree_2): New worker, split out from ...
11682 (vect_build_slp_tree): ... this now wrapping it with using
11683 bst_fail set to cache SLP tree build fails. Properly handle
11685 (vect_analyze_slp_instance): Allocate and free bst_fail.
11687 2017-08-08 Martin Liska <mliska@suse.cz>
11690 * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
11691 LABEL_DECLs that can be from a different function.
11693 2017-08-08 Bin Cheng <bin.cheng@arm.com>
11695 PR tree-optimization/81744
11696 * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
11697 loop's number of iterations.
11699 2017-08-08 Martin Liska <mliska@suse.cz>
11701 * asan.c: Include header files.
11702 * attribs.c (build_decl_attribute_variant): New function moved
11704 (build_type_attribute_qual_variant): Likewise.
11705 (cmp_attrib_identifiers): Likewise.
11706 (simple_cst_list_equal): Likewise.
11707 (omp_declare_simd_clauses_equal): Likewise.
11708 (attribute_value_equal): Likewise.
11709 (comp_type_attributes): Likewise.
11710 (build_type_attribute_variant): Likewise.
11711 (lookup_ident_attribute): Likewise.
11712 (remove_attribute): Likewise.
11713 (merge_attributes): Likewise.
11714 (merge_type_attributes): Likewise.
11715 (merge_decl_attributes): Likewise.
11716 (merge_dllimport_decl_attributes): Likewise.
11717 (handle_dll_attribute): Likewise.
11718 (attribute_list_equal): Likewise.
11719 (attribute_list_contained): Likewise.
11720 * attribs.h (lookup_attribute): New function moved from tree.[ch].
11721 (lookup_attribute_by_prefix): Likewise.
11722 * bb-reorder.c: Include header files.
11723 * builtins.c: Likewise.
11724 * calls.c: Likewise.
11725 * cfgexpand.c: Likewise.
11726 * cgraph.c: Likewise.
11727 * cgraphunit.c: Likewise.
11728 * convert.c: Likewise.
11729 * dwarf2out.c: Likewise.
11730 * final.c: Likewise.
11731 * fold-const.c: Likewise.
11732 * function.c: Likewise.
11733 * gimple-expr.c: Likewise.
11734 * gimple-fold.c: Likewise.
11735 * gimple-pretty-print.c: Likewise.
11736 * gimple.c: Likewise.
11737 * gimplify.c: Likewise.
11738 * hsa-common.c: Likewise.
11739 * hsa-gen.c: Likewise.
11740 * internal-fn.c: Likewise.
11741 * ipa-chkp.c: Likewise.
11742 * ipa-cp.c: Likewise.
11743 * ipa-devirt.c: Likewise.
11744 * ipa-fnsummary.c: Likewise.
11745 * ipa-inline.c: Likewise.
11746 * ipa-visibility.c: Likewise.
11748 * lto-cgraph.c: Likewise.
11749 * omp-expand.c: Likewise.
11750 * omp-general.c: Likewise.
11751 * omp-low.c: Likewise.
11752 * omp-offload.c: Likewise.
11753 * omp-simd-clone.c: Likewise.
11754 * opts-global.c: Likewise.
11755 * passes.c: Likewise.
11756 * predict.c: Likewise.
11757 * sancov.c: Likewise.
11758 * sanopt.c: Likewise.
11759 * symtab.c: Likewise.
11760 * toplev.c: Likewise.
11761 * trans-mem.c: Likewise.
11762 * tree-chkp.c: Likewise.
11763 * tree-eh.c: Likewise.
11764 * tree-into-ssa.c: Likewise.
11765 * tree-object-size.c: Likewise.
11766 * tree-parloops.c: Likewise.
11767 * tree-profile.c: Likewise.
11768 * tree-ssa-ccp.c: Likewise.
11769 * tree-ssa-live.c: Likewise.
11770 * tree-ssa-loop.c: Likewise.
11771 * tree-ssa-sccvn.c: Likewise.
11772 * tree-ssa-structalias.c: Likewise.
11773 * tree-ssa.c: Likewise.
11774 * tree-streamer-in.c: Likewise.
11775 * tree-vectorizer.c: Likewise.
11776 * tree-vrp.c: Likewise.
11777 * tsan.c: Likewise.
11778 * ubsan.c: Likewise.
11779 * varasm.c: Likewise.
11780 * varpool.c: Likewise.
11781 * tree.c: Remove functions moved to attribs.[ch].
11782 * tree.h: Likewise.
11783 * config/aarch64/aarch64.c: Add attrs.h header file.
11784 * config/alpha/alpha.c: Likewise.
11785 * config/arc/arc.c: Likewise.
11786 * config/arm/arm.c: Likewise.
11787 * config/avr/avr.c: Likewise.
11788 * config/bfin/bfin.c: Likewise.
11789 * config/c6x/c6x.c: Likewise.
11790 * config/cr16/cr16.c: Likewise.
11791 * config/cris/cris.c: Likewise.
11792 * config/darwin.c: Likewise.
11793 * config/epiphany/epiphany.c: Likewise.
11794 * config/fr30/fr30.c: Likewise.
11795 * config/frv/frv.c: Likewise.
11796 * config/ft32/ft32.c: Likewise.
11797 * config/h8300/h8300.c: Likewise.
11798 * config/i386/winnt.c: Likewise.
11799 * config/ia64/ia64.c: Likewise.
11800 * config/iq2000/iq2000.c: Likewise.
11801 * config/lm32/lm32.c: Likewise.
11802 * config/m32c/m32c.c: Likewise.
11803 * config/m32r/m32r.c: Likewise.
11804 * config/m68k/m68k.c: Likewise.
11805 * config/mcore/mcore.c: Likewise.
11806 * config/microblaze/microblaze.c: Likewise.
11807 * config/mips/mips.c: Likewise.
11808 * config/mmix/mmix.c: Likewise.
11809 * config/mn10300/mn10300.c: Likewise.
11810 * config/moxie/moxie.c: Likewise.
11811 * config/msp430/msp430.c: Likewise.
11812 * config/nds32/nds32-isr.c: Likewise.
11813 * config/nds32/nds32.c: Likewise.
11814 * config/nios2/nios2.c: Likewise.
11815 * config/nvptx/nvptx.c: Likewise.
11816 * config/pa/pa.c: Likewise.
11817 * config/pdp11/pdp11.c: Likewise.
11818 * config/powerpcspe/powerpcspe.c: Likewise.
11819 * config/riscv/riscv.c: Likewise.
11820 * config/rl78/rl78.c: Likewise.
11821 * config/rx/rx.c: Likewise.
11822 * config/s390/s390.c: Likewise.
11823 * config/sh/sh.c: Likewise.
11824 * config/sol2.c: Likewise.
11825 * config/sparc/sparc.c: Likewise.
11826 * config/spu/spu.c: Likewise.
11827 * config/stormy16/stormy16.c: Likewise.
11828 * config/tilegx/tilegx.c: Likewise.
11829 * config/tilepro/tilepro.c: Likewise.
11830 * config/v850/v850.c: Likewise.
11831 * config/vax/vax.c: Likewise.
11832 * config/visium/visium.c: Likewise.
11833 * config/xtensa/xtensa.c: Likewise.
11835 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com>
11838 * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
11839 constraints since the -mupper-regs-* switches have been
11841 (vsx_concat_<mode>_1): New combiner insns to recognize inserting
11842 into a vector from a double word element that was extracted from
11843 another vector, and eliminate extra XXPERMDI instructions.
11844 (vsx_concat_<mode>_2): Likewise.
11845 (vsx_concat_<mode>_3): Likewise.
11846 (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
11847 concat to allow optimizing inserts from previous extracts.
11849 2017-08-07 Uros Bizjak <ubizjak@gmail.com>
11851 * config/i386/i386.c (ix86_stack_protect_guard): Generate
11852 memory reference to a SSP offset in TLS address space.
11853 (ix86_print_operand) <case '@'>: Remove.
11854 (ix86_print_operand_punct_valid_p): Remove '@' code.
11855 * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
11856 UNSPEC_SP_TLS_TEST.
11857 (stack_tls_protect_set_<mode>): Remove.
11858 (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
11859 (stack_tls_protect_test_<mode>): Remove.
11860 (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
11862 2017-08-07 Olivier Hainque <hainque@adacore.com>
11865 * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
11867 2017-08-07 Douglas Rupp <rupp@adacore.com>
11869 * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
11870 variable was referenced as multidir in command.
11872 2017-08-07 Jakub Jelinek <jakub@redhat.com>
11875 * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
11878 2017-08-07 Martin Liska <mliska@suse.cz>
11880 * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
11881 * config/rl78/rl78.c: Add include of attribs.h.
11882 * config/sh/sh.c: Likewise.
11883 * config/v850/v850.c: Likewise.
11885 2017-08-07 Tom de Vries <tom@codesourcery.com>
11887 PR middle-end/78266
11888 * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
11890 2017-08-07 Martin Liska <mliska@suse.cz>
11892 * config/mips/mips.c: Include attribs.h.
11894 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
11897 * doc/invoke.texi: Document change in behvaior for -Ofast for
11900 2017-08-07 Wilco Dijkstra <wdijkstr@arm.com>
11902 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
11904 (aarch64_pop_regs): Likewise.
11905 (aarch64_gen_load_pair): Likewise.
11906 (aarch64_save_callee_saves): Likewise.
11907 (aarch64_restore_callee_saves): Likewise.
11909 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
11911 * config/i386/i386.c: Revert the last change.
11913 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
11916 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
11918 (ix86_finalize_stack_frame_flags): This. Also clear
11919 frame_pointer_needed if -fno-omit-frame-pointer is used without
11921 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
11922 with ix86_finalize_stack_frame_flags.
11923 (ix86_expand_epilogue): Likewise.
11924 (ix86_expand_split_stack_prologue): Likewise.
11926 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
11929 * config/i386/i386.c (get_builtin_code_for_version): Set priority
11930 to P_AES for Westmere.
11932 2017-08-07 Jonathan Yong <10walls@gmail.com>
11934 * config/i386/mingw.opt (fset-stack-executable): Removed.
11935 * config/i386/cygming.opt (fset-stack-executable): Moved
11937 * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
11939 2017-08-07 Segher Boessenkool <segher@kernel.crashing.org>
11941 * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
11943 2017-08-07 Marek Polacek <polacek@redhat.com>
11945 PR middle-end/81737
11946 * fold-const.c (fold_indirect_ref_1): Check type_domain.
11948 2017-08-07 Martin Liska <mliska@suse.cz>
11950 * attribs.h (canonicalize_attr_name): New function.
11951 (cmp_attribs): Move from c-format.c and adjusted.
11952 (is_attribute_p): Moved from tree.h.
11953 * tree-inline.c: Add new includes.
11954 * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
11955 (private_is_attribute_p): Remove.
11956 (private_lookup_attribute): Likewise.
11957 (private_lookup_attribute_by_prefix): Simplify.
11958 (remove_attribute): Use is_attribute_p.
11959 * tree.h: Remove removed declarations.
11961 2017-08-07 Jakub Jelinek <jakub@redhat.com>
11963 PR middle-end/81698
11964 * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
11965 instead of computing it in the function. Formatting fix.
11966 (expand_case): Don't rely on default_edge being the first edge,
11967 clear it if removing it, pass default_edge to
11968 emit_case_dispatch_table.
11969 (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
11972 2017-08-06 Uros Bizjak <ubizjak@gmail.com>
11974 * config/alpha/alpha.c (alpha_reorg): If trap is the last active
11975 insn in the function, emit NOP after the insn.
11977 2017-08-06 Tom de Vries <tom@codesourcery.com>
11979 * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
11982 2017-08-06 Tom de Vries <tom@codesourcery.com>
11984 * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
11987 2017-08-04 Yury Gribov <tetra2005@gmail.com>
11989 PR tree-optimization/57371
11990 * match.pd: New pattern.
11992 2017-08-04 Marek Polacek <polacek@redhat.com>
11994 PR middle-end/81695
11995 * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
11996 perform the computation in offset_int.
11998 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
12000 PR tree-optimization/81136
12001 * tree-vectorizer.h: Include tree-hash-traits.h.
12002 (vec_base_alignments): New typedef.
12003 (vec_info): Add a base_alignments field.
12004 (vect_record_base_alignments): Declare.
12005 * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
12007 (DR_IS_CONDITIONAL_IN_STMT): New macro.
12008 (create_data_ref): Add an is_conditional_in_stmt argument.
12009 * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize
12010 the is_conditional_in_stmt field.
12011 (data_ref_loc): Add an is_conditional_in_stmt field.
12012 (get_references_in_stmt): Set the is_conditional_in_stmt field.
12013 (find_data_references_in_stmt): Update call to create_data_ref.
12014 (graphite_find_data_references_in_stmt): Likewise.
12015 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
12016 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
12017 (vect_record_base_alignment): New function.
12018 (vect_record_base_alignments): Likewise.
12019 (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
12020 for nested statements even if we fail to compute a misalignment.
12021 Use pooled base alignments for unconditional references.
12022 (vect_find_same_alignment_drs): Compare base addresses instead
12024 (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
12025 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
12027 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
12029 * tree-vectorizer.h (vec_info): Add a constructor and destructor.
12030 Add an explicit name for the enum. Use auto_vec for slp_instances
12031 and grouped_stores.
12032 (_loop_vec_info): Add a constructor and destructor. Use auto_vec
12034 (_bb_vec_info): Add a constructor and destructor.
12035 (vinfo_for_stmt): Return NULL for uids of -1 as well.
12036 (destroy_loop_vec_info): Delete.
12037 (vect_destroy_datarefs): Likewise.
12038 * tree-vectorizer.c (vect_destroy_datarefs): Delete.
12039 (vec_info::vec_info): New function.
12040 (vec_info::~vec_info): Likewise.
12041 (vectorize_loops): Use delete instead of destroy_loop_vec_info.
12042 * tree-parloops.c (gather_scalar_reductions): Use delete instead of
12043 destroy_loop_vec_info.
12044 * tree-vect-loop.c (new_loop_vec_info): Replace with...
12045 (_loop_vec_info::_loop_vec_info): ...this.
12046 (destroy_loop_vec_info): Replace with...
12047 (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete
12048 the stmt_vec_infos. Leave handling of vec_info information to its
12049 destructor. Remove explicit vector releases.
12050 (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
12051 (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
12052 * tree-vect-slp.c (new_bb_vec_info): Replace with...
12053 (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in
12054 BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
12055 (destroy_bb_vec_info): Replace with...
12056 (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info
12057 information to its destructor.
12058 (vect_slp_analyze_bb_1): Use new and delete instead of
12059 new_bb_vec_info and destroy_bb_vec_info.
12060 (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
12063 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
12065 * tree-data-ref.h (subscript): Add access_fn field.
12066 (data_dependence_relation): Add could_be_independent_p.
12067 (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
12068 (same_access_functions): Move to tree-data-ref.c.
12069 * tree-data-ref.c (ref_contains_union_access_p): New function.
12070 (access_fn_component_p): Likewise.
12071 (access_fn_components_comparable_p): Likewise.
12072 (dr_analyze_indices): Add a reference to access_fn_component_p.
12073 (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
12075 (constant_access_functions): Likewise.
12076 (add_other_self_distances): Likewise.
12077 (same_access_functions): Likewise. (Moved from tree-data-ref.h.)
12078 (initialize_data_dependence_relation): Use XCNEW and remove
12079 explicit zeroing of DDR_REVERSED_P. Look for a subsequence
12080 of access functions that have the same type. Allow the
12081 subsequence to end with different bases in some circumstances.
12082 Record the chosen access functions in SUB_ACCESS_FN.
12083 (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
12084 a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
12085 (subscript_dependence_tester_1): Likewise dra and drb.
12086 (build_classic_dist_vector): Update calls accordingly.
12087 (subscript_dependence_tester): Likewise.
12088 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
12089 DDR_COULD_BE_INDEPENDENT_P.
12090 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
12091 comp_alias_ddrs instead of may_alias_ddrs.
12092 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
12094 (vect_analyze_data_ref_dependence): Use it if
12095 DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
12096 distance vectors if that fails.
12097 (dependence_distance_ge_vf): New function.
12098 (vect_prune_runtime_alias_test_list): Use it. Don't clear
12099 LOOP_VINFO_MAY_ALIAS_DDRS.
12101 2017-08-04 Richard Biener <rguenther@suse.de>
12103 PR middle-end/81705
12104 * fold-const.c (fold_binary_loc): Properly restrict
12105 minus_var0 && minus_var1 case when associating undefined overflow
12108 2017-08-04 Tom de Vries <tom@codesourcery.com>
12110 * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
12112 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12114 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12115 Don't start diagnostic messages with a capital letter.
12116 * config/rs6000/rs6000.c (rs6000_option_override_internal):
12118 (rs6000_invalid_builtin): Likewise.
12119 (rs6000_trampoline_init): Likewise.
12121 2017-08-03 Jakub Jelinek <jakub@redhat.com>
12124 * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
12125 after setting changeable df flags.
12127 2017-08-03 Richard Biener <rguenther@suse.de>
12129 * tree-ssa-reassoc.c (should_break_up_subtract): Also break
12130 up if the use is in USE - X.
12132 2017-08-03 Alexander Monakov <amonakov@ispras.ru>
12134 * toplev.c (dumpfile.h): New include.
12135 (internal_error_reentered): New static function. Use it...
12136 (internal_error_function): ...here to handle reentered internal_error.
12138 2017-08-03 Richard Biener <rguenther@suse.de>
12140 PR middle-end/81148
12141 * fold-const.c (split_tree): Add minus_var and minus_con
12142 arguments, remove unused loc arg. Never generate NEGATE_EXPRs
12143 here but always use minus_*.
12144 (associate_trees): Assert we never associate with MINUS_EXPR
12145 and NULL first operand. Do not recurse for PLUS_EXPR operands
12146 when associating as MINUS_EXPR either.
12147 (fold_binary_loc): Track minus_var and minus_con.
12149 2017-08-03 Tom de Vries <tom@codesourcery.com>
12152 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
12153 ACCEL_COMPILER, apply finish_options on
12154 DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
12156 2017-08-03 Tom de Vries <tom@codesourcery.com>
12159 * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
12160 function_entry_patch_area_size > 0.
12162 2017-08-03 Jakub Jelinek <jakub@redhat.com>
12165 * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
12166 instead of 10??LU, perform unit multiplication in wide_int,
12167 don't change alloc_object_size_limit if the limit is larger
12170 PR tree-optimization/81655
12171 PR tree-optimization/81588
12172 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
12173 the case when ranges[i].low and high are 1 for unsigned type with
12176 PR middle-end/81052
12177 * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
12178 (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
12180 2017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12182 * tree-vrp.h: Add include guard.
12184 2017-08-02 Uros Bizjak <ubizjak@gmail.com>
12187 * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
12188 (ud2): New insn pattern.
12189 * config/i386/i386.c (ix86_expand_epilogue):
12190 For naked functions, generate ud2 instead of trap insn.
12192 2017-08-02 Marek Polacek <polacek@redhat.com>
12195 * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
12197 2017-08-02 Tom de Vries <tom@codesourcery.com>
12198 Cesar Philippidis <cesar@codesourcery.com>
12200 * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
12201 Add missing edge probabilities.
12203 2017-08-02 Tamar Christina <tamar.christina@arm.com>
12205 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
12206 Correct endianness.
12208 2017-08-02 Jakub Jelinek <jakub@redhat.com>
12210 PR middle-end/79499
12211 * function.c (thread_prologue_and_epilogue_insns): Determine blocks
12212 for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
12213 of first NONDEBUG_INSN_P in each of the split_prologue_seq and
12214 prologue_seq sequences - if any.
12216 2017-08-02 Richard Biener <rguenther@suse.de>
12218 * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
12219 via vectors if supported, integer extracts via punning if supported
12220 or otherwise vector extracts.
12222 2017-08-02 Richard Biener <rguenther@suse.de>
12224 * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
12226 (bitmap_insert_into_set): ... this.
12228 2017-08-02 Richard Biener <rguenther@suse.de>
12230 PR tree-optimization/81633
12232 2015-08-17 Alan Hayward <alan.hayward@arm.com>
12234 PR tree-optimization/71752
12235 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
12237 2017-08-01 Daniel Santos <daniel.santos@pobox.com>
12239 * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
12240 (machine_function::call_ms2sysv_pad_out): Remove field.
12241 * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
12242 (ix86_compute_frame_layout): Likewise.
12244 2017-08-01 H.J. Lu <hongjiu.lu@intel.com>
12247 * config/i386/i386.c (ix86_set_func_type): Disallow naked
12248 attribute with interrupt attribute.
12250 2017-08-01 Andrew Pinski <apinski@cavium.com>
12252 * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
12253 BIT_INSERT_EXPR's operand 1
12254 to see if the types precision matches.
12256 2017-08-01 Martin Liska <mliska@suse.cz>
12258 PR middle-end/70140
12259 * builtins.c (expand_builtin_memcpy_args): Remove.
12260 (expand_builtin_memcpy): Call newly added function
12261 expand_builtin_memory_copy_args.
12262 (expand_builtin_memcpy_with_bounds): Likewise.
12263 (expand_builtin_mempcpy): Remove last argument.
12264 (expand_builtin_mempcpy_with_bounds): Likewise.
12265 (expand_builtin_memory_copy_args): New function created from
12266 expand_builtin_mempcpy_args with small modifications.
12267 (expand_builtin_mempcpy_args): Remove.
12268 (expand_builtin_stpcpy): Remove unused argument.
12269 (expand_builtin): Likewise.
12270 (expand_builtin_with_bounds): Likewise.
12272 2017-08-01 Martin Liska <mliska@suse.cz>
12275 Make mempcpy more optimal (PR middle-end/70140).
12277 2017-08-01 Jakub Jelinek <jakub@redhat.com>
12280 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
12281 __builtin_vec_cmpne verify both arguments are compatible vectors
12282 before looking at TYPE_MODE on the element type. For __builtin_vec_ld
12283 verify arg1_type is a pointer or array type. For __builtin_vec_st,
12284 move computation of aligned to after checking the argument types.
12288 * config/rs6000/vsx.md (vextract_fp_from_shorth,
12289 vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
12292 2017-08-01 Jerome Lambourg <lambourg@adacore.com>
12293 Doug Rupp <rupp@adacore.com>
12294 Olivier Hainque <hainque@adacore.com>
12296 * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
12297 well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
12299 * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
12300 for TARGET_OS_CPP_BUILTIN.
12301 (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
12302 refine CPU definitions for arm_arch5 and add those for arm_arch6 and
12304 (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
12305 passing required abi options to the assembler for EABI configurations.
12306 (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
12307 of .text.hot and .text.unlikely sections for kernel modules when
12308 using ARM style exceptions.
12309 (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
12310 options. Add EXTRA_CC1_SPEC.
12311 (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
12313 (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
12315 (ARM_TARGET2_DWARF_FORMAT): Define.
12316 * config/arm/t-vxworks: Adjust multilib control to removal of the
12317 Diab command line options.
12319 2017-08-01 Martin Liska <mliska@suse.cz>
12321 PR gcov-profile/81561
12322 * gcov.c (unblock): Make unblocking safe as we need to preserve
12323 index correspondence of blocks and block_lists.
12325 2017-08-01 Richard Biener <rguenther@suse.de>
12327 PR tree-optimization/81181
12328 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
12329 (compute_antic): ... end of iteration here.
12331 2017-08-01 James Greenhalgh <james.greenhalgh@arm.com>
12333 * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
12334 (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
12335 (ftree-slp-vectorize): Likewise.
12336 * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
12337 can no longer be set independent of flag_tree_loop_vectorize.
12338 * omp-general.c (emp_max_vf): Likewise.
12339 * opts.c (enable_fdo_optimizations): Remove references to
12340 flag_tree_vectorize, these are now implicit.
12341 (common_handle_option): Remove handling for OPT_ftree_vectorize,
12342 and leave it for the options machinery.
12344 2017-08-01 Martin Liska <mliska@suse.cz>
12346 PR middle-end/70140
12347 * builtins.c (expand_builtin_memcpy_args): Remove.
12348 (expand_builtin_memcpy): Call newly added function
12349 expand_builtin_memory_copy_args.
12350 (expand_builtin_memcpy_with_bounds): Likewise.
12351 (expand_builtin_mempcpy): Remove last argument.
12352 (expand_builtin_mempcpy_with_bounds): Likewise.
12353 (expand_builtin_memory_copy_args): New function created from
12354 expand_builtin_mempcpy_args with small modifications.
12355 (expand_builtin_mempcpy_args): Remove.
12356 (expand_builtin_stpcpy): Remove unused argument.
12357 (expand_builtin): Likewise.
12358 (expand_builtin_with_bounds): Likewise.
12360 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
12363 * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
12364 print "ds:" only for immediates in generic address space.
12366 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
12369 * config/i386/i386.c (ix86_funciton_naked): New prototype.
12370 (ix86_function_ok_for_sibcall): Return false for naked functions.
12372 2017-08-01 Richard Biener <rguenther@suse.de>
12374 * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
12375 (compute_antic): Seed worklist with exit block predecessors.
12376 * cfganal.c (dfs_find_deadend): For a cycle return the source
12377 of the edge closing it.
12379 2017-08-01 Tamar Christina <tamar.christina@arm.com>
12381 * config/aarch64/aarch64.c
12382 (aarch64_can_const_movi_rtx_p): Move 0 check.
12384 2017-08-01 Bin Cheng <bin.cheng@arm.com>
12386 * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
12387 * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
12389 * match.pd: Ditto in address comparison pattern.
12391 2017-08-01 Bin Cheng <bin.cheng@arm.com>
12393 PR tree-optimization/81627
12394 * tree-predcom.c (prepare_finalizers): Always rewrite into loop
12395 closed ssa form for store-store chain.
12397 2017-08-01 Bin Cheng <bin.cheng@arm.com>
12399 PR tree-optimization/81620
12400 * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
12401 for store-store chain.
12403 2017-08-01 Jakub Jelinek <jakub@redhat.com>
12405 PR tree-optimization/81588
12406 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
12407 ranges[i].in_p, invert comparison code ccode. For >/>=,
12408 swap rhs1 and rhs2 and comparison code unconditionally,
12409 for </<= don't do that. Don't swap rhs1/rhs2 again if
12410 ranges[i].in_p, instead invert comparison code ccode if
12411 opcode or oe->rank is BIT_IOR_EXPR.
12414 * optabs.def (vec_extract_optab, vec_init_optab): Change from
12415 a direct optab to conversion optab.
12416 * optabs.c (expand_vector_broadcast): Use convert_optab_handler
12417 with GET_MODE_INNER as last argument instead of optab_handler.
12418 * expmed.c (extract_bit_field_1): Likewise. Use vector from
12419 vector extraction if possible and optab is available.
12420 * expr.c (store_constructor): Use convert_optab_handler instead
12421 of optab_handler. Use vector initialization from smaller
12422 vectors if possible and optab is available.
12423 * tree-vect-stmts.c (vectorizable_load): Likewise.
12424 * doc/md.texi (vec_extract, vec_init): Document that the optabs
12425 now have two modes.
12426 * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
12427 of vec_init from half-sized vectors with the same element mode.
12428 * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
12429 (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
12430 (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
12431 reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
12432 reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
12433 after mode in gen_vec_extract* calls.
12434 (vec_extract<mode>): Renamed to ...
12435 (vec_extract<mode><ssescalarmodelower>): ... this.
12436 (vec_extract<mode><ssehalfvecmodelower>): New expander.
12437 (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
12438 element mode after mode in gen_vec_init* calls.
12439 (VEC_INIT_HALF_MODE): New mode iterator.
12440 (vec_init<mode>): Renamed to ...
12441 (vec_init<mode><ssescalarmodelower>): ... this.
12442 (vec_init<mode><ssehalfvecmodelower>): New expander.
12443 * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
12444 (vec_extractv2sfsf): ... this.
12445 (vec_initv2sf): Renamed to ...
12446 (vec_initv2sfsf): ... this.
12447 (vec_extractv2si): Renamed to ...
12448 (vec_extractv2sisi): ... this.
12449 (vec_initv2si): Renamed to ...
12450 (vec_initv2sisi): ... this.
12451 (vec_extractv4hi): Renamed to ...
12452 (vec_extractv4hihi): ... this.
12453 (vec_initv4hi): Renamed to ...
12454 (vec_initv4hihi): ... this.
12455 (vec_extractv8qi): Renamed to ...
12456 (vec_extractv8qiqi): ... this.
12457 (vec_initv8qi): Renamed to ...
12458 (vec_initv8qiqi): ... this.
12459 * config/rs6000/vector.md (VEC_base_l): New mode attribute.
12460 (vec_init<mode>): Renamed to ...
12461 (vec_init<mode><VEC_base_l>): ... this.
12462 (vec_extract<mode>): Renamed to ...
12463 (vec_extract<mode><VEC_base_l>): ... this.
12464 * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
12465 (vec_initv2sfsf): ... this.
12466 * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
12467 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
12468 vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
12469 element mode after mode in gen_vec_init* calls.
12470 * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
12471 (vec_init<mode><Vel>): ... this.
12472 (vec_extract<mode>): Renamed to ...
12473 (vec_extract<mode><Vel>): ... this.
12474 * config/aarch64/iterators.md (Vel): New mode attribute.
12475 * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
12476 Add element mode after mode in gen_vec_extract* calls.
12477 * config/s390/vector.md (non_vec_l): New mode attribute.
12478 (vec_extract<mode>): Renamed to ...
12479 (vec_extract<mode><non_vec_l>): ... this.
12480 (vec_init<mode>): Renamed to ...
12481 (vec_init<mode><non_vec_l>): ... this.
12482 * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
12483 s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
12485 * config/arm/iterators.md (V_elem_l): New mode attribute.
12486 * config/arm/neon.md (vec_extract<mode>): Renamed to ...
12487 (vec_extract<mode><V_elem_l>): ... this.
12488 (vec_extractv2di): Renamed to ...
12489 (vec_extractv2didi): ... this.
12490 (vec_init<mode>): Renamed to ...
12491 (vec_init<mode><V_elem_l>): ... this.
12492 (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
12493 reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
12494 reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
12495 Add element mode after gen_vec_extract* calls.
12496 * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
12497 (vec_init<mode><unitmode>): ... this.
12498 (vec_extract<mode>): Renamed to ...
12499 (vec_extract<mode><unitmode>): ... this.
12500 * config/mips/loongson.md (vec_init<mode>): Renamed to ...
12501 (vec_init<mode><unitmode>): ... this.
12502 * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
12503 (vec_initv2sfsf): ... this.
12504 (vec_extractv2sf): Renamed to ...
12505 (vec_extractv2sfsf): ... this.
12506 (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
12507 Add element mode after gen_vec_extract* calls.
12508 * config/mips/mips.md (unitmode): New mode iterator.
12509 * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
12510 spu_builtin_extract): Add element mode after gen_vec_extract* calls.
12511 * config/spu/spu.md (inner_l): New mode attribute.
12512 (vec_init<mode>): Renamed to ...
12513 (vec_init<mode><inner_l>): ... this.
12514 (vec_extract<mode>): Renamed to ...
12515 (vec_extract<mode><inner_l>): ... this.
12516 * config/sparc/sparc.md (veltmode): New mode iterator.
12517 (vec_init<VMALL:mode>): Renamed to ...
12518 (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
12519 * config/ia64/vect.md (vec_initv2si): Renamed to ...
12520 (vec_initv2sisi): ... this.
12521 (vec_initv2sf): Renamed to ...
12522 (vec_initv2sfsf): ... this.
12523 (vec_extractv2sf): Renamed to ...
12524 (vec_extractv2sfsf): ... this.
12525 * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
12526 (vec_init<mode>): Renamed to ...
12527 (vec_init<mode><VEC_base_l>): ... this.
12528 (vec_extract<mode>): Renamed to ...
12529 (vec_extract<mode><VEC_base_l>): ... this.
12530 * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
12531 (vec_initv2sfsf): ... this.
12532 * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
12533 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
12534 vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
12535 gen_vec_init* calls.
12537 2017-08-01 Richard Biener <rguenther@suse.de>
12539 PR tree-optimization/81297
12540 * tree-vrp.c (get_single_symbol): Remove assert, instead drop
12541 TREE_OVERFLOW from INTEGER_CSTs.
12543 2017-07-31 Segher Boessenkool <segher@kernel.crashing.org>
12545 * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
12547 2017-07-31 Carl Love <cel@us.ibm.com>
12549 * config/rs6000/rs6000-c: Add support for built-in functions
12550 vector signed char vec_xl_be (signed long long, signed char *);
12551 vector unsigned char vec_xl_be (signed long long, unsigned char *);
12552 vector signed int vec_xl_be (signed long long, signed int *);
12553 vector unsigned int vec_xl_be (signed long long, unsigned int *);
12554 vector signed long long vec_xl_be (signed long long, signed long long *);
12555 vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
12556 vector signed short vec_xl_be (signed long long, signed short *);
12557 vector unsigned short vec_xl_be (signed long long, unsigned short *);
12558 vector double vec_xl_be (signed long long, double *);
12559 vector float vec_xl_be (signed long long, float *);
12560 * config/rs6000/altivec.h (vec_xl_be): Add #define.
12561 * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
12562 XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
12564 * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
12565 (altivec_expand_builtin): Add switch statement to call
12566 altivec_expand_xl_be for each builtin.
12567 (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
12568 __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
12569 __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
12570 __builtin_vsx_le_be_v16qi.
12571 * doc/extend.texi: Update the built-in documentation file for the
12572 new built-in functions.
12574 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
12577 * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
12579 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
12581 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12583 * config.gcc: Add z14.
12584 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
12585 CPU model numbers for z13s and z14.
12586 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
12588 * config/s390/s390-opts.h (enum processor_type): Rename
12589 PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
12590 * config/s390/s390.c (processor_table): Add field for CPU name to
12591 be passed to Binutils.
12592 (s390_asm_output_machine_for_arch): Use the new field in
12593 processor_table for Binutils.
12594 (s390_expand_builtin): Replace arch12 with z14.
12595 (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
12596 (s390_get_sched_attrmask): Likewise.
12597 (s390_get_unit_mask): Likewise.
12598 * config/s390/s390.opt: Add z14 to processor_type enum.
12600 2017-07-31 Martin Jambor <mjambor@suse.cz>
12603 * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
12604 regardless of optimization level.
12606 2017-07-31 Jan Hubicka <hubicka@ucw.cz>
12607 Martin Liska <mliska@suse.cz>
12609 * predict.def: Remove old comment and adjust probability.
12610 * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
12611 PREDICT statements.
12613 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
12616 * config/i386/i386.c (ix86_function_naked): New function.
12617 (ix86_can_use_return_insn_p): Return false for naked functions.
12618 (ix86_expand_prologue): Skip prologue for naked functions.
12619 (ix86_expand_epilogue): Skip epilogue for naked functions
12620 and emit trap instruction.
12621 (ix86_warn_func_return): New function.
12622 (ix86_attribute_table): Add "naked" attribute specification.
12623 (TARGET_WARN_FUNC_RETURN): Define.
12624 * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
12626 2017-07-31 Martin Liska <mliska@suse.cz>
12628 * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
12629 (dump_gimple_bb_header): Always dump BB info.
12630 (pp_cfg_jump): Do not append info about BB when dumping a jump.
12632 2017-07-31 Martin Liska <mliska@suse.cz>
12635 * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
12636 also with current_function_decl non-null equality.
12638 2017-07-31 Jakub Jelinek <jakub@redhat.com>
12641 * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
12642 change type to the element type, instead add eltype variable and
12643 use it where we are interested in the element type.
12645 PR tree-optimization/81603
12646 * ipa-polymorphic-call.c
12647 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
12648 offset arithmetic in offset_int, bail out if the resulting bit offset
12649 doesn't fit into shwi.
12651 2017-07-31 Martin Liska <mliska@suse.cz>
12653 * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
12654 (gimplify_save_expr): Fix comment.
12656 2017-07-30 H.J. Lu <hongjiu.lu@intel.com>
12659 * config/i386/i386.c (ix86_function_arg): Update arguments for
12661 (ix86_compute_frame_layout): Set the initial stack offset to
12662 INCOMING_FRAME_SP_OFFSET. Update red-zone offset with
12663 INCOMING_FRAME_SP_OFFSET.
12664 (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
12665 stack before exception handler returns.
12666 * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
12667 the 'ERROR_CODE' for exception handler.
12669 2017-07-30 Uros Bizjak <ubizjak@gmail.com>
12671 * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
12672 (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
12673 (ASM_OUTPUT_REG_POP): Ditto.
12674 * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
12675 instead of asm_fprintf to output pure string.
12677 2017-07-29 Jakub Jelinek <jakub@redhat.com>
12679 * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
12680 to imported_module_or_decl hook.
12681 (debug_nothing_tree_tree_tree_bool): Remove.
12682 (debug_nothing_tree_tree_tree_bool_bool): New declaration.
12683 * debug.c (do_nothing_debug_hooks): Use
12684 debug_nothing_tree_tree_tree_bool_bool instead of
12685 debug_nothing_tree_tree_tree_bool.
12686 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12687 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
12688 * sdbout.c (sdb_debug_hooks): Likewise.
12689 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
12690 (gen_namespace_die): Add DW_AT_export_symbols attribute if
12692 (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
12693 if true, -gdwarf-5 and decl will have DW_AT_export_symbols
12694 attribute, don't add anything.
12696 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12698 * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
12699 (fold_build2_stat_loc): Likewise.
12700 (fold_build3_stat_loc): Likewise.
12701 * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
12702 (fold_build1_loc): Remove macro.
12703 (fold_build2_loc): Likewise.
12704 (fold_build3_loc): Likewise.
12706 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12708 * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
12709 (gimple_build_debug_bind_source_stat): Likewise.
12710 * gimple.h (gimple_build_debug_bind): Remove macro.
12711 (gimple_build_debug_bind_source): Likewise.
12713 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12715 * bitmap.c (bitmap_alloc): Adjust.
12716 (bitmap_gc_alloc): Likewise.
12717 * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
12719 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12721 * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
12722 (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
12723 * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
12724 (bitmap_gc_alloc_stat): Likewise.
12725 (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
12727 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12729 * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
12730 * rtl.h (shallow_copy_rtx): Remove macro.
12732 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12734 * emit-rtl.c (gen_raw_REG): Adjust.
12735 * gengenrtl.c (gendef): Likewise.
12736 * rtl.c (rtx_alloc_stat): Remove _stat from name.
12737 * rtl.h (rtx_alloc): Remove macro.
12739 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12741 * tree.c (build_tree_list_vec_stat): Remove _stat from name.
12742 (build_tree_list_stat): Likewise.
12743 * tree.h (build_tree_list): Remove macro.
12744 (build_tree_list_vec): Likewise.
12746 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12748 * tree.c (make_vector_stat): Remove _stat from name.
12749 (build_vector_stat): Likewise.
12750 * tree.h (make_vector_stat): Remove macro.
12751 (build_vector_stat): Likewise.
12753 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12755 * tree.h (build_var_debug_value): Remove prototype.
12757 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12759 * tree.c (tree_cons_stat): Remove _stat from name.
12760 * tree.h (tree_cons): Remove macro.
12762 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12764 * tree.c (build_vl_exp_stat): Remove _stat from name.
12765 * tree.h (build_vl_exp): Remove macro.
12767 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12769 * tree.c (build_decl_stat): Remove _stat from name.
12770 * tree.h (build_decl): Remove macro.
12772 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12774 * gimple.c (gimple_build_with_ops_stat): Adjust.
12775 (gimple_alloc_stat): Remove _stat from name.
12776 * gimple.h (gimple_alloc): Remove macro.
12778 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12780 * tree.c (make_tree_vec_stat): Remove _stat from name.
12781 (grow_tree_vec_stat): Likewise.
12782 * tree.h (make_tree_vec_stat): Adjust prototype.
12783 (grow_tree_vec_stat): Likewise.
12784 (make_tree_vec): Remove macro.
12785 (grow_tree_vec): Likewise.
12787 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12789 * fold-const.c (fold_build1_stat_loc): Adjust.
12790 (fold_build2_stat_loc): Likewise.
12791 (fold_build3_stat_loc): Likewise.
12792 * tree.c (build0_stat): Remove _stat from name.
12793 (build1_stat): Likewise.
12794 (build2_stat): Likewise.
12795 (build3_stat): Likewise.
12796 (build4_stat): Likewise.
12797 (build5_stat): Likewise.
12798 * tree.h (build1_loc): Remove macro, and rename _stat function
12800 (build2_loc): Likewise.
12801 (build3_loc): Likewise.
12802 (build4_loc): Likewise.
12803 (build5_loc): Likewise.
12805 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12807 * tree.c (make_int_cst_stat): Remove _stat from name.
12808 * tree.h (make_int_cst_stat): Adjust prototype.
12809 (make_int_cst): Remove macro.
12811 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12813 * tree.c (make_tre_binfo_stat): Remove _stat from name.
12814 * tree.h (make_tree_binfo_stat): Adjust prototype.
12815 (make_tree_binfo): Remove.
12817 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12819 * tree.c (copy_node_stat): Rename to copy_node.
12820 (build_distinct_type_copy): Adjust.
12821 * tree.h (copy_node_stat): Adjust prototype.
12822 (copy_node): Remove macro.
12824 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12826 * tree.c (make_node_stat): rename to make_node.
12827 (build_tree_list_stat): Adjust.
12828 (build0_stat): Likewise.
12829 (build2_stat): Likewise.
12830 (build3_stat): Likewise.
12831 (build4_stat): Likewise.
12832 (build5_stat): Likewise.
12833 (build_decl_stat): Likewise.
12834 * tree.h (make_node_stat): Adjust prototype.
12835 (make_node): remove macro.
12837 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
12839 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
12840 (PPC_FEATURE2_SCV): Likewise.
12841 * config/rs6000/rs6000.c (cpu_supports_info): Use them.
12843 2017-07-28 Tamar Christina <tamar.christina@arm.com>
12845 * config/aarch64/aarch64.c
12846 (aarch64_internal_mov_immediate): Add new special pattern.
12847 * config/aarch64/aarch64.md (*movdi_aarch64):
12848 Add reg/32bit const mov case.
12850 2017-07-28 Tamar Christina <tamar.christina@arm.com>
12851 Richard Sandiford <richard.sandiford@linaro.org>
12853 * config/aarch64/aarch64.md (mov<mode>): Generalize.
12854 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
12855 Add integer and movi cases.
12856 (movi-split-hf-df-sf split, fp16): New.
12857 (enabled): Added TARGET_FP_F16INST.
12858 * config/aarch64/iterators.md (GPF_HF): New.
12859 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
12861 2017-07-28 Tamar Christina <tamar.christina@arm.com>
12863 * config/aarch64/aarch64.c
12864 (aarch64_simd_container_mode): Add prototype.
12865 (aarch64_expand_mov_immediate): Add HI support.
12866 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
12867 (aarch64_can_const_movi_rtx_p): New.
12868 (aarch64_preferred_reload_class):
12869 Remove restrictions of using FP registers for certain SIMD operations.
12870 (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
12871 (aarch64_valid_floating_const): Add integer move validation.
12872 (aarch64_simd_imm_scalar_p): Remove.
12873 (aarch64_output_scalar_simd_mov_immediate): Generalize function.
12874 (aarch64_legitimate_constant_p): Expand list of supported cases.
12875 * config/aarch64/aarch64-protos.h
12876 (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
12877 (aarch64_reinterpret_float_as_int): New.
12878 (aarch64_simd_imm_scalar_p): Remove.
12879 * config/aarch64/constraints.md (Uvi): New.
12880 (Dd): Split into Ds and new Dd.
12881 * config/aarch64/aarch64.md (*movsi_aarch64):
12883 (*movdi_aarch64): Add SIMD mov case.
12885 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12887 * tree-predcom.c: (struct chain): Handle store-store chain in which
12888 stores for elimination only store loop invariant values.
12889 (execute_pred_commoning_chain): Ditto.
12890 (prepare_initializers_chain_store_elim): Ditto.
12891 (prepare_finalizers): Ditto.
12892 (is_inv_store_elimination_chain): New function.
12893 (initialize_root_vars_store_elim_1): New function.
12895 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12897 * tree-predcom.c: Revise general description of the pass.
12898 (enum chain_type): New enum type for store elimination.
12899 (struct chain): New field supporting store elimination.
12900 (struct component): Ditto.
12901 (dump_chain): Dump store-stores chain.
12902 (release_chain): Release resources.
12903 (split_data_refs_to_components): Compute and create component
12904 contains only stores for elimination.
12905 (get_chain_last_ref_at): New function.
12906 (make_invariant_chain): Initialization.
12907 (make_rooted_chain): Specify chain type in parameter and record it.
12908 (add_looparound_copies): Skip for store-stores chain.
12909 (determine_roots_comp): Compute type of chain and pass it to
12911 (initialize_root_vars_store_elim_2): New function.
12912 (finalize_eliminated_stores): New function.
12913 (remove_stmt): Handle store for elimination.
12914 (execute_pred_commoning_chain): Execute predictive commoning on
12915 store-store chains.
12916 (determine_unroll_factor): Skip unroll for store-stores chain.
12917 (prepare_initializers_chain_store_elim): New function.
12918 (prepare_initializers_chain): Hanlde store-store chain.
12919 (prepare_finalizers_chain, prepare_finalizers): New function.
12920 (tree_predictive_commoning_loop): Return integer value indicating
12921 if loop is unrolled or lcssa form is corrupted.
12922 (tree_predictive_commoning): Rewrite for lcssa form if necessary.
12924 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12926 * tree-predcom.c (initialize_root): Delete.
12927 (execute_pred_commoning_chain): Initialize root vars and replace
12928 reference of non-combined chain directly, rather than call above
12931 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12933 * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute
12934 memory reference to DR at (NITERS + ITERS)-th iteration of loop.
12936 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12938 * tree-predcom.c (struct chain): New field init_seq.
12939 (release_chain): Release init_seq.
12940 (prepare_initializers_chain): Record intialization stmts in above
12942 (insert_init_seqs): New function.
12943 (tree_predictive_commoning_loop): Call insert_init_seqs.
12945 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12947 * tree-predcom.c (determine_roots_comp): Skip trivial components.
12949 2017-07-28 Richard Biener <rguenther@suse.de>
12951 * match.pd: Remove superfluous :c.
12952 * genmatch.c (simplify::id): Add member.
12953 (lower_commutative, lower_opt_convert, lower_cond, lower_for):
12955 (current_id): New global.
12956 (dt_node::parent): Move from ...
12957 (dt_operand::parent): ... here. Add for_id member.
12958 (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
12959 (decision_tree::find_node): Relax order requirement when
12960 merging DT_TRUE nodes to ones inbetween the current simplify
12961 and the one we try to merge with. Add diagnostic whenever
12962 we need to enforce pattern order by not merging.
12963 (decision_tree::insert): Set current_id.
12964 (decision_tree::print_node): Dump parent node and for_id.
12965 (parser::last_id): Add member.
12966 (parser::push_simplify): Assign unique id.
12967 (parser::parser): Initialize last_id.
12969 2017-07-28 Martin Liska <mliska@suse.cz>
12972 * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
12973 gimple_build_debug_bind.
12975 2017-07-28 Richard Biener <rguenther@suse.de>
12977 PR tree-optimization/81502
12978 * match.pd: Add pattern combining BIT_INSERT_EXPR with
12980 * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
12982 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
12983 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
12984 for BIT_FIELD_REF args.
12985 * fold-const.c (make_bit_field_ref): Likewise.
12986 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
12988 2017-07-28 Jakub Jelinek <jakub@redhat.com>
12991 * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
12992 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
12993 * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
12994 Or it into SANITIZER_UNDEFINED.
12995 * ubsan.c: Include gimple-fold.h and varasm.h.
12996 (ubsan_expand_ptr_ifn): New function.
12997 (instrument_pointer_overflow): New function.
12998 (maybe_instrument_pointer_overflow): New function.
12999 (instrument_object_size): Formatting fix.
13000 (pass_ubsan::execute): Call instrument_pointer_overflow
13001 and maybe_instrument_pointer_overflow.
13002 * internal-fn.c (expand_UBSAN_PTR): New function.
13003 * ubsan.h (ubsan_expand_ptr_ifn): Declare.
13004 * sanitizer.def (__ubsan_handle_pointer_overflow,
13005 __ubsan_handle_pointer_overflow_abort): New builtins.
13006 * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
13007 * internal-fn.def (UBSAN_PTR): New internal function.
13008 * opts.c (sanitizer_opts): Add pointer-overflow.
13009 * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
13010 * fold-const.c (build_range_check): Compute pointer range check in
13011 integral type if pointer arithmetics would be needed. Formatting
13014 2017-07-28 Martin Liska <mliska@suse.cz>
13017 * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
13018 parameters that are of a variable-length.
13020 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
13022 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add
13024 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
13025 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
13026 (CRT_CALL_STATIC_FUNCTION): Likewise.
13027 (ASM_DEFAULT_SPEC): New define.
13028 (ASM_SPEC32): Likewise.
13029 (ASM_SPEC64): Likewise.
13030 (ASM_SPEC_COMMON): Likewise.
13031 (ASM_SPEC): Likewise.
13032 (INVALID_64BIT): Likewise.
13033 (LINK_OS_DEFAULT_SPEC): Likewise.
13034 (LINK_OS_SPEC32): Likewise.
13035 (LINK_OS_SPEC64): Likewise.
13036 (POWERPC_LINUX): Likewise.
13037 (PTRDIFF_TYPE): Likewise.
13038 (RESTORE_FP_PREFIX): Likewise.
13039 (RESTORE_FP_SUFFIX): Likewise.
13040 (SAVE_FP_PREFIX): Likewise.
13041 (SAVE_FP_SUFFIX): Likewise.
13042 (SIZE_TYPE): Likewise.
13043 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
13044 (TARGET_64BIT): Likewise.
13045 (TARGET_64BIT): Likewise.
13046 (TARGET_AIX): Likewise.
13047 (WCHAR_TYPE_SIZE): Likewise.
13048 (WCHAR_TYPE): Undefine.
13049 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
13050 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
13051 (CPP_OS_RTEMS_SPEC): Delete.
13052 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add
13053 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
13055 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
13057 2017-07-28 Jakub Jelinek <jakub@redhat.com>
13059 PR tree-optimization/81578
13060 * tree-parloops.c (build_new_reduction): Bail out if
13061 reduction_code isn't one of the standard OpenMP reductions.
13062 Move the details printing after that decision.
13064 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
13066 * config/rs6000/predicates.md (volatile_mem_operand): Remove code
13067 related to reload_in_progress.
13068 (splat_input_operand): Likewise.
13069 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
13071 * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
13073 (TARGET_EXPAND_TO_RTL_HOOK): Delete.
13074 (TARGET_INSTANTIATE_DECLS): Likewise.
13075 (legitimate_indexed_address_p): Delete reload_in_progress code.
13076 (rs6000_debug_legitimate_address_p): Likewise.
13077 (rs6000_eliminate_indexed_memrefs): Likewise.
13078 (rs6000_emit_le_vsx_store): Likewise.
13079 (rs6000_emit_move_si_sf_subreg): Likewise.
13080 (rs6000_emit_move): Likewise.
13081 (register_to_reg_type): Likewise.
13082 (rs6000_pre_atomic_barrier): Likewise.
13083 (rs6000_machopic_legitimize_pic_address): Likewise.
13084 (rs6000_allocate_stack_temp): Likewise.
13085 (rs6000_address_for_fpconvert): Likewise.
13086 (rs6000_address_for_altivec): Likewise.
13087 (rs6000_secondary_memory_needed_rtx): Delete function.
13088 (rs6000_check_sdmode): Likewise.
13089 (rs6000_alloc_sdmode_stack_slot): Likewise.
13090 (rs6000_instantiate_decls): Likewise.
13091 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
13092 * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
13093 Delete reload_in_progress.
13094 (*vec_reload_and_plus_<mptrsize>): Likewise.
13095 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
13096 (vsx_div_v2di): Likewise.
13097 (vsx_udiv_v2di): Likewise.
13099 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
13101 * config/rs6000/rs6000.opt (mlra): Replace with stub.
13102 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
13103 * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
13104 (rs6000_debug_reg_global): Delete print of LRA status.
13105 (rs6000_option_override_internal): Delete dead LRA related code.
13106 (rs6000_lra_p): Delete function.
13107 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
13109 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
13111 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
13112 * config/riscv/rtems.h: New file.
13114 2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13115 Sudakshina Das <sudi.das@arm.com>
13117 * config/aarch64/aarch64.md
13118 (define_split for and<mode>3nr_compare): Move
13119 non aarch64_logical_operand to a register.
13120 (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
13121 register immediate operand to a register.
13122 * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
13124 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
13126 PR middle-end/81564
13127 * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
13129 2017-07-27 Richard Biener <rguenther@suse.de>
13131 PR tree-optimization/81573
13132 PR tree-optimization/81494
13133 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
13134 multi defuse cycle case.
13136 2017-07-27 Richard Biener <rguenther@suse.de>
13138 PR tree-optimization/81571
13139 * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
13142 2017-07-27 Eric Botcazou <ebotcazou@adacore.com>
13144 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
13145 earlier and only if MASK_FPU is set. Adjust formatting.
13147 2017-07-27 Martin Liska <mliska@suse.cz>
13149 * opt-functions.awk: Add validation of value of Init.
13150 * optc-gen.awk: Pass new argument.
13152 2017-07-27 Martin Liska <mliska@suse.cz>
13154 * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
13155 Fix wrong condition.
13157 2017-07-27 Martin Liska <mliska@suse.cz>
13159 * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
13160 BBs and edges seen by autoFDO.
13162 2017-07-27 Richard Biener <rguenther@suse.de>
13164 PR tree-optimization/81502
13165 * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
13166 with incompatible but same sized type.
13167 (execute_update_addresses_taken): Likewise.
13169 2017-07-27 James Greenhalgh <james.greenhalgh@arm.com>
13171 * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
13172 flag_tree_loop_vectorize rather than flag_tree_vectorize.
13174 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13177 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
13178 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
13179 Change s_operand to memory_operand.
13181 2017-07-27 Richard Sandiford <richard.sandiford@linaro.org>
13183 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
13184 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
13185 (rs6000_emit_le_vsx_permute): ...this. Take the destination as input.
13186 Emit instructions rather than returning an expression. Handle TFmode
13187 and KFmode by casting to TImode.
13188 (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
13189 (rs6000_emit_le_vsx_store): Likewise.
13190 * config/rs6000/vsx.md (VSX_TI): New iterator.
13191 (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
13192 (*vsx_le_undo_permute_<mode>): Likewise.
13193 (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
13194 emit the split sequence.
13195 (*vsx_le_perm_store_<mode>): Likewise.
13197 2017-07-27 Jakub Jelinek <jakub@redhat.com>
13199 PR tree-optimization/81555
13200 PR tree-optimization/81556
13201 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
13202 if true, force CHANGED for the recursive invocation.
13203 (reassociate_bb): Remember original length of ops array, pass
13204 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
13206 * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
13207 attributes for noipa attribute. For naked attribute use
13208 lookup_attribute first before lookup_attribute_spec.
13209 * final.c (rest_of_handle_final): Disable IPA RA for functions with
13211 * ipa-visibility.c (non_local_p): Fix comment typos. Return true
13212 for functions with noipa attribute.
13213 (cgraph_externally_visible_p): Return true for functions with noipa
13215 * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
13216 for functions with noipa attribute.
13217 * doc/extend.texi: Document noipa function attribute.
13218 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
13219 also for functions with noipa attribute.
13220 (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
13222 2017-07-26 Andrew Pinski <apinski@cavium.com>
13224 * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
13225 vec_unalign_load_cost and vec_unalign_store_cost.
13227 2017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
13229 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
13230 -mvsx-small-integer option.
13231 (ISA_3_0_MASKS_IEEE): Likewise.
13232 (OTHER_VSX_VECTOR_MASKS): Likewise.
13233 (POWERPC_MASKS): Likewise.
13234 * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
13235 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
13236 code, only testing for DImode being allowed in non-VSX floating
13238 (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
13239 to TARGET_P8_VECTOR test. Remove redundant VSX test inside of
13241 (rs6000_option_override_internal): Delete -mvsx-small-integer.
13242 (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
13243 TARGET_P8_VECTOR test.
13244 (rs6000_secondary_reload_simple_move): Likewise.
13245 (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
13246 since TARGET_P9_VECTOR was already tested.
13247 (rs6000_opt_masks): Remove -mvsx-small-integer.
13248 * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
13249 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
13251 (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
13252 test for TARGET_VEXTRACTUB was used, and that uses
13254 (p9 extract splitter): Likewise.
13255 (vsx_extract_<mode>_di_p9): Likewise.
13256 (vsx_extract_<mode>_store_p9): Likewise.
13257 (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
13258 for TARGET_P9_VECTOR was used. Delete code that is now dead with
13259 the elimination of TARGET_VSX_SMALL_INTEGER.
13260 (vsx_extract_<mode>_p8): Likewise.
13261 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
13262 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
13263 (vsx_set_<mode>_p9): Likewise.
13264 (vsx_set_v4sf_p9): Likewise.
13265 (vsx_set_v4sf_p9_zero): Likewise.
13266 (vsx_insert_extract_v4sf_p9): Likewise.
13267 (vsx_insert_extract_v4sf_p9_2): Likewise.
13268 * config/rs6000/rs6000.md (sign extend splitter): Change
13269 TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
13270 (floatsi<mode>2_lfiwax_mem): Likewise.
13271 (floatunssi<mode>2_lfiwzx_mem): Likewise.
13272 (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
13273 since a test for TARGET_P9_VECTOR was used.
13274 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
13275 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
13276 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
13277 (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
13278 TARGET_P8_VECTOR test.
13279 (fix_trunc<mode>si2_stfiwx): Likewise.
13280 (fix_trunc<mode>si2_internal): Likewise.
13281 (fix_trunc<SFDF:mode><QHI:mode>2): Delete
13282 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
13284 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
13285 (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
13286 TARGET_P8_VECTOR test.
13287 (fixuns_trunc<mode>si2_stfiwx): Likewise.
13288 (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
13289 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
13291 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
13292 (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
13293 since a test for TARGET_P9_VECTOR was used.
13294 (splitter for loading small constants): Likewise.
13296 2017-07-26 Andrew Pinski <apinski@cavium.com>
13298 * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
13301 2017-07-26 H.J. Lu <hongjiu.lu@intel.com>
13304 * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
13305 (fp_valid_at): Likewise.
13307 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
13309 * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
13310 (qdf24xx_addrcost_table): Likewise.
13311 (cortexa57_tunings): Update to use generic_branch_cost.
13312 (cortexa72_tunings): Likewise.
13313 (cortexa73_tunings): Likewise.
13314 (qdf24xx_tunings): Likewise.
13316 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
13318 * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
13319 (thunderx2t99_branch_cost): Likewise.
13320 (cortexa35_tunings): Update to use generic_branch_cost.
13321 (cortexa53_tunings): Likewise.
13322 (cortexa57_tunings): Likewise.
13323 (cortexa72_tunings): Likewise.
13324 (cortexa73_tunings): Likewise.
13325 (thunderx2t99_tunings): Likewise.
13327 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
13329 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
13330 (sparc_option_override): Honour MASK_FSMULD.
13331 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
13332 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
13333 * config/sparc/sparc.opt (mfsmuld): New option.
13334 * doc/invoke.texi (mfsmuld): Document option.
13336 2017-07-26 Marek Polacek <polacek@redhat.com>
13338 PR middle-end/70992
13339 * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
13341 2017-07-26 Richard Biener <rguenther@suse.de>
13343 * gimple-match-head.c (do_valueize): Return OP if valueize
13345 (get_def): New helper to get at the def stmt of a SSA name
13346 if valueize allows.
13347 * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
13348 do_valueize to get at the def stmt.
13349 (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
13351 2017-07-26 Wilco Dijkstra <wdijkstr@arm.com>
13353 PR middle-end/46932
13354 * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
13356 2017-07-26 Martin Liska <mliska@suse.cz>
13359 * function.c (expand_function_start): Make expansion of
13360 nonlocal_goto_save_area after parm_birth_insn.
13362 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
13364 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
13365 from all CPU target flags enable members.
13367 2017-07-26 Richard Biener <rguenther@suse.de>
13369 * genmatch.c (dt_simplify::gen): Make iterator vars const.
13370 (decision_tree::gen): Make 'type' const.
13371 (write_predicate): Likewise.
13373 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
13375 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
13376 Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
13377 (rs6000_option_override_internal): Likewise.
13378 (rs6000_expand_vector_set): Likewise.
13379 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
13380 (TARGET_UPPER_REGS_SF): Likewise.
13381 (TARGET_UPPER_REGS_DI): Likewise.
13382 (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
13383 (TARGET_DIRECT_MOVE_64BIT): Likewise.
13384 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
13385 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
13386 (Splitters for DI constants in Altivec registers): Likewise.
13387 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
13388 (vsx_set_v4sf_p9): Likewise.
13389 (vsx_set_v4sf_p9_zero): Likewise.
13390 (vsx_insert_extract_v4sf_p9): Likewise.
13391 (vsx_insert_extract_v4sf_p9_2): Likewise.
13393 2017-07-25 Carl Love <cel@us.ibm.com>
13395 * doc/extend.texi: Update the built-in documentation file for the
13396 existing built-in functions
13397 vector signed char vec_cnttz (vector signed char);
13398 vector unsigned char vec_cnttz (vector unsigned char);
13399 vector signed short vec_cnttz (vector signed short);
13400 vector unsigned short vec_cnttz (vector unsigned short);
13401 vector signed int vec_cnttz (vector signed int);
13402 vector unsigned int vec_cnttz (vector unsigned int);
13403 vector signed long long vec_cnttz (vector signed long long);
13404 vector unsigned long long vec_cnttz (vector unsigned long long);
13406 2017-07-25 Andrew Pinski <apinski@cavium.com>
13408 * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
13409 accesses where the use is for the first operand of a BIT_INSERT.
13411 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
13414 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
13415 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
13417 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
13419 * config/i386/gstabs.h: Delete.
13420 * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
13422 2017-07-25 Uros Bizjak <ubizjak@gmail.com>
13424 * config/i386/i386.c (ix86_decompose_address): Do not check for
13425 register RTX when looking at index_reg or base_reg.
13426 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
13428 2017-07-25 Eric Botcazou <ebotcazou@adacore.com>
13430 * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
13431 to update EH info here.
13433 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
13435 * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
13437 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
13439 * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
13441 2017-07-25 Torsten Duwe <duwe@suse.de>
13443 * common.opt: Introduce -fpatchable-function-entry
13444 command line option, and its variables function_entry_patch_area_size
13445 and function_entry_patch_area_start.
13446 * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
13447 including a two-value parser.
13448 * target.def (print_patchable_function_entry): New target hook.
13449 * targhooks.h (default_print_patchable_function_entry): New function.
13450 * targhooks.c (default_print_patchable_function_entry): Likewise.
13451 * toplev.c (process_options): Switch off IPA-RA if
13452 patchable function entries are being generated.
13453 * varasm.c (assemble_start_function): Look at the
13454 patchable-function-entry command line switch and current
13455 function attributes and maybe generate NOP instructions by
13456 calling the print_patchable_function_entry hook.
13457 * doc/extend.texi: Document patchable_function_entry attribute.
13458 * doc/invoke.texi: Document -fpatchable_function_entry
13459 command line option.
13460 * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
13462 * doc/tm.texi: Re-generate.
13464 2017-07-25 Jakub Jelinek <jakub@redhat.com>
13467 * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
13468 TARGET_AVX512DQ rather than TARGET_AVX512BW.
13470 2017-07-25 Tamar Christina <tamar.christina@arm.com>
13472 * config/arm/parsecpu.awk (all_cores): Remove duplicates.
13474 2017-07-25 Richard Biener <rguenther@suse.de>
13476 PR tree-optimization/81455
13477 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
13478 not walk in cycles when looking for guards.
13480 2017-07-25 Richard Biener <rguenther@suse.de>
13482 PR tree-optimization/81529
13483 * tree-vect-stmts.c (process_use): Disregard live induction PHIs
13484 when optimizing backedge uses.
13486 2017-07-25 David Edelsohn <dje.gcc@gmail.com>
13488 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
13490 * dwarf2out.c (output_macinfo): Copy debug_line_section_label
13491 to dl_section_ref. On AIX, append an expression to subtract
13492 the size of the section length to dl_section_ref.
13494 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org>
13496 * configure.ac: If any of the config.* scripts fail, exit 1.
13497 * configure: Regenerate.
13499 2017-07-25 Richard Biener <rguenther@suse.de>
13501 PR middle-end/81546
13502 * tree-ssa-operands.c (verify_imm_links): Remove cap on number
13503 of immediate uses, be more verbose on errors.
13505 2017-07-25 Richard Biener <rguenther@suse.de>
13507 PR tree-optimization/81510
13508 * tree-vect-loop.c (vect_is_simple_reduction): When the
13509 reduction stmt is not inside the loop bail out.
13511 2017-07-25 Richard Biener <rguenther@suse.de>
13513 PR tree-optimization/81303
13514 * tree-vect-loop-manip.c (vect_loop_versioning): Build
13515 profitability check against LOOP_VINFO_NITERSM1.
13517 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
13519 * domwalk.c (cmp_bb_postorder): Simplify.
13520 (sort_bbs_postorder): New function. Use it...
13521 (dom_walker::walk): ...here to optimize common cases.
13523 2017-07-25 Martin Liska <mliska@suse.cz>
13526 * ipa-visibility.c (function_and_variable_visibility): Make the
13527 redirection just on target that supports aliasing.
13528 Fix GNU coding style.
13530 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
13533 * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
13535 * config/arm/rtems.h: Likewise.
13536 * config/bfin/rtems.h: Likewise.
13537 * config/i386/rtemself.h: Likewise.
13538 * config/lm32/rtems.h: Likewise.
13539 * config/m32c/rtems.h: Likewise.
13540 * config/m68k/rtemself.h: Likewise.
13541 * config/microblaze/rtems.h: Likewise.
13542 * config/mips/rtems.h: Likewise.
13543 * config/moxie/rtems.h: Likewise.
13544 * config/nios2/rtems.h: Likewise.
13545 * config/powerpcspe/rtems.h: Likewise.
13546 * config/rs6000/rtems.h: Likewise.
13547 * config/rtems.h: Likewise.
13548 * config/sh/rtems.h: Likewise.
13549 * config/sh/rtemself.h: Likewise.
13550 * config/sparc/rtemself.h: Likewise.
13552 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
13555 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
13556 * gimple-pretty-print.c (dump_profile, dump_probability): Same.
13557 * tree-ssa-structalias.c (alias_get_name): Same.
13559 2017-07-25 Bin Cheng <bin.cheng@arm.com>
13562 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
13563 instructions if no du chain is found.
13565 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
13567 * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
13569 2017-07-25 Richard Biener <rguenther@suse.de>
13571 PR middle-end/81505
13572 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
13575 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
13577 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
13578 upper-regs options.
13579 (ISA_2_7_MASKS_SERVER): Likewise.
13580 (ISA_3_0_MASKS_IEEE): Likewise.
13581 (OTHER_P8_VECTOR_MASKS): Likewise.
13582 (OTHER_VSX_VECTOR_MASKS): Likewise.
13583 (POWERPC_MASKS): Likewise.
13584 (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
13585 duplicate list of options.
13586 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
13587 explicit -mupper-regs options.
13588 * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
13589 -mupper-regs* options. Delete -mvsx-scalar-memory, which was an
13590 alias for -mupper-regs-df.
13591 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
13592 (rs6000_init_hard_regno_mode_ok): Likewise.
13593 (rs6000_option_override_internal): Likewise.
13594 (rs6000_opt_masks): Likewise.
13595 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
13596 options in terms of whether -mvsx or -mpower8-vector was used.
13597 (TARGET_UPPER_REGS_DI): Likewise.
13598 (TARGET_UPPER_REGS_SF): Likewise.
13599 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
13600 -mupper-regs-* options.
13602 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
13604 * passes.c (emergency_dump_function): Print some empty lines and a
13605 header before the RTL dump.
13607 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
13609 * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
13611 2017-07-24 Wilco Dijkstra <wdijkstr@arm.com>
13614 * config/aarch64/aarch64.c (aarch64_classify_symbol):
13615 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
13617 2017-07-24 Carl Love <cel@us.ibm.com>
13619 * config/rs6000/rs6000-c.c: Add support for built-in functions
13620 vector float vec_extract_fp32_from_shorth (vector unsigned short);
13621 vector float vec_extract_fp32_from_shortl (vector unsigned short);
13622 * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
13623 vec_extract_fp_from_shortl): Add defines for the two builtins.
13624 * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
13625 VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
13627 * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
13628 (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
13629 * doc/extend.texi: Update the built-in documentation file for the
13630 new built-in function.
13632 2017-07-24 Jakub Jelinek <jakub@redhat.com>
13635 * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
13637 * doc/generic.texi: Likewise.
13638 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
13639 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
13641 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com>
13643 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
13644 (aarch64_mls_elt_merge<mode>): Likewise.
13646 2017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com>
13648 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
13649 having __cxa_atexit.
13651 2017-07-23 Michael Collison <michael.collison@arm.com>
13653 * config/arm/arm.c (arm_option_override): Deprecate
13654 use of -mstructure-size-boundary.
13655 * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
13656 * doc/invoke.texi: Deprecate -mstructure-size-boundary.
13658 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13661 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
13662 Reduce cost estimate for direct moves.
13664 2017-07-23 Uros Bizjak <ubizjak@gmail.com>
13667 * config/i386/i386.c (ix86_option_override_internal): Disable
13668 BMI, BMI2 and TBM instructions for -m16.
13670 2017-07-21 Carl Love <cel@us.ibm.com>
13672 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13673 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
13674 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
13675 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
13676 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
13677 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
13678 VMULOSW): New enum "unspec" values.
13679 (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
13680 altivec_vmulosw): New patterns.
13681 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
13682 VMULOSW): Add definitions.
13684 2017-07-21 Jim Wilson <jim.wilson@linaro.org>
13686 * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
13687 (qdf24xx): Likewise.
13688 * config/aarch64/aarch64-options-extensions.def (rdma); New.
13689 * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
13690 (AARCH64_FL_V8_1): Renumber.
13691 (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
13692 (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
13693 * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
13694 * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add
13695 rdma to feature modifiers list.
13697 2017-07-21 Yury Gribov <tetra2005@gmail.com>
13699 PR middle-end/56727
13700 * ipa-visibility (function_and_variable_visibility): Convert
13701 recursive PLT call to direct call if appropriate.
13703 2017-07-21 Andrew Pinski <apinski@cavium.com>
13705 * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
13706 operand 1 to see if the types precision matches.
13707 * fold-const.c (operand_equal_p): Likewise.
13709 2017-07-21 Richard Biener <rguenther@suse.de>
13711 PR tree-optimization/81303
13712 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
13713 in datarefs vector. Allow NULL dr0 for no peeling cost estimate.
13714 (vect_peeling_hash_get_lowest_cost): Adjust.
13715 (vect_enhance_data_refs_alignment): Likewise. Use
13716 vect_get_peeling_costs_all_drs to compute the penalty for no
13717 peeling to match up costs.
13719 2017-07-21 Richard Biener <rguenther@suse.de>
13721 PR tree-optimization/81500
13722 * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
13723 we didn't identify a reduction path.
13725 2017-07-21 Tom de Vries <tom@codesourcery.com>
13726 Cesar Philippidis <cesar@codesourcery.com>
13728 PR gcov-profile/81442
13729 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
13732 2017-07-21 Tom de Vries <tom@codesourcery.com>
13735 * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
13737 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
13738 nvptx_override_options_after_change.
13740 2017-07-21 Ulrich Drepper <drepper@redhat.com>
13742 * dwarf2out.c (output_file_names): Avoid double testing for
13743 dwarf_version >= 5.
13745 2017-07-21 Georg-Johann Lay <avr@gjlay.de>
13747 * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
13749 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
13751 * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
13753 (try_crossjump_to_edge): Do not punt on partitioned functions.
13755 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
13757 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
13758 Put all BBs reachable only via paths crossing cold region to cold
13760 * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
13762 2016-07-21 Richard Biener <rguenther@suse.de>
13764 PR tree-optimization/81303
13765 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
13766 into account prologue and epilogue iterations when raising
13767 min_profitable_iters to sth at least covering one vector iteration.
13769 2017-07-21 Tamar Christina <tamar.christina@arm.com>
13771 * config/arm/arm.c (arm_test_cpu_arch_dat):
13774 2017-07-20 Nathan Sidwell <nathan@acm.org>
13776 Remove TYPE_METHODS.
13777 * tree.h (TYPE_METHODS): Delete.
13778 * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
13779 * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
13780 (dbxout_type_methods): Scan TYPE_FIELDS.
13781 (dbxout_type): Don't check TYPE_METHODS here.
13782 * function.c (use_register_for_decl): Always ignore register for
13783 class types when not optimizing.
13784 * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
13785 * tree.c (free_lang_data_in_type): Stitch out member functions and
13786 templates from TYPE_FIELDS.
13787 (build_distinct_type_copy, verify_type_variant,
13788 verify_type): Member fns are on TYPE_FIELDS.
13789 * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
13790 * tree-pretty-print.c (dump_generic_node): Likewise.
13792 2017-07-20 Jakub Jelinek <jakub@redhat.com>
13795 * config/i386/i386.c (ix86_expand_vector_init_general): Handle
13796 V2TImode and V4TImode.
13797 (ix86_expand_vector_extract): Likewise.
13798 * config/i386/sse.md (VMOVE): Enable V4TImode even for just
13799 TARGET_AVX512F, instead of only for TARGET_AVX512BW.
13800 (ssescalarmode): Handle V4TImode and V2TImode.
13801 (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
13802 (*vec_extractv2ti, *vec_extractv4ti): New insns.
13803 (VEXTRACTI128_MODE): New mode iterator.
13804 (splitter for *vec_extractv?ti first element): New.
13805 (VEC_INIT_MODE): New mode iterator.
13806 (vec_init<mode>): Consolidate 3 expanders into one using
13807 VEC_INIT_MODE mode iterator.
13809 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
13811 * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
13812 non_spilled_static_chain_regno_p.
13814 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
13816 * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
13818 2017-07-20 Jan Hubicka <hubicka@ucw.cz>
13820 * bb-reorder.c (connect_traces): Allow copying of blocks within
13823 2017-07-20 Richard Biener <rguenther@suse.de>
13825 * gimple.h (gimple_phi_result): Add gphi * overload.
13826 (gimple_phi_result_ptr): Likewise.
13827 (gimple_phi_arg): Likewise. Adjust index assert to only
13828 allow actual argument accesses rather than all slots available
13830 (gimple_phi_arg_def): Add gphi * overload.
13831 * tree-phinodes.c (make_phi_node): Initialize only actual
13833 (resize_phi_node): Clear memory not covered by old node,
13834 do not initialize excess argument slots.
13835 (reserve_phi_args_for_new_edge): Initialize new argument slot
13838 2017-07-20 Bin Cheng <bin.cheng@arm.com>
13840 PR tree-optimization/81388
13842 2016-07-21 Bin Cheng <bin.cheng@arm.com>
13844 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
13845 by removing computation of may_be_zero.
13847 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
13848 Tom de Vries <tom@codesourcery.com>
13850 PR middle-end/81030
13851 * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
13852 when gimple level profile disagrees with what RTL expander did.
13854 2017-07-20 Richard Biener <rguenther@suse.de>
13856 PR tree-optimization/61171
13857 * tree-vectorizer.h (slp_instance): Add reduc_phis member.
13858 (vect_analyze_stmt): Add slp instance parameter.
13859 (vectorizable_reduction): Likewise.
13860 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
13861 (vect_is_simple_reduction): Deal with chains not detected
13862 as SLP reduction chain, specifically not properly associated
13863 chains containing a mix of plus/minus.
13864 (get_reduction_op): Remove.
13865 (get_initial_defs_for_reduction): Simplify, pass in whether
13866 this is a reduction chain, pass in the SLP node for the PHIs.
13867 (vect_create_epilog_for_reduction): Get the SLP instance as
13869 (vectorizable_reduction): Get the SLP instance as arg.
13870 During analysis remember the SLP node with the PHIs in the
13871 instance. Simplify getting at the vectorized reduction PHIs.
13872 * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
13873 through SLP instance.
13874 (vect_slp_analyze_operations): Likewise.
13875 * tree-vect-stms.c (vect_analyze_stmt): Likewise.
13876 (vect_transform_stmt): Likewise.
13878 2017-07-20 Tom de Vries <tom@codesourcery.com>
13880 PR tree-optimization/81489
13881 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
13882 read of phi arg location to before loop that modifies phi.
13884 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
13886 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
13889 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
13891 PR middle-end/81331
13892 * except.c (execute): Fix ordering issue.
13894 2018-07-19 Segher Boessenkool <segher@kernel.crashing.org>
13896 PR rtl-optimization/81423
13897 * combine.c (make_compound_operation_int): Don't try to optimize
13898 the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
13900 2017-07-19 Segher Boessenkool <segher@kernel.crashing.org>
13902 PR rtl-optimization/81423
13903 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
13904 with a constant that is -1 in the truncated to mode.
13906 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
13908 * predict.c (propagate_unlikely_bbs_forward): Break out from ...
13909 (determine_unlikely_bbs): ... here.
13910 * predict.h (propagate_unlikely_bbs_forward): Declare.
13911 * cfgexpand.c (pass_expand::execute): Use it.
13912 * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
13914 (find_rarely_executed_basic_blocks_and_crossing_edges): Use
13915 propagate_unlikely_bbs_forward.
13917 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
13919 PR middle-end/81331
13920 * except.c (maybe_add_nop_after_section_switch): New function.
13923 2017-07-19 Tom de Vries <tom@codesourcery.com>
13925 * gimple.h (gimple_phi_set_arg): Make assert more strict.
13927 2017-07-19 Tom de Vries <tom@codesourcery.com>
13929 * gimple.h (gimple_phi_arg): Make assert more strict.
13931 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org>
13933 * config.gcc (powerpc*-*-*): Add mmintrin.h.
13934 * config/rs6000/mmintrin.h: New file.
13935 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
13937 2017-07-19 Jakub Jelinek <jakub@redhat.com>
13939 PR tree-optimization/81346
13940 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
13942 2017-07-19 Tom de Vries <tom@codesourcery.com>
13944 * config/nvptx/nvptx.md (VECIM): Add V2DI.
13946 2017-07-19 Tom de Vries <tom@codesourcery.com>
13948 * config/nvptx/nvptx-modes.def: Add V2DImode.
13949 * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
13950 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
13951 (nvptx_output_mov_insn): Handle lack of mov.b128.
13952 (nvptx_print_operand): Handle 'H' and 'L' codes.
13953 (nvptx_vector_mode_supported): Allow V2DImode.
13954 (nvptx_preferred_simd_mode): New function.
13955 (nvptx_data_alignment): New function.
13956 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
13957 nvptx_preferred_simd_mode.
13958 * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
13960 (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment.
13962 2017-07-19 Tom de Vries <tom@codesourcery.com>
13964 * config/nvptx/nvptx-modes.def: New file. Add V2SImode.
13965 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
13966 (nvptx_vector_mode_supported): New function. Allow V2SImode.
13967 (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
13968 * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
13969 (mov<VECIM>_insn): New define_insn.
13970 (define_expand "mov<VECIM>): New define_expand.
13972 2017-07-19 Tom de Vries <tom@codesourcery.com>
13974 * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
13976 2017-07-19 Jakub Jelinek <jakub@redhat.com>
13978 PR tree-optimization/81346
13979 * fold-const.h (fold_div_compare, range_check_type): Declare.
13980 * fold-const.c (range_check_type): New function.
13981 (build_range_check): Use range_check_type.
13982 (fold_div_compare): No longer static, rewritten into
13983 a match.pd helper function.
13984 (fold_comparison): Don't call fold_div_compare here.
13985 * match.pd (X / C1 op C2): New optimization using fold_div_compare
13986 as helper function.
13988 2017-07-19 Nathan Sidwell <nathan@acm.org>
13990 * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
13991 (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
13992 * tree.c (find_decls_types_r, verify_type): Use
13993 TYPE_{MIN,MAX}_VALUE_RAW.
13994 * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
13995 (hash_tree): Likewise.
13996 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
13998 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
14001 2017-07-18 Tom de Vries <tom@codesourcery.com>
14003 PR middle-end/81464
14004 * omp-expand.c (expand_omp_for_static_chunk): Handle
14005 equal-argument loop exit phi.
14007 2017-07-18 Uros Bizjak <ubizjak@gmail.com>
14010 * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
14011 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
14012 operand 2 predicate.
14013 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
14014 operand 2 predicate.
14015 (ror,rol -> rorx splitters): Use const_int_operand as
14016 operand 2 predicate.
14018 2017-06-18 Richard Biener <rguenther@suse.de>
14020 PR tree-optimization/81410
14021 * tree-vect-stmts.c (vectorizable_load): Properly adjust for
14022 the gap in the ! slp_perm SLP case after each group.
14024 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
14026 PR middle-end/81463
14027 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
14030 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
14032 PR middle-end/81462
14033 * predict.c (set_even_probabilities): Cleanup; do not affect
14034 probabilities that are already known.
14035 (combine_predictions_for_bb): Call even when count is set.
14037 2017-07-18 Nathan Sidwell <nathan@acm.org>
14039 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
14042 2017-07-18 Bin Cheng <bin.cheng@arm.com>
14045 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
14046 optimization for loop niter analysis.
14048 2017-07-18 Georg-Johann Lay <avr@gjlay.de>
14051 * config/avr/avr.c (avr_optimize_casesi): Don't use
14052 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
14054 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
14056 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
14057 body_cost_vec from _vect_peel_extended_info.
14058 (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
14059 (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
14062 2017-07-18 Bin Cheng <bin.cheng@arm.com>
14064 * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
14066 2017-07-18 Richard Biener <rguenther@suse.de>
14068 PR tree-optimization/80620
14069 PR tree-optimization/81403
14070 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
14071 info when re-using a VN table entry.
14073 2017-07-18 Richard Biener <rguenther@suse.de>
14075 PR tree-optimization/81418
14076 * tree-vect-loop.c (vectorizable_reduction): Properly compute
14077 vectype_in. Verify that with lane-reducing reduction operations
14078 we have a single def-use cycle.
14080 2017-07-17 Carl Love <cel@us.ibm.com>
14082 Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com>
14084 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14085 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
14086 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
14087 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
14088 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
14089 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
14090 VMULOSW): New enum "unspec" values.
14091 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
14092 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
14093 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
14094 altivec_vmulosw): New patterns.
14095 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
14096 VMULOSW): Add definitions.
14097 2017-07-17 Uros Bizjak <ubizjak@gmail.com>
14099 * config/alpha/alpha.c: Include predict.h.
14101 2017-07-17 Yury Gribov <tetra2005@gmail.com>
14103 * tree-vrp.c (compare_assert_loc): Fix comparison function
14104 to return predictable results.
14106 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
14108 * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
14110 (subdi3): Likewise.
14111 * config/arc/arc.opt (mexpand-adddi): Deprecate it.
14112 * doc/invoke.texi (mexpand-adddi): Update text.
14114 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
14116 * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
14117 that also clobbers the CC register. The old expand code is moved
14119 (*arc_clzsi2): ... here.
14120 (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
14121 the CC register. The old expand code is moved to ...
14122 (arc_ctzsi2): ... here.
14124 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
14126 * config/arc/arc.opt (mindexed-loads): Use initial value
14127 TARGET_INDEXED_LOADS_DEFAULT.
14128 (mauto-modify-reg): Use initial value
14129 TARGET_AUTO_MODIFY_REG_DEFAULT.
14130 * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
14131 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
14132 * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
14133 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
14135 2017-07-17 Martin Liska <mliska@suse.cz>
14138 * opts.c (finish_options): Do not allow -fgnu-tm
14139 w/ -fsanitize={kernel-,}address. Say sorry.
14141 2017-07-17 Bin Cheng <bin.cheng@arm.com>
14144 * tree-loop-distribution.c (classify_partition): Only assert on
14145 numer of iterations.
14146 (merge_dep_scc_partitions): Delete prameter. Update function call.
14147 (distribute_loop): Remove code handling loop with unknown niters.
14148 (pass_loop_distribution::execute): Skip loop with unknown niters.
14150 2017-07-17 Bin Cheng <bin.cheng@arm.com>
14153 * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
14154 function sort_partitions_by_post_order.
14156 2017-07-17 Bin Cheng <bin.cheng@arm.com>
14158 PR tree-optimization/81374
14159 * tree-loop-distribution.c (pass_loop_distribution::execute): Record
14160 the max index of basic blocks, rather than number of basic blocks.
14162 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
14164 * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
14166 (arc_legitimate_pic_operand_p): Likewise.
14167 * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
14169 (arc_needs_pcl_p): Likewise.
14170 (arc_legitimate_pc_offset_p): Likewise.
14171 (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
14172 function is also used in constrains.md.
14173 (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
14174 validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
14175 PLUS. Only return true/false in known cases, otherwise assert.
14176 (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
14177 is already called in arc_legitimate_constant_p.
14178 * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
14180 (LEGITIMATE_PIC_OPERAND_P): Use
14181 arc_raw_symbolic_reference_mentioned_p function.
14182 * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
14187 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
14188 Andrew Burgess <andrew.burgess@embecosm.com>
14190 * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
14191 (arc_return_address_register): New function.
14192 * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
14193 (arc_handle_fndecl_attribute): Add naked attribute.
14194 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
14195 (TARGET_WARN_FUNC_RETURN): Likewise.
14196 (arc_allocate_stack_slots_for_args): New function.
14197 (arc_warn_func_return): Likewise.
14198 (machine_function): Change type fn_type.
14199 (arc_compute_function_type): Consider new naked function type,
14200 change function return type.
14201 (arc_must_save_register): Adapt to handle new
14202 arc_compute_function_type's return type.
14203 (arc_expand_prologue): Likewise.
14204 (arc_expand_epilogue): Likewise.
14205 (arc_return_address_regs): Delete.
14206 (arc_return_address_register): New function.
14207 (arc_epilogue_uses): Use above function.
14208 * config/arc/arc.h (arc_return_address_regs): Delete prototype.
14209 (arc_function_type): Change encoding, add naked type.
14210 (ARC_INTERRUPT_P): Change to handle the new encoding.
14211 (ARC_FAST_INTERRUPT_P): Likewise.
14212 (ARC_NORMAL_P): Define.
14213 (ARC_NAKED_P): Likewise.
14214 (arc_compute_function_type): Delete prototype.
14215 * config/arc/arc.md (in_ret_delay_slot): Use
14216 arc_return_address_register function.
14217 (simple_return): Likewise.
14218 (p_return_i): Likewise.
14220 2017-07-17 Jakub Jelinek <jakub@redhat.com>
14222 PR tree-optimization/81428
14223 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
14224 can't be built for those types.
14226 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
14228 Remove stuff dead since r239246.
14230 * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
14231 * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
14232 (avr_inform_devices): Remove dead stuff.
14234 2017-07-17 Tamar Christina <tamar.christina@arm.com>
14236 * config/arm/arm_neon.h: Fix softp typo.
14238 2017-07-17 Jakub Jelinek <jakub@redhat.com>
14240 PR tree-optimization/81365
14241 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
14242 aggregate moves onto bb predecessor edges, make sure there are no
14243 loads that could alias the lhs in between the start of bb and the
14246 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
14249 * config/avr/avr.c (avr_mul_highpart_cost): New static function.
14250 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
14251 [LSHIFTRT, outer_code = TRUNCATE]: Same.
14253 2017-07-17 Jakub Jelinek <jakub@redhat.com>
14255 PR tree-optimization/81396
14256 * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
14257 (init_symbolic_number): Initialize it to 1.
14258 (perform_symbolic_merge): Add n_ops from both operands into the new
14260 (find_bswap_or_nop): Don't consider n->n == cmpnop computations
14261 without base_addr as useless if they need more than one operation.
14262 (bswap_replace): Handle !bswap case for NULL base_addr.
14264 2017-07-17 Tom de Vries <tom@codesourcery.com>
14267 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
14270 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
14272 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
14273 conditional builtin define __FIX_LEON3FT_B2BST.
14275 2017-07-17 Daniel Cederman <cederman@gaisler.com>
14277 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
14278 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
14281 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
14283 PR rtl-optimization/81424
14284 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
14285 to remove potential trapping from operands if -fnon-call-exceptions.
14287 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
14289 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
14290 profile_proability for scalling.
14291 * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
14293 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
14295 * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
14297 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
14299 * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
14300 fixpoint arithmetics.
14302 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
14304 * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
14305 fixpoint arithmetics.
14307 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
14309 * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
14310 fixpoint arithmetics.
14312 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
14314 * profile-count.h (profile_probability::from_reg_br_prob_note,
14315 profile_probability::to_reg_br_prob_note): New functions.
14316 * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
14317 * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
14318 * predict.c (probability_reliable_p): Update.
14319 (edge_probability_reliable_p): Update.
14320 (br_prob_note_reliable_p): Update.
14321 (invert_br_probabilities): Update.
14322 (add_reg_br_prob_note): New function.
14323 (combine_predictions_for_insn): Update.
14324 * asan.c (asan_clear_shadow): Update.
14325 * cfgbuild.c (compute_outgoing_frequencies): Update.
14326 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
14327 (update_br_prob_note): Update.
14328 (rtl_verify_edges): Update.
14329 (purge_dead_edges): Update.
14330 (fixup_reorder_chain): Update.
14331 * emit-rtl.c (try_split): Update.
14332 * ifcvt.c (cond_exec_process_insns): Update.
14333 (cond_exec_process_if_block): Update.
14334 (dead_or_predicable): Update.
14335 * internal-fn.c (expand_addsub_overflow): Update.
14336 (expand_neg_overflow): Update.
14337 (expand_mul_overflow): Update.
14338 * loop-doloop.c (doloop_modify): Update.
14339 * loop-unroll.c (compare_and_jump_seq): Update.
14340 * optabs.c (emit_cmp_and_jump_insn_1): Update.
14341 * predict.h: Update.
14342 * reorg.c (mostly_true_jump): Update.
14344 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
14345 * config/alpha/alpha.c (emit_unlikely_jump): Update.
14346 * config/arc/arc.c: (emit_unlikely_jump): Update.
14347 * config/arm/arm.c: (emit_unlikely_jump): Update.
14348 * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
14349 * config/frv/frv.c (frv_print_operand_jump_hint): Update.
14350 * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
14351 (ix86_print_operand): Update.
14352 (ix86_split_fp_branch): Update.
14353 (predict_jump): Update.
14354 * config/ia64/ia64.c (ia64_print_operand): Update.
14355 * config/mmix/mmix.c (mmix_print_operand): Update.
14356 * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
14357 (rs6000_expand_split_stack_prologue): Update.
14358 * config/rs6000/rs6000.c: Update.
14359 * config/s390/s390.c (s390_expand_vec_strlen): Update.
14360 (s390_expand_vec_movstr): Update.
14361 (s390_expand_cs_tdsi): Update.
14362 (s390_expand_split_stack_prologue): Update.
14363 * config/sh/sh.c (sh_print_operand): Update.
14364 (expand_cbranchsi4): Update.
14365 (expand_cbranchdi4): Update.
14366 * config/sparc/sparc.c (output_v9branch): Update.
14367 * config/spu/spu.c (get_branch_target): Update.
14368 (ea_load_store_inline): Update.
14369 * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
14370 * config/tilepro/tilepro.c: Update.
14372 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
14374 * gimplify.c (mostly_copy_tree_r): Revert latest change.
14375 (gimplify_save_expr): Likewise.
14377 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
14379 * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
14381 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
14383 * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
14385 * timevar.def (TV_IPA_FNSUMMARY): Define.
14387 2017-07-16 Daniel Cederman <cederman@gaisler.com>
14389 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
14390 to back store errata sensitive sequence from being generated.
14391 (sqrtdf2_fix): Likewise.
14393 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
14395 * tree-ssa-threadupdate.c (compute_path_counts,
14396 update_joiner_offpath_counts): Use profile_probability.
14398 2017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
14401 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
14403 * config/arm/arm-c.c (arm_cpu_builtins): Define
14404 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
14406 2017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org>
14408 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14409 array entries to represent __ieee128 versions of the
14410 scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
14411 scalar_extract_sig, and scalar_insert_exp built-in functions.
14412 (altivec_resolve_overloaded_builtin): Add special case handling
14413 for the __builtin_scalar_insert_exp function, as represented by
14414 the P9V_BUILTIN_VEC_VSIEDP constant.
14415 * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
14416 exponent support for __ieee128 argument.
14417 (VSESQP): Add scalar extract signature support for __ieee128
14419 (VSTDCNQP): Add scalar test negative support for __ieee128
14421 (VSIEQP): Add scalar insert exponent support for __int128 argument
14422 with __ieee128 result.
14423 (VSIEQPF): Add scalar insert exponent support for __ieee128
14424 argument with __ieee128 result.
14425 (VSTDCQP): Add scalar test data class support for __ieee128
14427 (VSTDCNQP): Add overload support for scalar test negative with
14428 __ieee128 argument.
14429 (VSTDCQP): Add overload support for scalar test data class
14430 __ieee128 argument.
14431 * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
14432 UNSPEC_VSX_SXSIGDP.
14433 (UNSPEC_VSX_SIEXPQP): New constant.
14434 (xsxexpqp): New insn for VSX scalar extract exponent quad
14436 (xsxsigqp): New insn for VSX scalar extract significand quad
14438 (xsiexpqpf): New insn for VSX scalar insert exponent quad
14439 precision with floating point argument.
14440 (xststdcqp): New expand for VSX scalar test data class quad
14442 (xststdcnegqp): New expand for VSX scalar test negative quad
14444 (xststdcqp): New insn to match expansions for VSX scalar test data
14445 class quad precision and VSX scalar test negative quad precision.
14446 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
14447 special case operand checking to enforce that second operand of
14448 VSX scalar test data class with quad precision argument is a 7-bit
14450 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
14451 prototypes and descriptions of __ieee128 versions of
14452 scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
14453 scalar_test_data_class, and scalar_test_neg built-in functions.
14455 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14457 PR tree-optimization/81162
14458 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
14459 replace a negate with an add.
14461 2017-07-14 James Greenhalgh <james.greenhalgh@arm.com>
14463 * doc/invoke.texi (arm/-mcpu): Document +crypto.
14465 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
14467 * config/arm/arm-c.c (arm_cpu_builtins): Define
14468 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
14470 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
14472 * config/arm/arm-cpus.in (cortex-r52): Add new entry.
14473 (armv8-r): Set ARM Cortex-R52 as default CPU.
14474 * config/arm/arm-tables.opt: Regenerate.
14475 * config/arm/arm-tune.md: Regenerate.
14476 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
14478 * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
14479 extension for -mcpu=cortex-r52.
14481 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
14483 * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
14484 (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
14485 * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
14486 (fp-armv8): Define it as FP_ARMv8 only.
14487 config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
14488 (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
14490 config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
14491 TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
14492 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
14493 first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
14494 than TARGET_FPU_ARMV8.
14495 * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
14496 __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
14497 * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
14499 * config/arm/neon.md (neon_vrint): Likewise.
14500 (neon_vcvt): Likewise.
14501 (neon_<fmaxmin_op><mode>): Likewise.
14502 (<fmaxmin><mode>3): Likewise.
14503 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
14504 * config/arm/predicates.md (arm_cond_move_operator): Check against
14505 TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
14507 2017-07-14 Jackson Woodruff <jackson.woodruff@arm.com>
14509 * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
14510 to top of function.
14512 2017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14514 * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
14515 loop in comment with memset.
14517 2017-07-14 Martin Liska <mliska@suse.cz>
14519 * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
14520 * dwarf2out.c (is_java): Remove the function.
14521 (output_pubname): Remove usage of the function.
14522 (lower_bound_default): Remove usage of DW_LANG_Java.
14523 (gen_compile_unit_die): Likewise.
14524 * gcc.c: Remove compiler defaults for .java and .zip files.
14525 * gimple-expr.c (remove_suffix): Change as there's no longer
14526 extension than 4-letter one.
14527 * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
14528 (gimplify_save_expr): Likewise.
14529 * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
14530 as it's possible even for other languages than Java.
14531 * langhooks.h (struct lang_hooks): Remove Java from a comment.
14532 * lto-opts.c (lto_write_options): Remove reference to Java.
14533 * opts.c (strip_off_ending): Update file extension handling.
14534 * tree-cfg.c (verify_gimple_call): Remove comment with Java.
14535 * tree-eh.c (lower_resx): Likewise.
14536 * tree.c (free_lang_data_in_type): Remove dead code.
14537 (find_decls_types_r): Likewise.
14538 (build_common_builtin_nodes): Remove Java from a comment.
14539 (verify_type): Remove dead code.
14540 * varasm.c (assemble_external): Remove Java from a comment.
14542 2017-07-14 Martin Liska <mliska@suse.cz>
14544 * opts.c (finish_options): Add quotes.
14545 (common_handle_option): Likewise.
14547 2017-07-14 Martin Liska <mliska@suse.cz>
14549 * dbxout.c (get_lang_number): Do not handle GNU Pascal.
14550 * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
14551 Remove N_SO_PASCAL.
14552 * dwarf2out.c (lower_bound_default): Do not handle
14554 (gen_compile_unit_die): Likewise.
14555 * gcc.c: Remove default extension binding for GNU Pascal.
14556 * stmt.c: Remove Pascal language from a comment.
14557 * xcoffout.c: Likewise.
14559 2017-07-13 David Malcolm <dmalcolm@redhat.com>
14562 * diagnostic-show-locus.c (fixit_cmp): New function.
14563 (layout::layout): Sort m_fixit_hints.
14564 (column_range::column_range): Assert that the values are valid.
14565 (struct char_span): New struct.
14566 (correction::overwrite): New method.
14567 (struct source_line): New struct.
14568 (line_corrections::add_hint): Add assertions. Reimplement memcpy
14569 calls in terms of classes source_line and char_span, and
14570 correction::overwrite.
14571 (selftest::test_overlapped_fixit_printing_2): New function.
14572 (selftest::diagnostic_show_locus_c_tests): Call it.
14574 2017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com>
14576 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
14577 early if there is no lhs.
14579 2017-07-13 Martin Liska <mliska@suse.cz>
14581 * dwarf2out.c (gen_pointer_type_die): Remove dead code.
14582 (gen_reference_type_die): Likewise.
14583 * stor-layout.c: Remove Pascal-related comment.
14585 2017-07-13 Martin Liska <mliska@suse.cz>
14587 * opts.c (finish_options): Add quotes to error messages.
14588 (parse_sanitizer_options): Likewise.
14590 2017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
14592 * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
14594 2017-07-13 Richard Earnshaw <rearnsha@arm.com>
14596 * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
14598 2017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com>
14600 * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
14602 * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
14604 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
14607 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
14608 provides the hardware capability bits, define the macro
14609 __BUILTIN_CPU_SUPPORTS__.
14610 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
14611 if GLIBC does not provide the hardware capability bits. Add a
14612 gcc_unreachable call if the built-in cpu function is neither
14613 __builtin_cpu_is nor __builtin_cpu_supports.
14614 (rs6000_get_function_versions_dispatcher): Change the warning
14615 that an old GLIBC is used which does not export the capability
14616 bits to be an error.
14617 * doc/extend.texi (target_clones attribute): Document the
14618 restriction that GLIBC 2.23 or newer is needed on the PowerPC.
14619 (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
14620 needed by __builtin_cpu_is and __builtin_cpu_supports. Document
14621 the macros defined by GCC if the newer GLIBC is available.
14623 2017-07-12 Jeff Law <law@redhat.com>
14625 * config/riscv/riscv.c: Remove unnecessary includes. Reorder
14626 remaining includes slightly.
14627 * config/riscv/riscv-builtins.c: Include profile-count.h.
14629 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
14632 * config/avr/avr.c (avr_set_current_function): In diagnostic
14633 messages: Quote keywords and (parts of) identifiers.
14634 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
14637 2017-07-12 Carl Love <cel@us.ibm.com>
14639 * config/rs6000/rs6000-c.c: Add support for built-in functions
14640 vector bool char vec_revb (vector bool char);
14641 vector bool short vec_revb (vector short char);
14642 vector bool int vec_revb (vector bool int);
14643 vector bool long long vec_revb (vector bool long long);
14644 * doc/extend.texi: Update the built-in documentation file for the
14645 new built-in functions.
14647 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14649 * config/s390/s390.md: Remove movcc splitter.
14651 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14653 * config/s390/s390.c (s390_rtx_costs): Return proper costs for
14654 load/store on condition.
14656 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
14659 * config/avr/avr.c (avr_encode_section_info)
14660 [progmem && !TREE_READONLY]: Error if progmem object needs
14663 2017-07-11 Michael Collison <michael.collison@arm.com>
14665 * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
14668 2017-07-11 Carl Love <cel@us.ibm.com>
14670 * config/rs6000/rs6000-c.c: Add support for builtins
14671 vector unsigned int vec_parity_lsbb (vector signed int);
14672 vector unsigned int vec_parity_lsbb (vector unsigned int);
14673 vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
14674 vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
14675 vector unsigned long long vec_parity_lsbb (vector signed long long);
14676 vector unsigned long long vec_parity_lsbb (vector unsigned long long);
14677 * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
14678 * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
14679 * doc/extend.texi: Update the built-in documentation file for the
14680 new built-in functions.
14682 2017-07-11 David Malcolm <dmalcolm@redhat.com>
14684 * diagnostic-show-locus.c: Include "gcc-rich-location.h".
14685 (layout::m_primary_loc): New field.
14686 (layout::layout): Initialize new field. Move location filtering
14687 logic from here to...
14688 (layout::maybe_add_location_range): ...this new method. Add
14689 support for filtering to just the lines already specified by other
14691 (layout::will_show_line_p): New method.
14692 (gcc_rich_location::add_location_if_nearby): New method.
14693 (selftest::test_add_location_if_nearby): New test function.
14694 (selftest::diagnostic_show_locus_c_tests): Call it.
14695 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
14698 2017-07-11 Tom de Vries <tom@codesourcery.com>
14700 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
14701 (bb_first_real_insn): New function.
14702 (nvptx_single): Add extra initialization of broadcasted condition
14705 2017-07-11 Nathan Sidwell <nathan@acm.org>
14707 * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
14709 2017-07-11 Georg-Johann Lay <avr@gjlay.de>
14711 * doc/extend.texi (AVR Function Attributes): Remove weblink to
14712 Binutils doc as TEXI will mess them up.
14713 * doc/invoke.texi (AVR Options): Same here.
14715 2017-07-11 Daniel Cederman <cederman@gaisler.com>
14717 * config/sparc/sparc.opt (mfix-ut700): New option.
14718 (mfix-gr712rc): Likewise.
14719 (sparc_fix_b2bst): New variable.
14720 * doc/invoke.texi (SPARC options): Document them.
14721 (ARM options): Fix warnings.
14722 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
14723 instructions to prevent sequences that can trigger the store-store
14724 errata for certain LEON3FT processors.
14725 (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
14726 (sparc_option_override): Set sparc_fix_b2bst appropriately.
14727 * config/sparc/sparc.md (fix_b2bst): New attribute.
14728 (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
14730 2017-07-10 Uros Bizjak <ubizjak@gmail.com>
14733 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
14735 (*rsqrtsf2_sse): Ditto.
14737 (div<mode>3): Macroize insn from divdf3 and divsf3
14738 using MODEF mode iterator.
14740 2017-07-10 Martin Sebor <msebor@redhat.com>
14742 PR tree-optimization/80397
14743 * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
14744 instead of testing for equality to INTEGER_TYPE.
14746 2017-07-10 Vineet Gupta <vgupta@synopsys.com>
14748 * config.gcc: Remove uclibc from arc target spec.
14750 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com>
14752 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
14754 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
14757 * lto-wrapper.c (remove_option): New function.
14758 (merge_and_complain): Merge PIC/PIE options more realistically.
14760 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
14762 Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
14766 * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
14767 (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it.
14768 * config.in: Regenerate.
14769 * configure: Regenerate.
14770 * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
14771 * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
14772 * config/avr/avr.opt (-mgas-isr-prologues): New option and...
14773 (TARGET_GASISR_PROLOGUES): ...target mask.
14774 * common/config/avr/avr-common.c
14775 (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
14776 Set -mgas-isr-prologues.
14777 * config/avr/avr-passes.def (avr_pass_pre_proep): Add
14778 INSERT_PASS_BEFORE for it.
14779 * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
14780 * config/avr/avr.c (avr_option_override)
14781 [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
14782 (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
14783 (avr_attribute_table) <no_gccisr>: Add new function attribute.
14784 (avr_set_current_function) <is_no_gccisr>: Init machine field.
14785 (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
14787 (make_avr_pass_pre_proep): New function.
14788 (emit_push_sfr) <treg>: Add argument to function and use it
14789 instead of TMP_REG.
14790 (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
14791 and set machine->gasisr.yes.
14792 (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
14793 (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
14794 __gcc_isr.n_pushed to .L__stack_usage.
14795 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
14796 (avr_asm_final_postscan_insn): ...this new static function.
14797 * config/avr/avr.h (machine_function)
14798 <is_no_gccisr, use_L__stack_usage>: New fields.
14799 <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
14800 * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
14801 (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
14802 (gasisr, *gasisr): New expander and insn.
14803 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
14804 [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
14805 * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
14807 2017-07-10 Richard Earnshaw <rearnsha@arm.com>
14809 * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
14812 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
14814 Move jump-tables out of .text again.
14817 * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
14818 (ASM_OUTPUT_ADDR_VEC): New function.
14819 (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
14820 (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
14821 INSN_ADDRESSes as asm comment.
14822 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
14823 (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
14824 (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
14825 * config/avr/avr.md (*tablejump): Adjust comment.
14826 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
14827 * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
14829 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
14830 (avr_output_addr_vec): New proto.
14831 (avr_log_t) <insn_addresses>: New field.
14833 2017-07-09 H.J. Lu <hongjiu.lu@intel.com>
14836 * config/i386/i386.c (ix86_function_arg_advance): Set
14837 outgoing_args_on_stack to true if there are outgoing arguments
14839 (ix86_function_arg): Likewise.
14840 (ix86_get_drap_rtx): Use DRAP only if there are outgoing
14841 arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
14842 * config/i386/i386.h (machine_function): Add
14843 outgoing_args_on_stack.
14845 2017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com>
14847 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
14848 supporting pthreds.
14849 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
14851 2017-07-08 Richard Sandiford <richard.sandiford@linaro.org>
14853 * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
14854 (REAL_H): Remove $(MACHMODE_H).
14855 (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
14857 (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
14858 $(MACHMODE_H) and double-int.h.
14859 (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
14861 (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
14864 2017-07-07 Andrew Pinski <apinski@cavium.com>
14866 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
14867 prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
14869 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
14871 * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
14872 Add warning if GCC was not configured to link against a GLIBC that
14873 exports the hardware capability bits.
14874 (make_resolver_func): Make resolver function private and not a
14875 COMDAT function. Create the name with clone_function_name instead
14876 of make_unique_name.
14879 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
14880 correct operand in doing the split.
14882 2017-07-07 Carl Love <cel@us.ibm.com>
14884 * config/rs6000/rs6000-c: Add support for built-in function
14885 vector unsigned short vec_pack_to_short_fp32 (vector float,
14887 * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
14888 BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
14889 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
14890 * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
14891 (convert_4f32_8i16): Add define_expand.
14892 * doc/extend.texi: Update the built-in documentation file for the
14893 new built-in function.
14895 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14897 * config/sparc/m8.md: New file.
14898 * config/sparc/sparc.md: Include m8.md.
14900 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14902 * config/sparc/sparc.opt: New option -mvis4b.
14903 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
14904 (sparc_option_override): Handle VIS4B.
14905 (enum sparc_builtins): Define
14906 SPARC_BUILTIN_DICTUNPACK{8,16,32},
14907 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
14908 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
14909 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
14910 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
14911 (check_constant_argument): New function.
14912 (sparc_vis_init_builtins): Define builtins
14913 __builtin_vis_dictunpack{8,16,32},
14914 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
14915 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
14916 __builtin_vis_fpcmpde{8,16,32}shl and
14917 __builtin_vis_fpcmpur{8,16,32}shl.
14918 (sparc_expand_builtin): Check that the constant operands to
14919 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
14920 constant and in range.
14921 * config/sparc/sparc-c.c (sparc_target_macros): Handle
14923 * config/sparc/sparc.h (SPARC_IMM2_P): Define.
14924 (SPARC_IMM5_P): Likewise.
14925 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
14926 (enabled): Handle vis4b.
14927 (UNSPEC_DICTUNPACK): New unspec.
14928 (UNSPEC_FPCMPSHL): Likewise.
14929 (UNSPEC_FPUCMPSHL): Likewise.
14930 (UNSPEC_FPCMPDESHL): Likewise.
14931 (UNSPEC_FPCMPURSHL): Likewise.
14932 (cpu_feature): New CPU feature `vis4b'.
14933 (dictunpack{8,16,32}): New insns.
14934 (FPCSMODE): New mode iterator.
14935 (fpcscond): New code iterator.
14936 (fpcsucond): Likewise.
14937 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
14938 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
14939 (fpcmpde{8,16,32}{si,di}shl): Likewise.
14940 (fpcmpur{8,16,32}{si,di}shl): Likewise.
14941 * config/sparc/constraints.md: Define constraints `q' for unsigned
14942 2-bit integer constants and `t' for unsigned 5-bit integer
14944 * config/sparc/predicates.md (imm5_operand_dictunpack8): New
14946 (imm5_operand_dictunpack16): Likewise.
14947 (imm5_operand_dictunpack32): Likewise.
14948 (imm2_operand): Likewise.
14949 * doc/invoke.texi (SPARC Options): Document -mvis4b.
14950 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
14951 ditunpack* and fpcmp*shl builtins.
14953 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14955 * config.gcc: Handle m8 in --with-{cpu,tune} options.
14956 * config.in: Add HAVE_AS_SPARC6 define.
14957 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
14959 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
14961 (ASM_CPU32_DEFAUILT_SPEC): Likewise.
14962 (CPP_CPU_SPEC): Handle m8.
14963 (ASM_CPU_SPEC): Likewise.
14964 * config/sparc/sparc-opts.h (enum processor_type): Add
14966 * config/sparc/sparc.c (m8_costs): New struct.
14967 (sparc_option_override): Handle TARGET_CPU_m8.
14968 (sparc32_initialize_trampoline): Likewise.
14969 (sparc64_initialize_trampoline): Likewise.
14970 (sparc_issue_rate): Likewise.
14971 (sparc_register_move_cost): Likewise.
14972 * config/sparc/sparc.h (TARGET_CPU_m8): Define.
14973 (CPP_CPU64_DEFAULT_SPEC): Define for M8.
14974 (ASM_CPU64_DEFAULT_SPEC): Likewise.
14975 (CPP_CPU_SPEC): Handle M8.
14976 (ASM_CPU_SPEC): Likewise.
14977 (AS_M8_FLAG): Define.
14978 * config/sparc/sparc.md: Add m8 to the cpu attribute.
14979 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
14980 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
14982 * configure: Regenerate.
14983 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
14986 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
14988 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
14990 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
14991 ("*movdi_insn_sp32"): Do not set v3pipe.
14992 ("*movsi_insn"): Likewise.
14993 ("*movdi_insn_sp64"): Likewise.
14994 ("*movsf_insn"): Likewise.
14995 ("*movdf_insn_sp32"): Likewise.
14996 ("*movdf_insn_sp64"): Likewise.
14997 ("*zero_extendsidi2_insn_sp64"): Likewise.
14998 ("*sign_extendsidi2_insn"): Likewise.
14999 ("*mov<VM32:mode>_insn"): Likewise.
15000 ("*mov<VM64:mode>_insn_sp64"): Likewise.
15001 ("*mov<VM64:mode>_insn_sp32"): Likewise.
15002 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
15003 ("<vlop:code><VL:mode>3"): Likewise.
15004 ("*not_<vlop:code><VL:mode>3"): Likewise.
15005 ("*nand<VL:mode>_vis"): Likewise.
15006 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
15007 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
15008 ("one_cmpl<VL:mode>2"): Likewise.
15009 ("faligndata<VM64:mode>_vis"): Likewise.
15010 ("alignaddrsi_vis"): Likewise.
15011 ("alignaddrdi_vis"): Likweise.
15012 ("alignaddrlsi_vis"): Likewise.
15013 ("alignaddrldi_vis"): Likewise.
15014 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
15015 ("bmaskdi_vis"): Likewise.
15016 ("bmasksi_vis"): Likewise.
15017 ("bshuffle<VM64:mode>_vis"): Likewise.
15018 ("cmask8<P:mode>_vis"): Likewise.
15019 ("cmask16<P:mode>_vis"): Likewise.
15020 ("cmask32<P:mode>_vis"): Likewise.
15021 ("pdistn<P:mode>_vis"): Likewise.
15022 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
15024 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
15026 * config/sparc/sparc.md ("subtype"): New insn attribute.
15027 ("*wrgsr_sp64"): Set insn subtype.
15028 ("*rdgsr_sp64"): Likewise.
15029 ("alignaddrsi_vis"): Likewise.
15030 ("alignaddrdi_vis"): Likewise.
15031 ("alignaddrlsi_vis"): Likewise.
15032 ("alignaddrldi_vis"): Likewise.
15033 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
15034 ("fexpand_vis"): Likewise.
15035 ("fpmerge_vis"): Likewise.
15036 ("faligndata<VM64:mode>_vis"): Likewise.
15037 ("bshuffle<VM64:mode>_vis"): Likewise.
15038 ("cmask8<P:mode>_vis"): Likewise.
15039 ("cmask16<P:mode>_vis"): Likewise.
15040 ("cmask32<P:mode>_vis"): Likewise.
15041 ("fchksm16_vis"): Likewise.
15042 ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
15043 ("fmean16_vis"): Likewise.
15044 ("fp<plusminus_insn>64_vis"): Likewise.
15045 ("<plusminus_insn>v8qi3"): Likewise.
15046 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
15047 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
15048 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
15049 ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
15050 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
15051 ("*movqi_insn"): Likewise.
15052 ("*movhi_insn"): Likewise.
15053 ("*movsi_insn"): Likewise.
15054 ("movsi_pic_gotdata_op"): Likewise.
15055 ("*movdi_insn_sp32"): Likewise.
15056 ("*movdi_insn_sp64"): Likewise.
15057 ("movdi_pic_gotdata_op"): Likewise.
15058 ("*movsf_insn"): Likewise.
15059 ("*movdf_insn_sp32"): Likewise.
15060 ("*movdf_insn_sp64"): Likewise.
15061 ("*zero_extendhisi2_insn"): Likewise.
15062 ("*zero_extendqihi2_insn"): Likewise.
15063 ("*zero_extendqisi2_insn"): Likewise.
15064 ("*zero_extendqidi2_insn"): Likewise.
15065 ("*zero_extendhidi2_insn"): Likewise.
15066 ("*zero_extendsidi2_insn_sp64"): Likewise.
15067 ("ldfsr"): Likewise.
15068 ("prefetch_64"): Likewise.
15069 ("prefetch_32"): Likewise.
15070 ("tie_ld32"): Likewise.
15071 ("tie_ld64"): Likewise.
15072 ("*tldo_ldub_sp32"): Likewise.
15073 ("*tldo_ldub1_sp32"): Likewise.
15074 ("*tldo_ldub2_sp32"): Likewise.
15075 ("*tldo_ldub_sp64"): Likewise.
15076 ("*tldo_ldub1_sp64"): Likewise.
15077 ("*tldo_ldub2_sp64"): Likewise.
15078 ("*tldo_ldub3_sp64"): Likewise.
15079 ("*tldo_lduh_sp32"): Likewise.
15080 ("*tldo_lduh1_sp32"): Likewise.
15081 ("*tldo_lduh_sp64"): Likewise.
15082 ("*tldo_lduh1_sp64"): Likewise.
15083 ("*tldo_lduh2_sp64"): Likewise.
15084 ("*tldo_lduw_sp32"): Likewise.
15085 ("*tldo_lduw_sp64"): Likewise.
15086 ("*tldo_lduw1_sp64"): Likewise.
15087 ("*tldo_ldx_sp64"): Likewise.
15088 ("*mov<VM32:mode>_insn"): Likewise.
15089 ("*mov<VM64:mode>_insn_sp64"): Likewise.
15090 ("*mov<VM64:mode>_insn_sp32"): Likewise.
15092 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
15094 * config/sparc/sparc.md ("type"): New insn type viscmp.
15095 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
15097 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
15098 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
15099 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
15100 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
15102 ("n7_vis_logical_11cycle"): Likewise.
15103 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
15104 * config/sparc/niagara2.md ("niag3_vis": Likewise.
15105 * config/sparc/niagara.md ("niag_vis"): Likewise.
15106 * config/sparc/ultra3.md ("us3_fga"): Likewise.
15107 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
15109 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
15111 * config/sparc/sparc.md: New instruction type `bmask'.
15112 (bmaskdi_vis): Use the `bmask' type.
15113 (bmasksi_vis): Likewise.
15114 * config/sparc/ultra3.md (us3_array): Likewise.
15115 * config/sparc/niagara7.md (n7_array): Likewise.
15116 * config/sparc/niagara4.md (n4_array): Likewise.
15117 * config/sparc/niagara2.md (niag2_vis): Likewise.
15118 (niag3_vis): Likewise.
15119 * config/sparc/niagara.md (niag_vis): Likewise.
15121 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
15123 * ipa-comdats.c: Remove optimize check from gate.
15124 * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
15125 for functions not optimized.
15126 (ipa_fn_summary_read): Skip optimize check.
15127 (ipa_fn_summary_write): Likewise.
15128 * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
15130 * ipa-inline.c (can_inline_edge_p): Not optimized functions are
15132 (can_inline_edge_p): Check flag_pcc_struct_return for match.
15133 (check_callers): Give up on caller which is not optimized.
15134 (inline_small_functions): Likewise.
15135 (ipa_inline): Do not give up when not optimizing.
15136 * ipa-visbility.c (function_and_variable_visibility): Do not optimize
15137 away unoptimizes cdtors.
15138 (whole_program_function_and_variable_visibility): Do
15139 ipa_discover_readonly_nonaddressable_vars in LTO mode.
15140 * ipa.c (process_references): Do not check optimize.
15141 (symbol_table::remove_unreachable_nodes): Update optimize check.
15142 (set_writeonly_bit): Update optimize check.
15143 (pass_ipa_cdtor_merge::gate): Do not check optimize.
15144 (pass_ipa_single_use::gate): Remove.
15146 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
15148 * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
15149 insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
15150 rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
15151 mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
15152 permute_load, permute_store, adjust_extract, adjust_splat,
15153 adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
15154 replace_swap_with_copy, dump_swap_insn_table,
15155 alignment_with_canonical_addr, alignment_mask, find_alignment_op,
15156 recombine_lvx_pattern, recombine_stvx_pattern,
15157 recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
15158 make_pass_analyze_swaps): Move all code related to p8 swap optimizations
15159 to file rs6000-p8swap.c.
15160 * config/rs6000/rs6000-p8swap.c: New file.
15161 * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
15162 * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
15163 and rs6000*-*-* targets.
15165 2017-07-06 David Malcolm <dmalcolm@redhat.com>
15167 * Makefile.in (selftest): Remove dependency on s-selftest-c++.
15169 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
15171 * lto-wrapper.c (merge_and_complain): Do not merge
15172 fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
15173 fsigned_zeros, ftrapping_math, fwrapv.
15174 (append_compiler_options): Do not track these options.
15175 (append_linker_options): Likewie
15177 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
15179 * cgraphunit.c (cgraph_node::finalize_function): When
15180 !flag_toplevel_reorde set no_reorder flag.
15181 (varpool_node::finalize_decl): Likewise.
15182 (symbol_table::compile): Drop no toplevel reorder path.
15184 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
15186 * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
15187 edges; zero probability is not better than uninitialized.
15189 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
15191 * asan.h (asan_sanitize_allocas_p): Declare.
15192 * asan.c (asan_sanitize_allocas_p): New function.
15193 (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
15194 (handle_builtin_alloca): Likewise.
15195 * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
15196 if !asan_sanitize_allocas_p.
15197 * params.def (asan-instrument-allocas): Add new option.
15198 * params.h (ASAN_PROTECT_ALLOCAS): Define.
15199 * opts.c (common_handle_option): Disable allocas sanitization for
15202 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
15204 * asan.c: Include gimple-fold.h.
15205 (get_last_alloca_addr): New function.
15206 (handle_builtin_stackrestore): Likewise.
15207 (handle_builtin_alloca): Likewise.
15208 (asan_emit_allocas_unpoison): Likewise.
15209 (get_mem_refs_of_builtin_call): Add new parameter, remove const
15210 quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
15211 BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
15212 (instrument_builtin_call): Pass gimple iterator to
15213 get_mem_refs_of_builtin_call.
15214 (last_alloca_addr): New global.
15215 * asan.h (asan_emit_allocas_unpoison): Declare.
15216 * builtins.c (expand_asan_emit_allocas_unpoison): New function.
15217 (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
15218 * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
15219 if function calls alloca.
15220 * gimple-fold.c (replace_call_with_value): Remove static keyword.
15221 * gimple-fold.h (replace_call_with_value): Declare.
15222 * internal-fn.c: Include asan.h.
15223 * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
15224 BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
15226 2017-07-06 David Malcolm <dmalcolm@redhat.com>
15228 * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
15229 (C_SELFTEST_FLAGS): New.
15230 (CPP_SELFTEST_FLAGS): New.
15231 (SELFTEST_DEPS): New, from deps of s-selftest.
15232 (C_SELFTEST_DEPS): New, from deps of s-selftest.
15233 (CPP_SELFTEST_DEPS): New.
15234 (selftest): Add dependency on s-selftest-c++.
15235 (s-selftest): Rename to...
15236 (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
15237 and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
15238 than SELFTEST_FLAGS.
15239 (selftest-gdb): Rename to...
15240 (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
15242 (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
15243 (selftest-valgrind): Rename to...
15244 (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
15246 (selftest-valgrind): Reintroduce as an alias for
15247 selftest-c-valgrind.
15248 (s-selftest-c++): New.
15249 (selftest-c++-gdb): New.
15250 (selftest-c++-valgrind): New.
15252 2017-07-06 Olivier Hainque <hainque@adacore.com>
15254 * gcc.c (process_command): When deciding if undefined variables
15255 should be ignored when processing specs, accept "gcc -v" as well.
15257 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
15259 * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
15260 afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
15262 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
15264 * config/arm/arm-cpus.in (armv8-r): Add new entry.
15265 * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
15266 * config/arm/arm-tables.opt: Regenerate.
15267 * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
15269 * doc/invoke.texi: Mention -march=armv8-r and its extensions.
15271 2017-07-06 Carl Love <cel@us.ibm.com>
15273 * ChangeLog: Clean up from mid air collision
15275 2017-07-06 Carl Love <cel@us.ibm.com>
15277 * config/rs6000/rs6000-c.c: Add support for built-in functions
15278 vector signed int vec_subc (vector signed int, vector signed int);
15279 vector signed __int128 vec_subc (vector signed __int128,
15280 vector signed __int128);
15281 vector unsigned __int128 vec_subc (vector unsigned __int128,
15282 vector unsigned __int128);
15283 vector signed int vec_sube (vector signed int, vector signed int,
15284 vector signed int);
15285 vector unsigned int vec_sube (vector unsigned int,
15286 vector unsigned int,
15287 vector unsigned int);
15288 vector signed __int128 vec_sube (vector signed __int128,
15289 vector signed __int128,
15290 vector signed__int128);
15291 vector unsigned __int128 vec_sube (vector unsigned __int128,
15292 vector unsigned __int128,
15293 vector unsigned __int128);
15294 vector signed int vec_subec (vector signed int, vector signed int,
15295 vector signed int);
15296 vector unsigned int vec_subec (vector unsigned int,
15297 vector unsigned int,
15298 vector unsigned int);
15299 vector signed __int128 vec_subec (vector signed __int128,
15300 vector signed __int128,
15301 vector signed__int128);
15302 vector unsigned __int128 vec_subec (vector unsigned __int128,
15303 vector unsigned __int128,
15304 vector unsigned __int128);
15305 * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
15306 ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
15307 * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
15308 BU_ALTIVEC_OVERLOAD_X definitions.
15309 * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
15310 * doc/extend.texi: Update the built-in documentation file for the new
15311 built-in functions.
15313 2017-07-06 David Malcolm <dmalcolm@redhat.com>
15316 * diagnostic-show-locus.c (layout::layout): Use start and finish
15317 spelling location for the start and finish of each range.
15318 * genmatch.c (linemap_client_expand_location_to_spelling_point):
15319 Add unused aspect param.
15320 * input.c (expand_location_1): Add "aspect" param, and use it
15321 to access the correct part of the location.
15322 (expand_location): Pass LOCATION_ASPECT_CARET to new param of
15324 (expand_location_to_spelling_point): Likewise.
15325 (linemap_client_expand_location_to_spelling_point): Add "aspect"
15326 param, and pass it to expand_location_1.
15328 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com>
15330 * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
15331 _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
15332 _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
15333 _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
15334 _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
15335 _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
15336 _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
15337 _mm_maskz_getmant_ss): New intrinsics.
15338 (__builtin_ia32_getexpss128_mask): Changed to ...
15339 __builtin_ia32_getexpss128_round ... this.
15340 (__builtin_ia32_getexpsd128_mask): Changed to ...
15341 __builtin_ia32_getexpsd128_round ... this.
15342 * config/i386/i386-builtin-types.def
15343 ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
15344 (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
15345 * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
15346 __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round,
15347 __builtin_ia32_getmantss_mask_round): New builtins.
15348 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
15349 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
15350 (CODE_FOR_avx512f_vgetmantv2df_mask_round,
15351 CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
15352 * config/i386/sse.md
15353 (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
15354 avx512f_sgetexp<mode><mask_scalar_name>
15355 <round_saeonly_scalar_name> ... this.
15356 (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
15357 %0, %1, %2<round_saeonly_op3>}): Changed to ...
15358 vgetexp<ssescalarmodesuffix>
15359 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
15360 %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
15361 (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
15362 avx512f_vgetmant<mode><mask_scalar_name>
15363 <round_saeonly_scalar_name> ... this.
15364 (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
15365 %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
15366 vgetmant<ssescalarmodesuffix>
15367 \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
15368 %0<mask_scalar_operand4>, %1, %2
15369 <round_saeonly_scalar_mask_op4>, %3} ... this.
15370 * config/i386/subst.md (mask_scalar_operand4,
15371 round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4,
15372 round_saeonly_scalar_nimm_predicate): New subst attributes.
15374 2017-07-06 Julia Koval <julia.koval@intel.com>
15376 * config/i386/i386.c (ix86_erase_embedded_rounding):
15377 Remove code for old rounding pattern.
15379 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
15381 * config/arm/t-arm (GTM_H): Add arm-cpu.h.
15383 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org>
15385 * doc/sourcebuild.texi (Test Directives, Variants of
15386 dg-require-support): Add documentation for dg-require-stack-check.
15388 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com>
15390 * config/i386/subst.md (mask_scalar, round_scalar,
15391 round_saeonly_scalar): New meta-templates.
15392 (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
15393 round_scalar_mask_operand3, round_scalar_mask_op3,
15394 round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
15395 round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
15396 round_saeonly_scalar_constraint,
15397 round_saeonly_scalar_prefix): New subst attribute.
15398 * config/i386/sse.md
15399 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
15400 <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
15401 <round_scalar_name> ... this.
15402 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
15403 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
15404 <round_scalar_name> ... this.
15405 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
15406 <sse>_vm<code><mode>3<mask_scalar_name>
15407 <round_saeonly_scalar_name> ... this.
15408 (v<plusminus_mnemonic><ssescalarmodesuffix>
15409 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
15410 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
15411 v<plusminus_mnemonic><ssescalarmodesuffix>
15412 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
15413 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
15414 (v<multdiv_mnemonic><ssescalarmodesuffix>
15415 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
15416 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
15417 v<multdiv_mnemonic><ssescalarmodesuffix>
15418 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
15419 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
15420 (v<maxmin_float><ssescalarmodesuffix>
15421 \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
15422 %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
15423 v<maxmin_float><ssescalarmodesuffix>
15424 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
15425 %0<mask_scalar_operand3>, %1, %<iptr>2
15426 <round_saeonly_scalar_mask_op3>} ... this.
15428 2017-07-05 Richard Earnshaw <rearnsha@arm.com>
15430 * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
15431 (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
15433 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
15434 Alan Hayward <alan.hayward@arm.com>
15435 David Sherwood <david.sherwood@arm.com>
15437 * combine.c (simplify_if_then_else): Remove "enum" before
15439 * compare-elim.c (can_eliminate_compare): Likewise.
15440 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
15442 (aarch64_lookup_simd_builtin_type): Likewise.
15443 (aarch64_simd_builtin_type): Likewise.
15444 (aarch64_init_simd_builtin_types): Likewise.
15445 (aarch64_simd_expand_args): Likewise.
15446 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
15448 (aarch64_reverse_mask): Likewise.
15449 (aarch64_simd_emit_reg_reg_move): Likewise.
15450 (aarch64_gen_adjusted_ldpstp): Likewise.
15451 (aarch64_ccmp_mode_to_code): Likewise.
15452 (aarch64_operands_ok_for_ldpstp): Likewise.
15453 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
15454 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
15456 (aarch64_min_divisions_for_recip_mul): Likewise.
15457 (aarch64_reassociation_width): Likewise.
15458 (aarch64_get_condition_code_1): Likewise.
15459 (aarch64_simd_emit_reg_reg_move): Likewise.
15460 (aarch64_simd_attr_length_rglist): Likewise.
15461 (aarch64_reverse_mask): Likewise.
15462 (aarch64_operands_ok_for_ldpstp): Likewise.
15463 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
15464 (aarch64_gen_adjusted_ldpstp): Likewise.
15465 * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
15467 * config/arc/arc.c (legitimate_offset_address_p): Likewise.
15468 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
15469 (arm_lookup_simd_builtin_type): Likewise.
15470 (arm_simd_builtin_type): Likewise.
15471 (arm_init_simd_builtin_types): Likewise.
15472 (arm_expand_builtin_args): Likewise.
15473 * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
15474 * config/ft32/ft32.c (ft32_libcall_value): Likewise.
15475 (ft32_setup_incoming_varargs): Likewise.
15476 (ft32_function_arg): Likewise.
15477 (ft32_function_arg_advance): Likewise.
15478 (ft32_pass_by_reference): Likewise.
15479 (ft32_arg_partial_bytes): Likewise.
15480 (ft32_valid_pointer_mode): Likewise.
15481 (ft32_addr_space_pointer_mode): Likewise.
15482 (ft32_addr_space_legitimate_address_p): Likewise.
15483 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
15485 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
15486 (ix86_emit_outlined_ms2sysv_restore): Likewise.
15487 (iamcu_alignment): Likewise.
15488 (canonicalize_vector_int_perm): Likewise.
15489 (ix86_noce_conversion_profitable_p): Likewise.
15490 (ix86_mpx_bound_mode): Likewise.
15491 (ix86_operands_ok_for_move_multiple): Likewise.
15492 * config/microblaze/microblaze-protos.h
15493 (microblaze_expand_conditional_branch_reg): Likewise.
15494 * config/microblaze/microblaze.c
15495 (microblaze_expand_conditional_branch_reg): Likewise.
15496 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
15498 (rs6000_reassociation_width): Likewise.
15499 (rs6000_invalid_binary_op): Likewise.
15500 (fusion_p9_p): Likewise.
15501 (emit_fusion_p9_load): Likewise.
15502 (emit_fusion_p9_store): Likewise.
15503 * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
15505 (riscv_hard_regno_mode_ok_p): Likewise.
15506 (riscv_address_insns): Likewise.
15507 (riscv_split_symbol): Likewise.
15508 (riscv_legitimize_move): Likewise.
15509 (riscv_function_value): Likewise.
15510 (riscv_hard_regno_nregs): Likewise.
15511 (riscv_expand_builtin): Likewise.
15512 * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
15513 (riscv_build_integer): Likewise.
15514 (riscv_split_integer): Likewise.
15515 (riscv_legitimate_constant_p): Likewise.
15516 (riscv_cannot_force_const_mem): Likewise.
15517 (riscv_regno_mode_ok_for_base_p): Likewise.
15518 (riscv_valid_base_register_p): Likewise.
15519 (riscv_valid_offset_p): Likewise.
15520 (riscv_valid_lo_sum_p): Likewise.
15521 (riscv_classify_address): Likewise.
15522 (riscv_legitimate_address_p): Likewise.
15523 (riscv_address_insns): Likewise.
15524 (riscv_load_store_insns): Likewise.
15525 (riscv_force_binary): Likewise.
15526 (riscv_split_symbol): Likewise.
15527 (riscv_force_address): Likewise.
15528 (riscv_legitimize_address): Likewise.
15529 (riscv_move_integer): Likewise.
15530 (riscv_legitimize_const_move): Likewise.
15531 (riscv_legitimize_move): Likewise.
15532 (riscv_address_cost): Likewise.
15533 (riscv_subword): Likewise.
15534 (riscv_output_move): Likewise.
15535 (riscv_canonicalize_int_order_test): Likewise.
15536 (riscv_emit_int_order_test): Likewise.
15537 (riscv_function_arg_boundary): Likewise.
15538 (riscv_pass_mode_in_fpr_p): Likewise.
15539 (riscv_pass_fpr_single): Likewise.
15540 (riscv_pass_fpr_pair): Likewise.
15541 (riscv_get_arg_info): Likewise.
15542 (riscv_function_arg): Likewise.
15543 (riscv_function_arg_advance): Likewise.
15544 (riscv_arg_partial_bytes): Likewise.
15545 (riscv_function_value): Likewise.
15546 (riscv_pass_by_reference): Likewise.
15547 (riscv_setup_incoming_varargs): Likewise.
15548 (riscv_print_operand): Likewise.
15549 (riscv_elf_select_rtx_section): Likewise.
15550 (riscv_save_restore_reg): Likewise.
15551 (riscv_for_each_saved_reg): Likewise.
15552 (riscv_register_move_cost): Likewise.
15553 (riscv_hard_regno_mode_ok_p): Likewise.
15554 (riscv_hard_regno_nregs): Likewise.
15555 (riscv_class_max_nregs): Likewise.
15556 (riscv_memory_move_cost): Likewise.
15557 * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
15558 * config/rl78/rl78.c (rl78_split_movsi): Likewise.
15559 (rl78_addr_space_address_mode): Likewise.
15560 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15562 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
15563 (rs6000_reassociation_width): Likewise.
15564 (rs6000_invalid_binary_op): Likewise.
15565 (fusion_p9_p): Likewise.
15566 (emit_fusion_p9_load): Likewise.
15567 (emit_fusion_p9_store): Likewise.
15568 * config/visium/visium-protos.h (prepare_move_operands): Likewise.
15569 (ok_for_simple_move_operands): Likewise.
15570 (ok_for_simple_move_strict_operands): Likewise.
15571 (ok_for_simple_arith_logic_operands): Likewise.
15572 (visium_legitimize_reload_address): Likewise.
15573 (visium_select_cc_mode): Likewise.
15574 (output_cbranch): Likewise.
15575 (visium_split_double_move): Likewise.
15576 (visium_expand_copysign): Likewise.
15577 (visium_expand_int_cstore): Likewise.
15578 (visium_expand_fp_cstore): Likewise.
15579 * config/visium/visium.c (visium_pass_by_reference): Likewise.
15580 (visium_function_arg): Likewise.
15581 (visium_function_arg_advance): Likewise.
15582 (visium_libcall_value): Likewise.
15583 (visium_setup_incoming_varargs): Likewise.
15584 (visium_legitimate_constant_p): Likewise.
15585 (visium_legitimate_address_p): Likewise.
15586 (visium_legitimize_address): Likewise.
15587 (visium_secondary_reload): Likewise.
15588 (visium_register_move_cost): Likewise.
15589 (visium_memory_move_cost): Likewise.
15590 (prepare_move_operands): Likewise.
15591 (ok_for_simple_move_operands): Likewise.
15592 (ok_for_simple_move_strict_operands): Likewise.
15593 (ok_for_simple_arith_logic_operands): Likewise.
15594 (visium_function_value_1): Likewise.
15595 (rtx_ok_for_offset_p): Likewise.
15596 (visium_legitimize_reload_address): Likewise.
15597 (visium_split_double_move): Likewise.
15598 (visium_expand_copysign): Likewise.
15599 (visium_expand_int_cstore): Likewise.
15600 (visium_expand_fp_cstore): Likewise.
15601 (visium_split_cstore): Likewise.
15602 (visium_select_cc_mode): Likewise.
15603 (visium_split_cbranch): Likewise.
15604 (output_cbranch): Likewise.
15605 (visium_print_operand_address): Likewise.
15606 * expmed.c (flip_storage_order): Likewise.
15607 * expmed.h (emit_cstore): Likewise.
15608 (flip_storage_order): Likewise.
15609 * genrecog.c (validate_pattern): Likewise.
15610 * hsa-gen.c (gen_hsa_addr): Likewise.
15611 * internal-fn.c (expand_arith_overflow): Likewise.
15612 * ira-color.c (allocno_copy_cost_saving): Likewise.
15613 * lra-assigns.c (find_hard_regno_for_1): Likewise.
15614 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
15615 (process_invariant_for_inheritance): Likewise.
15616 * lra-eliminations.c (move_plus_up): Likewise.
15617 * omp-low.c (lower_oacc_reductions): Likewise.
15618 * simplify-rtx.c (simplify_subreg): Likewise.
15619 * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
15620 (TARGET_CHKP_BOUND_MODE): Likewise..
15621 * targhooks.c (default_chkp_bound_mode): Likewise.
15622 (default_setup_incoming_vararg_bounds): Likewise.
15623 * targhooks.h (default_chkp_bound_mode): Likewise.
15624 (default_setup_incoming_vararg_bounds): Likewise.
15625 * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
15626 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
15627 (have_whole_vector_shift): Likewise.
15628 * tree-vect-stmts.c (vectorizable_load): Likewise.
15629 * doc/tm.texi: Regenerate.
15631 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
15633 Graceful degrade if Binutils PR21472 is not available.
15636 * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
15637 .rodata in flash test fails.
15638 (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
15639 * confgure: Regenerate.
15640 * config.in: Regenerate.
15641 * config/avr/avr.c (avr_asm_named_section)
15642 [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
15643 __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
15644 (avr_asm_init_sections): Same.
15646 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15648 * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
15649 (fma<VH:mode>4_intrinsic): Likewise.
15650 (*fmsub<VCVTF:mode>4): Likewise.
15651 (*fmsub<VH:mode>4_intrinsic): Likewise.
15653 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
15656 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
15657 Don't depend on "optimize > 0".
15658 (out_movhi_r_mr, out_movqi_mr_r): Same.
15659 (out_movhi_mr_r, out_movqi_r_mr): Same.
15660 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
15661 io_address_operand on "optimize > 0".
15663 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15665 * tree-loop-distribution.c: Add general explanantion on the pass.
15666 (generate_loops_for_partition): Mark distributed loop.
15667 (pg_add_dependence_edges): New parameter. Handle alias data
15668 dependence specially and record it in the parameter if asked.
15669 (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
15670 (init_partition_graph_vertices, add_partition_graph_edge): New.
15671 (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
15672 (free_partition_graph_vdata, build_partition_graph): New.
15673 (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
15674 (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
15675 (data_ref_segment_size, latch_dominated_by_data_ref): New.
15676 (compute_alias_check_pairs, version_loop_by_alias_check): New.
15677 (version_for_distribution_p, finalize_partitions): New.
15678 (distribute_loop): Handle alias data dependence specially. Factor
15679 out loop fusion code as functions and call these functions.
15681 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15683 * tree-loop-distribution.c (classify_partition): New parameter and
15684 better handle reduction statement.
15685 (rdg_build_partitions): Revise comment.
15686 (distribute_loop): Compute statements in all partitions and pass it
15687 to classify_partition.
15689 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15691 * tree-loop-distribution.c (enum partition_type): New.
15692 (struct partition): New field type.
15693 (partition_merge_into): Add parameter. Update partition type.
15694 (data_dep_in_cycle_p, update_type_for_merge): New functions.
15695 (build_rdg_partition_for_vertex): Compute partition type.
15696 (rdg_build_partitions): Dump partition type.
15697 (distribute_loop): Update calls to partition_merge_into.
15699 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15701 * tree-loop-distribution.c (struct ddr_hasher): New.
15702 (ddr_hasher::hash, ::equal, get_data_dependence): New function.
15704 (classify_partition): Call get_data_dependence.
15705 (pg_add_dependence_edges): Ditto.
15706 (distribute_loop): Release data dependence hash table.
15708 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15710 * tree-loop-distribution.c (ref_base_address): Delete.
15711 (similar_memory_accesses): Rename ...
15712 (share_memory_accesses): ... to this. Check if partitions access
15713 the same memory reference.
15714 (distribute_loop): Call share_memory_accesses.
15716 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15718 * tree-loop-distribution.c (struct partition): New field recording
15719 its data reference.
15720 (partition_alloc, partition_free): Init and release data refs.
15721 (partition_merge_into): Merge data refs.
15722 (build_rdg_partition_for_vertex): Collect data refs for partition.
15723 (pg_add_dependence_edges): Change parameters from vector to bitmap.
15725 (distribute_loop): Remve data refs from vertice data of partition
15728 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15730 * tree-loop-distribution.c (params.h): Include header file.
15731 (MAX_DATAREFS_NUM, DR_INDEX): New macro.
15732 (datarefs_vec): New global var.
15733 (create_rdg_vertices): Use datarefs_vec directly.
15734 (free_rdg): Don't free data references.
15735 (build_rdg): Update use. Don't free data references.
15736 (distribute_loop): Compute global variable for data references.
15737 Bail out if there are too many data references.
15739 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15741 * tree-loop-distribution.c (loop_nest): New global var.
15742 (build_rdg): Use loop directly, rather than loop nest.
15743 (pg_add_dependence_edges): Remove loop nest parameter. Use global
15745 (distribute_loop): Compute global variable loop nest. Update use.
15747 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15749 * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
15750 (partition_merge_into): New parameter. Dump reason for fusion.
15751 (distribute_loop): Update use of partition_merge_into.
15753 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15755 * tree-loop-distribution.c (bb_top_order_index): New.
15756 (bb_top_order_index_size, bb_top_order_cmp): New.
15757 (stmts_from_loop): Use topological order.
15758 (pass_loop_distribution::execute): Compute and release topological
15759 order for basic blocks.
15761 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15763 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
15766 2017-07-05 Bin Cheng <bin.cheng@arm.com>
15768 * cfgloop.h (struct loop): Add comment. New field orig_loop_num.
15769 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
15770 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
15771 * internal-fn.def (LOOP_DIST_ALIAS): New.
15772 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
15773 (fold_loop_internal_call): ... this.
15774 (vect_loop_dist_alias_call): New function.
15775 (set_uid_loop_bbs): Call fold_loop_internal_call.
15776 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
15779 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
15782 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
15783 Require dead FLAGS_REG at the beginning of a peephole.
15785 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
15788 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
15789 arguments in the call to __builtin_ia32_sbb_u32.
15790 (_subborrow_u64): Swap _X and _Y arguments in the call to
15791 __builtin_ia32_sbb_u64.
15793 2017-07-04 Jakub Jelinek <jakub@redhat.com>
15796 * tree-vrp.c (compare_assert_loc): Turn into a function template
15797 with stable template parameter. Only test if a->e is NULL,
15798 !a->e == !b->e has been verified already. Use e == NULL or
15799 e != NULL instead of e or ! e tests. If stable is true, don't use
15800 iterative_hash_expr, on the other side allow a or b or both NULL
15801 and sort the NULLs last.
15802 (process_assert_insertions): Sort using compare_assert_loc<false>
15803 instead of compare_assert_loc, later sort using
15804 compare_assert_loc<true> before calling process_assert_insertions_for
15805 in a loop. Use break instead of continue once seen NULL pointer.
15807 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
15809 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
15810 Cortex-R7 and Cortex-R8 processors.
15812 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
15814 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
15815 uninitialized while src is not.
15817 2017-07-04 Richard Earnshaw <rearnsha@arm.com>
15819 * common/config/arm/arm-common.c: Adjust include path for
15821 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
15822 (arm-cpu.h): Create in build directory. Adjust dependency rules.
15823 (arm-cpu-data.h): Likewise.
15824 (arm-cpu-cdata.h): Likewise.
15825 * config/arm/arm-cpu.h: Delete.
15826 * config/arm/arm-cpu-cdata.h: Delete.
15827 * config/arm/arm-cpu-data.h: Delete.
15829 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com>
15831 * config/arm/arm-cpus.in (cortex-a55): New.
15832 (cortex-a75): Likewise.
15833 (cortex-a75.cortex-a55): Likewise.
15834 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
15836 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
15837 * config/arm/arm-cpu-cdata.h: Regenerate.
15838 * config/arm/arm-cpu-data.h: Regenerate.
15839 * config/arm/arm-cpu.h: Regenerate.
15840 * config/arm/arm-tables.opt: Regenerate.
15841 * config/arm/arm-tune.md: Regenerate.
15843 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
15845 * haifa-sched.c (sched_create_recovery_edges): Update profile.
15847 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
15849 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
15852 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
15854 PR tree-optimization/81292
15855 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
15856 full_string_p, also call adjust_related_strinfos if the adjustment
15857 is simple, otherwise invalidate related strinfos.
15859 2017-07-04 Martin Liska <mliska@suse.cz>
15862 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
15863 newly created variable as DECL_IGNORED_P.
15865 2017-07-04 Martin Liska <mliska@suse.cz>
15868 * ipa-inline.c (inline_small_functions):
15869 Use xstrdup_for_dump.
15871 2017-07-04 Tom de Vries <tom@codesourcery.com>
15873 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
15875 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
15878 * config/darwin.c (darwin_function_switched_text_sections):
15881 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
15883 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
15885 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
15887 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
15889 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15891 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
15892 min_profitable_iters, and th as inclusive lower bounds.
15893 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
15894 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
15895 for min_profitable_iters and min_profitable_estimate.
15896 (vect_transform_loop): Treat th as an inclusive lower bound.
15897 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
15899 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
15902 * config/darwin.c (darwin_function_switched_text_sections):
15903 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
15904 in two pieces, and suppress the use of buf.
15906 2017-07-03 Nathan Sidwell <nathan@acm.org>
15908 * hash-table.h (hash_table_mod1): Fix indentation.
15910 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
15912 PR middle-end/81290
15913 * predict.c (force_edge_cold): Be more careful about propagation
15915 * profile-count.h (profile_probability::guessed,
15916 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
15918 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
15920 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
15922 * doc/invoke.texi (rcpc architecture extension): Document it.
15924 2017-07-03 Richard Biener <rguenther@suse.de>
15926 PR tree-optimization/60510
15927 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
15928 the scalar reduction PHI and use it.
15929 (vectorizable_reduction): Properly guard the single_defuse_cycle
15930 path for non-SLP reduction chains where we cannot use it.
15931 Rework reduc_def/index and vector type deduction. Rework
15932 vector operand gathering during reduction op code-gen.
15933 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
15934 chains dissolve the chain and leave it to non-SLP reduction
15937 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15939 * tree-data-ref.h (dr_alignment): Declare.
15940 * tree-data-ref.c (dr_alignment): New function.
15941 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
15942 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
15944 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
15946 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15948 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
15949 and base_misalignment fields.
15950 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
15951 * tree-data-ref.c: Include builtins.h.
15952 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
15953 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
15954 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
15955 * tree-vect-data-refs.c: Include tree-cfg.h.
15956 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
15957 fields instead of calculating an alignment here.
15958 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
15959 innermost_loop_behavior fields.
15961 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15963 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
15965 (DR_STEP_ALIGNMENT): New macro.
15966 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
15967 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
15968 (create_data_ref): Print it.
15969 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
15970 to tell whether the step preserves vector (mis)alignment.
15971 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
15972 Move the check for an integer step and generalise to all INTEGER_CST.
15973 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
15974 Print the outer step alignment.
15976 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15978 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
15979 with offset_alignment.
15980 (DR_ALIGNED_TO): Delete.
15981 (DR_OFFSET_ALIGNMENT): New macro.
15982 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
15983 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
15984 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
15985 (create_data_ref): Likewise.
15986 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
15987 (vect_analyze_data_refs): Likewise.
15988 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
15989 creating dummy innermost behavior.
15991 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
15993 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
15994 with a "innermost_loop_behavior *" and refeence tree.
15995 * tree-data-ref.c (dr_analyze_innermost): Likewise.
15996 (create_data_ref): Update call accordingly.
15997 * tree-predcom.c (find_looparound_phi): Likewise.
15999 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
16001 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
16002 fields with dr_wrt_vec_loop.
16003 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
16004 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
16005 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
16006 (vect_dr_behavior): New function.
16007 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
16008 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
16009 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
16010 track whether the step preserves the misalignment.
16011 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
16012 Use vect_dr_behavior.
16013 (vect_setup_realignment): Update call accordingly.
16014 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
16015 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
16016 call to vect_create_addr_base_for_vector_ref.
16017 (vect_create_cond_for_align_checks): Likewise.
16018 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
16019 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
16020 (vect_recog_mask_conversion_pattern): Likewise.
16021 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
16022 (new_stmt_vec_info): Remove redundant zeroing.
16024 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
16026 * common/config/arm/arm-common.c (arm_be8_option): New function.
16027 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
16028 (ISA_ARMv6): Add isa_bit_be8.
16029 * config/arm/arm.h (arm_be8_option): Add prototype.
16030 (BE8_SPEC_FUNCTION): New define.
16031 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
16032 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
16033 (mlittle-endian): Similarly.
16034 (mbe8, mbe32): New options.
16035 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
16036 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
16038 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
16040 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
16042 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
16044 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
16045 (cleanup_tree_cfg_bb): Use it.
16046 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
16048 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
16050 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
16053 * loop-doloop.c (add_test): Update profile.
16055 2017-07-03 Martin Liska <mliska@suse.cz>
16058 * sanopt.c (rewrite_usage_of_param): New function.
16059 (sanitize_rewrite_addressable_params): Likewise.
16060 (pass_sanopt::execute): Call rewrite_usage_of_param.
16062 2017-07-03 Richard Biener <rguenther@suse.de>
16064 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
16065 back to using VIEW_CONVERT_EXPR.
16067 2017-07-03 Martin Liska <mliska@suse.cz>
16070 * doc/extend.texi: Document when a resolver function is
16071 generated for target_clones.
16073 2017-07-03 Martin Liska <mliska@suse.cz>
16075 * asan.c (asan_emit_stack_protection): Unpoison just red zones
16076 and shadow memory of auto variables which are subject of
16077 use-after-scope sanitization.
16078 (asan_expand_mark_ifn): Add do set only when is_poison.
16080 2016-07-03 Richard Biener <rguenther@suse.de>
16082 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
16084 (vect_force_simple_reduction): Record reduction def -> phi mapping.
16085 (vectorizable_reduction): Perform reduction PHI creation when
16086 visiting a reduction PHI and adjust and simplify code generation
16087 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
16088 (vect_transform_loop): Visit reduction PHIs.
16089 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
16090 defs into the SLP tree.
16091 (vect_build_slp_tree): Reduction defs terminate the recursion.
16092 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
16094 (vect_get_vec_defs_for_stmt_copy): Export.
16095 (vect_get_vec_defs): Likewise.
16096 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
16098 (vect_get_vec_defs_for_stmt_copy): Declare.
16099 (vect_get_vec_defs): Likewise.
16101 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
16103 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
16104 parameter with a "loop" parameter and use it instead of the
16105 loop containing DR_STMT. Don't check simple_iv when doing
16106 BB analysis. Describe the two analysis modes in the comment.
16108 2017-07-03 Tom de Vries <tom@codesourcery.com>
16110 PR tree-optimization/69468
16111 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
16112 (find_same_succ_bb): Handle ignore_edge_flags.
16114 2017-07-03 Tom de Vries <tom@codesourcery.com>
16116 PR tree-optimization/81192
16117 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
16119 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
16121 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
16123 2017-07-03 Tom de Vries <tom@codesourcery.com>
16125 PR tree-optimization/81192
16126 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
16127 BB_SAME_SUCC (bb) == NULL.
16129 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
16131 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
16134 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
16136 * dumpfile.c: Include profile-count.h
16137 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
16139 (insert_cond_bb): Update profile.
16140 * tree-cfg.h (insert_cond_bb): Update prototype.
16141 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
16142 * tree-dump.c: Do not include tree-cfg.
16144 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
16146 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
16148 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
16150 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
16153 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
16155 * tree-complex.c (expand_complex_div_wide): update profile.
16157 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
16158 Alan Hayward <alan.hayward@arm.com>
16159 David Sherwood <david.sherwood@arm.com>
16161 * Makefile.in (MACHMODE_H): Remove insn-modes.h
16162 (CORETYPES_H): New define.
16163 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
16164 (insn-modes-inline.h, s-modes-inline-h): New rules.
16165 (generated_files): Add insn-modes-inline.h.
16166 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
16167 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
16168 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
16169 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
16170 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
16171 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
16172 (build/gencodes.o, build/genconditions.o): Likewise.
16173 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
16174 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
16175 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
16176 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
16177 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
16178 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
16179 * coretypes.h: Include everything up to real.h for generators.
16180 Include insn-modes.h first. Include wide-int-print.h after
16181 wide-int.h. Include insn-modes-inline.h and then machmode.h.
16182 * machmode.h: Don't include insn-modes.h here.
16183 * function-tests.c: Remove includes of signop.h, machmode.h,
16184 double-int.h and wide-int.h.
16186 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
16188 * optc-save-gen.awk: Likewise.
16189 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
16190 * godump.c: Remove include of wide-int-print.h.
16191 * pretty-print.h: Likewise.
16192 * wide-int-print.cc: Likewise.
16193 * wide-int.cc: Likewise.
16194 * hash-map-tests.c: Remove include of signop.h.
16195 * hash-set-tests.c: Likewise.
16196 * rtl-tests.c: Likewise.
16197 * mkconfig.sh: Remove include of machmode.h.
16198 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
16200 (emit_insn_modes_inline_h): ...this new function. Emit the code
16201 into an insn-modes-inline.h header file, adding appropriate
16202 include guards and end comments.
16203 (emit_insn_modes_c_header): Remove include of machmode.h.
16204 (emit_min_insn_modes_c_header): Include coretypes.h rather than
16206 (main): Handle -i flag and call emit_insn_modes_inline_h when
16209 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
16211 * tree-ssa-strlen.c (strinfo): Rename the length field to
16212 nonzero_chars. Add a full_string_p field.
16213 (compare_nonzero_chars, zero_length_string_p): New functions.
16214 (get_addr_stridx): Add an offset_out parameter.
16215 Use compare_nonzero_chars.
16216 (get_stridx): Update accordingly. Use compare_nonzero_chars.
16217 (new_strinfo): Update after above changes to strinfo.
16218 (set_endptr_and_length): Set full_string_p.
16219 (get_string_length): Update after above changes to strinfo.
16220 (unshare_strinfo): Update call to new_strinfo.
16221 (maybe_invalidate): Likewise.
16222 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
16223 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
16224 as a uhwi instead of an shwi. Update after above changes to
16225 strinfo and new_strinfo.
16226 (zero_length_string): Assert that chainsi contains full strings.
16227 Use zero_length_string_p. Update call to new_strinfo.
16228 (adjust_related_strinfos): Update after above changes to strinfo.
16229 Copy full_string_p from origsi.
16230 (adjust_last_stmt): Use zero_length_string_p.
16231 (handle_builtin_strlen): Update after above changes to strinfo and
16232 new_strinfo. Install the lhs as the string length if the previous
16233 entry didn't describe a full string.
16234 (handle_builtin_strchr): Update after above changes to strinfo
16236 (handle_builtin_strcpy): Likewise.
16237 (handle_builtin_strcat): Likewise.
16238 (handle_builtin_malloc): Likewise.
16239 (handle_pointer_plus): Likewise.
16240 (handle_builtin_memcpy): Likewise. Track nonzero characters
16241 that aren't necessarily followed by a nul terminator.
16242 (handle_char_store): Likewise.
16244 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
16246 PR tree-optimization/80769
16247 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
16248 for malloc and calloc. Document the new invariant that all related
16249 strinfos have delayed lengths or none do.
16250 (verify_related_strinfos): Move earlier in file.
16251 (set_endptr_and_length): New function, split out from...
16252 (get_string_length): ...here. Also set the lengths of related
16254 (zero_length_string): Assert that chainsi has known (rather than
16256 (adjust_related_strinfos): Likewise.
16258 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
16260 PR tree-optimization/81136
16261 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
16262 assert that two references with the same misalignment have the same
16263 compile-time misalignment if those compile-time misalignments
16266 2017-07-01 Andi Kleen <ak@linux.intel.com>
16268 * print-tree.c (print_node): Print all attributes.
16270 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
16272 * cfg.c (scale_bbs_frequencies): New function.
16273 * cfg.h (scale_bbs_frequencies): Declare it.
16274 * cfgloopanal.c (single_likely_exit): Cleanup.
16275 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
16277 (scale_loop_profile): Likewise.
16278 (loop_version): Likewise.
16279 (create_empty_loop_on_edge): Update.
16280 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
16281 scale_loop_frequencies, scale_loop_profile, loopify,
16282 loop_version): Update prototypes.
16283 * modulo-sched.c (sms_schedule): Update.
16284 * predict.c (unlikely_executed_edge_p): Also check probability.
16285 (probably_never_executed_edge_p): Fix typo.
16286 * tree-if-conv.c (version_loop_for_if_conversion): Update.
16287 * tree-parloops.c (gen_parallel_loop): Update.
16288 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
16289 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
16290 * tree-ssa-loop-split.c (split_loop): Update.
16291 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
16292 * tree-vect-loop-manip.c (vect_do_peeling): Update.
16293 (vect_loop_versioning): Update.
16294 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
16296 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
16298 * trans-mem.c (split_bb_make_tm_edge): Update profile.
16300 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
16302 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
16303 to keep profile consistent.
16305 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
16307 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
16308 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
16309 * profile-count.h (max_safe_multiplier): Make unsigned.
16310 (profile_count::guessed_zero): New.
16312 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
16314 * bb-reorder.c (fix_up_crossing_landing_pad,
16315 fix_crossing_conditional_branches): Use make_single_succ_edge
16316 to keep profile consistent.
16318 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
16320 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
16323 2017-07-01 Jakub Jelinek <jakub@redhat.com>
16326 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
16327 the right scopes, make sure cond_jump isn't preserved between multiple
16328 iterations. Search for fallthru edge whenever there are 3+ edges and
16329 use find_fallthru_edge for it.
16331 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
16333 Patch by Alexander Monakov <amonakov@ispras.ru>
16334 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
16335 probabilities consistently.
16337 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
16339 * pa.c (pa_expand_compare_and_swap_loop): Update call of
16340 emit_cmp_and_jump_insns.
16342 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
16345 * tree-inline.c (expand_call_inline): Combine profile statuses.
16347 2017-06-30 Andrew Pinski <apinski@cavium.com>
16349 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
16350 fold_stmt returned true.
16352 2017-06-30 Nathan Sidwell <nathan@acm.org>
16354 * ggc.h (empty_string): Delete.
16355 * cfgexpand.c (expand_asm_stmt): Use plain "".
16356 * optabs.c (expand_asm_memory_barrier): Likewise.
16357 * stringpool.c (empty_string): Delete.
16358 (digit_vector, digit_string): Delete.
16359 (ggc_alloc_string): Use plain "", don't optimize single digit
16360 strings. Use ggc_alloc_atomic.
16362 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
16364 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
16365 comparison set and one other set, use the cost of the non-comparison
16368 2017-06-30 Nathan Sidwell <nathan@acm.org>
16370 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
16373 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
16375 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
16376 loops. Remove now unneeded calls to gimple_switch_set_label() that
16377 just set removed labels to NULL_TREE.
16379 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
16381 * tree-ssanames.c (set_range_info_raw): Abstract from ...
16382 (set_range_info): ...here. Only call set_range_info_raw if domain
16384 (set_nonzero_bits): Call set_range_info_raw.
16385 * tree-ssanames.h (set_range_info_raw): New.
16387 2017-06-30 Jakub Jelinek <jakub@redhat.com>
16390 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
16391 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
16392 of nonimmediate_operand and <store_mask_constraint> instead of m
16393 for the input operand. For V8FI iterator, always split if input
16394 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
16395 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
16396 <store_mask_predicate> instead of register_operand and
16397 <store_mask_constraint> instead of v for the input operand. Make
16398 sure both operands aren't MEMs for if not <mask_applied>.
16400 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
16402 * lto-wrapper.c (copy_file) Close both file descriptors before
16405 2017-06-30 Martin Liska <mliska@suse.cz>
16408 * multiple_target.c (create_dispatcher_calls): Make ifunc
16409 also for function that don't have calls or are not referenced.
16411 2017-06-30 Richard Biener <rguenther@suse.de>
16413 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
16414 analyze the first scalar stmt. Move vector type computation
16415 for the BB case here from ...
16416 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
16417 live operation processing in the SLP case properly.
16419 2017-06-30 Richard Biener <rguenther@suse.de>
16421 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
16423 2017-06-30 Martin Liska <mliska@suse.cz>
16426 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
16427 before BUILT_IN_UNWIND_RESUME when ASAN is used.
16429 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
16431 * doc/invoke.texi (AArch64): Add missing options and remove redundant
16434 2017-06-30 Richard Biener <rguenther@suse.de>
16436 PR tree-optimization/81249
16437 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
16438 condition reduction result to original scalar type.
16440 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16442 * profile-count.h (enum profile_quality): Fix typos and whitespace
16445 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16447 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
16448 type for branch probabilities.
16450 2017-06-29 Julian Brown <julian@codesourcery.com>
16451 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
16453 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
16454 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
16455 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
16456 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
16458 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
16460 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
16461 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
16462 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
16463 CC usage from generic code to here.
16464 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
16465 CC usage into the target macros.
16467 2017-06-29 Maya Rashish <coypu@sdf.org>
16469 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
16472 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
16474 * arm/arm-builtins.c: Include profile-count.h
16475 * except.c (sjlj_emit_function_enter): Use
16476 profile_probability::unlikely.
16478 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
16480 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
16481 and tocrel_offset be pointer args rather than implicitly using
16483 (legitimate_constant_pool_address_p, rs6000_emit_move,
16484 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
16485 tocrel_offset and use in toc_relative_expr_p call.
16486 (print_operand, print_operand_address): Use static tocrel_base_oac
16487 and tocrel_offset_oac.
16488 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
16491 2017-06-29 Maya Rashish <coypu@sdf.org>
16493 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
16495 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
16497 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
16498 objects, take into account only the alignment of 'op0' and 'mode1' if
16501 2017-06-29 Steve Ellcey <sellcey@cavium.com>
16503 * ccmp.c (ccmp_tree_comparison_p): New function.
16504 (ccmp_candidate_p): Update to use above function.
16505 (get_compare_parts): New function.
16506 (expand_ccmp_next): Update to use new functions.
16507 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
16509 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
16510 take mode as argument.
16511 * ccmp.h (expand_ccmp_expr): Add mode as argument.
16512 * expr.c (expand_expr_real_1): Pass mode as argument.
16514 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
16516 * combine.c (combine_instructions): Print insns to dump_file, together
16519 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
16521 * asan.c (asan_emit_stack_protection): Update.
16522 (create_cond_insert_point): Update.
16523 * auto-profile.c (afdo_propagate_circuit): Update.
16524 * basic-block.h (struct edge_def): Turn probability to
16525 profile_probability.
16526 (EDGE_FREQUENCY): Update.
16527 * bb-reorder.c (find_traces_1_round): Update.
16528 (better_edge_p): Update.
16529 (sanitize_hot_paths): Update.
16530 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
16531 (make_single_succ_edge): Update.
16532 (check_bb_profile): Update.
16533 (dump_edge_info): Update.
16534 (update_bb_profile_for_threading): Update.
16535 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
16536 probabilitycount to 0.
16537 * cfgbuild.c (compute_outgoing_frequencies): Update.
16538 * cfgcleanup.c (try_forward_edges): Update.
16539 (outgoing_edges_match): Update.
16540 (try_crossjump_to_edge): Update.
16541 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
16542 (expand_gimple_tailcall): Update.
16543 (construct_init_block): Use make_single_succ_edge.
16544 (construct_exit_block): Use make_single_succ_edge.
16545 * cfghooks.c (verify_flow_info): Update.
16546 (redirect_edge_succ_nodup): Update.
16547 (split_edge): Update.
16548 (account_profile_record): Update.
16549 * cfgloopanal.c (single_likely_exit): Update.
16550 * cfgloopmanip.c (scale_loop_profile): Update.
16551 (set_zero_probability): Remove.
16552 (duplicate_loop_to_header_edge): Update.
16553 * cfgloopmanip.h (loop_version): Update prototype.
16554 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
16555 (force_nonfallthru_and_redirect): Update.
16556 (update_br_prob_note): Update.
16557 (rtl_verify_edges): Update.
16558 (purge_dead_edges): Update.
16559 (rtl_lv_add_condition_to_bb): Update.
16560 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
16561 * cgraphunit.c (init_lowered_empty_function): Update.
16562 (cgraph_node::expand_thunk): Update.
16563 * cilk-common.c: Include profile-count.h
16564 * dojump.c (inv): Remove.
16565 (jumpifnot): Update.
16566 (jumpifnot_1): Update.
16567 (do_jump_1): Update.
16569 (do_jump_by_parts_greater_rtx): Update.
16570 (do_compare_rtx_and_jump): Update.
16571 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
16572 do_jump_1. do_compare_rtx_and_jump): Update prototype.
16573 * dwarf2cfi.c: Include profile-count.h
16574 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
16575 (sjlj_emit_dispatch_table): Likewise.
16576 * explow.c: Include profile-count.h
16577 * expmed.c (emit_store_flag_force): Update.
16578 (do_cmp_and_jump): Update.
16579 * expr.c (compare_by_pieces_d::generate): Update.
16580 (compare_by_pieces_d::finish_mode): Update.
16581 (emit_block_move_via_loop): Update.
16582 (store_expr_with_bounds): Update.
16583 (store_constructor): Update.
16584 (expand_expr_real_2): Update.
16585 (expand_expr_real_1): Update.
16586 * expr.h (try_casesi, try_tablejump): Update prototypes.
16587 * gimple-pretty-print.c (dump_probability): Update.
16588 (dump_profile): New.
16589 (dump_gimple_label): Update.
16590 (dump_gimple_bb_header): Update.
16591 * graph.c (draw_cfg_node_succ_edges): Update.
16592 * hsa-gen.c (convert_switch_statements): Update.
16593 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
16594 (find_if_case_1): Update.
16595 (find_if_case_2): Update.
16596 * internal-fn.c (expand_arith_overflow_result_store): Update.
16597 (expand_addsub_overflow): Update.
16598 (expand_neg_overflow): Update.
16599 (expand_mul_overflow): Update.
16600 (expand_vector_ubsan_overflow): Update.
16601 * ipa-cp.c (good_cloning_opportunity_p): Update.
16602 * ipa-split.c (split_function): Use make_single_succ_edge.
16603 * ipa-utils.c (ipa_merge_profiles): Update.
16604 * loop-doloop.c (add_test): Update.
16605 (doloop_modify): Update.
16606 * loop-unroll.c (compare_and_jump_seq): Update.
16607 (unroll_loop_runtime_iterations): Update.
16608 * lra-constraints.c (lra_inheritance): Update.
16609 * lto-streamer-in.c (input_cfg): Update.
16610 * lto-streamer-out.c (output_cfg): Update.
16611 * mcf.c (adjust_cfg_counts): Update.
16612 * modulo-sched.c (sms_schedule): Update.
16613 * omp-expand.c (expand_omp_for_init_counts): Update.
16614 (extract_omp_for_update_vars): Update.
16615 (expand_omp_ordered_sink): Update.
16616 (expand_omp_for_ordered_loops): Update.
16617 (expand_omp_for_generic): Update.
16618 (expand_omp_for_static_nochunk): Update.
16619 (expand_omp_for_static_chunk): Update.
16620 (expand_cilk_for): Update.
16621 (expand_omp_simd): Update.
16622 (expand_omp_taskloop_for_outer): Update.
16623 (expand_omp_taskloop_for_inner): Update.
16624 * omp-simd-clone.c (simd_clone_adjust): Update.
16625 * optabs.c (expand_doubleword_shift): Update.
16626 (expand_abs): Update.
16627 (emit_cmp_and_jump_insn_1): Update.
16628 (expand_compare_and_swap_loop): Update.
16629 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
16630 * predict.c (predictable_edge_p): Update.
16631 (edge_probability_reliable_p): Update.
16632 (set_even_probabilities): Update.
16633 (combine_predictions_for_insn): Update.
16634 (combine_predictions_for_bb): Update.
16635 (propagate_freq): Update.
16636 (estimate_bb_frequencies): Update.
16637 (force_edge_cold): Update.
16638 * profile-count.c (profile_count::dump): Add missing space into dump.
16639 (profile_count::debug): Add newline.
16640 (profile_count::differs_from_p): Explicitly convert to unsigned.
16641 (profile_count::stream_in): Update.
16642 (profile_probability::dump): New member function.
16643 (profile_probability::debug): New member function.
16644 (profile_probability::differs_from_p): New member function.
16645 (profile_probability::differs_lot_from_p): New member function.
16646 (profile_probability::stream_in): New member function.
16647 (profile_probability::stream_out): New member function.
16648 * profile-count.h (profile_count_quality): Rename to ...
16649 (profile_quality): ... this one.
16650 (profile_probability): New.
16651 (profile_count): Update.
16652 * profile.c (compute_branch_probabilities): Update.
16653 * recog.c (peep2_attempt): Update.
16654 * sched-ebb.c (schedule_ebbs): Update.
16655 * sched-rgn.c (find_single_block_region): Update.
16656 (compute_dom_prob_ps): Update.
16657 (schedule_region): Update.
16658 * sel-sched-ir.c (compute_succs_info): Update.
16659 * stmt.c (struct case_node): Update.
16660 (do_jump_if_equal): Update.
16661 (get_outgoing_edge_probs): Update.
16662 (conditional_probability): Update.
16663 (emit_case_dispatch_table): Update.
16664 (expand_case): Update.
16665 (expand_sjlj_dispatch_table): Update.
16666 (emit_case_nodes): Update.
16667 * targhooks.c: Update.
16668 * tracer.c (better_p): Update.
16669 (find_best_successor): Update.
16670 * trans-mem.c (expand_transaction): Update.
16671 * tree-call-cdce.c: Update.
16672 * tree-cfg.c (gimple_split_edge): Upate.
16673 (move_sese_region_to_fn): Upate.
16674 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
16675 * tree-eh.c (lower_resx): Upate.
16676 (cleanup_empty_eh_move_lp): Upate.
16677 * tree-if-conv.c (version_loop_for_if_conversion): Update.
16678 * tree-inline.c (copy_edges_for_bb): Update.
16679 (copy_cfg_body): Update.
16680 * tree-parloops.c (gen_parallel_loop): Update.
16681 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
16682 (gimple_gen_time_profiler): Update.
16683 * tree-ssa-dce.c (remove_dead_stmt): Update.
16684 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
16685 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
16686 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
16687 (unloop_loops): Update.
16688 (try_peel_loop): Update.
16689 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
16690 * tree-ssa-loop-split.c (connect_loops): Update.
16691 (split_loop): Update.
16692 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
16693 (hoist_guard): Update.
16694 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
16695 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
16696 (value_replacement): Update.
16697 * tree-ssa-reassoc.c (branch_fixup): Update.
16698 * tree-ssa-tail-merge.c (replace_block_by): Update.
16699 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
16700 (create_edge_and_update_destination_phis): Update.
16701 (compute_path_counts): Update.
16702 (recompute_probabilities): Update.
16703 (update_joiner_offpath_counts): Update.
16704 (freqs_to_counts_path): Update.
16705 (duplicate_thread_path): Update.
16706 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
16707 (struct switch_conv_info): Update.
16708 (gen_inbound_check): Update.
16709 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
16710 (vect_do_peeling): Update.
16711 (vect_loop_versioning): Update.
16712 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
16713 (optimize_mask_stores): Update.
16714 * ubsan.c (ubsan_expand_null_ifn): Update.
16715 * value-prof.c (gimple_divmod_fixed_value): Update.
16716 (gimple_divmod_fixed_value_transform): Update.
16717 (gimple_mod_pow2): Update.
16718 (gimple_mod_pow2_value_transform): Update.
16719 (gimple_mod_subtract): Update.
16720 (gimple_mod_subtract_transform): Update.
16721 (gimple_ic): Update.
16722 (gimple_stringop_fixed_value): Update.
16723 (gimple_stringops_transform): Update.
16724 * value-prof.h: Update.
16726 2017-06-29 Carl Love <cel@us.ibm.com>
16728 * config/rs6000/rs6000-c.c: Add support for built-in functions
16729 vector signed int vec_signed (vector float);
16730 vector signed long long vec_signed (vector double);
16731 vector signed int vec_signed2 (vector double, vector double);
16732 vector signed int vec_signede (vector double);
16733 vector signed int vec_signedo (vector double);
16734 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
16735 instruction generator.
16736 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
16737 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
16738 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
16740 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
16741 vunsignede_v2df): Add define_expands.
16742 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
16743 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
16744 VEC_UNSIGNEDO): Add definitions.
16745 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
16746 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
16747 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
16748 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
16749 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
16750 * config/rs6000/altivec.h (vec_signed, vec_signed2,
16751 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
16752 vec_unsignede, vec_unsignedo): Add builtin defines.
16753 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
16755 * doc/extend.texi: Update the built-in documentation file for the
16756 new built-in functions.
16758 2017-06-29 Richard Biener <rguenther@suse.de>
16760 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
16761 reduction chains to LOOP_VINFO_REDUCTIONS.
16762 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
16763 SLP reductions after processing reduction chains.
16765 2017-06-29 Nathan Sidwell <nathan@acm.org>
16767 * builtins.c (fold_builtin_FUNCTION): Use
16768 lang_hooks.decl_printable_name.
16770 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
16772 PR middle-end/81194
16773 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
16774 with only one label.
16775 * stmt.c (expand_case): Assert NCASES is greater than one.
16777 2017-06-29 Richard Biener <rguenther@suse.de>
16779 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
16781 (group_case_labels): Likewise.
16782 (find_taken_edge): Push sanity checking on val to workers...
16783 (find_taken_edge_cond_expr): ... here
16784 (find_taken_edge_switch_expr): ... and here, handle cases
16785 with just a default label.
16786 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
16787 (group_case_labels): Likewise.
16788 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
16789 group_case_labels does anything cleanup the CFG again.
16791 2017-06-29 Bin Cheng <bin.cheng@arm.com>
16793 PR tree-optimization/81196
16794 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
16795 exit condition comparing two IVs.
16797 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
16799 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
16800 profile to the dummy entry at the end of the list of architectures.
16801 * config/arm/arm-cpu-cdata.h: Regenerated.
16803 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16804 Michael Collison <michael.collison@arm.com>
16807 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
16809 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
16810 (*aarch64_reg_<mode>3_minus_mask): New pattern.
16811 (*aarch64_<optab>_reg_di3_mask2): New pattern.
16812 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
16813 of shift when the shift amount is masked with constant equal to
16814 the size of the mode.
16815 * config/aarch64/predicates.md (subreg_lowpart_operator): New
16818 2017-06-29 Martin Liska <mliska@suse.cz>
16820 * config/i386/i386.opt: Change range from [1,5] to [0,5].
16822 2017-06-29 Yury Gribov <tetra2005@gmail.com>
16825 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
16828 (edge_growth_cache_entry::edge_growth_cache_entry): New
16830 (reset_edge_growth_cache): Update to use constructor.
16832 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16834 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
16835 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
16836 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
16838 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
16840 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
16841 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
16843 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
16845 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
16846 (*-linux-uclibc*): Add t-uclibc tmake_file.
16847 * config/t-musl: New.
16848 * config/t-uclibc: New.
16850 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
16852 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
16854 (gen_comm_data): Emit architectural setting of arch_prof.
16855 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
16857 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
16858 (armv8-m.base, armv8-m.main): Likewise.
16859 * arm-protos.h (arm_build_target): Add profile field.
16860 (arch_option): Likewise.
16861 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
16863 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
16864 arm_active_target.profile.
16866 2017-06-28 Richard Biener <rguenther@suse.de>
16868 PR middle-end/81227
16869 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
16870 TYPE_OVERFLOW_WRAPS.
16871 * match.pd (negate_expr_p): Likewise.
16872 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
16873 fold_build2, not fold_binary.
16875 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
16877 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
16878 Convert memory address to Pmode.
16879 (aarch64_print_operand): Assert MEM operands are always Pmode.
16881 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
16884 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
16885 Remove redundant if.
16886 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
16887 * config/arm/aarch-common-protos.h
16888 (aarch_forward_to_shift_is_not_shifted_re): Remove.
16889 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
16891 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
16894 * multiple_target.c (create_dispatcher_calls): Set the default
16895 clone to be static, not public.
16897 2017-06-28 Richard Biener <rguenther@suse.de>
16899 * tree-vect-loop.c (vectorizable_reduction): Move special
16900 cond reduction IV var creation ...
16901 (vect_create_epilog_for_reduction): ... here. Remove induction_index
16902 parameter. Use STMT_VINFO_VECTYPE.
16903 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
16906 2017-06-28 Martin Liska <mliska@suse.cz>
16909 * ipa-visibility.c (non_local_p): Handle visibility.
16911 2017-06-28 Martin Liska <mliska@suse.cz>
16914 * common.opt: Add IntegerRange to various options.
16915 * opt-functions.awk (integer_range_info): New function.
16916 * optc-gen.awk: Add integer_range_info to cl_options struct.
16917 * opts-common.c (decode_cmdline_option): Handle
16918 CL_ERR_INT_RANGE_ARG.
16919 (cmdline_handle_error): Likewise.
16920 * opts.c (print_filtered_help): Show valid interval in
16921 when --help is provided.
16922 * opts.h (struct cl_option): Add range_min and range_max fields.
16923 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
16925 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
16927 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
16928 (x * C EQ/NE y * C): New transformation.
16930 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
16932 * genmultilib (combination_space): Accept '+' in option names.
16934 2017-06-28 Martin Liska <mliska@suse.cz>
16937 * asan.c (instrument_derefs): Bail out inner references
16938 that are hard register variables.
16940 2017-06-28 Jakub Jelinek <jakub@redhat.com>
16943 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
16944 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
16946 2017-06-28 Richard Biener <rguenther@suse.de>
16948 * tree-vectorizer.h (vect_get_vec_defs): Remove.
16949 (vect_get_slp_defs): Adjust.
16950 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
16952 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
16954 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
16955 get_initial_defs_for_reduction instead of vect_get_vec_defs.
16956 (vectorizable_reduction): Adjust.
16957 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
16959 (vect_get_slp_defs): Likewise.
16960 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
16961 (vectorizable_bswap): Adjust.
16962 (vectorizable_call): Likewise.
16963 (vectorizable_conversion): Likewise.
16964 (vectorizable_assignment): Likewise.
16965 (vectorizable_shift): Likewise.
16966 (vectorizable_operation): Likewise.
16967 (vectorizable_store): Likewise.
16968 (vectorizable_condition): Likewise.
16969 (vectorizable_comparison): Likewise.
16971 2017-06-28 Michael Collison <michael.collison@arm.com>
16974 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
16976 (arm_gen_movmemqi): Removed unused variable 'i'.
16977 Convert 'for' loop into 'while' loop.
16978 (arm_expand_prologue): Remove last unnecessary set of insn.
16979 (thumb_pop): Remove unused variable 'pushed_words'.
16980 (thumb_exit): Remove last unnecessary set of regs_to_pop.
16982 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16984 * config/s390/predicates.md: Use s390_rel_address_ok_p.
16985 * config/s390/s390-protos.h: Add prototype of
16986 s390_rel_address_ok_p.
16987 * config/s390/s390.c (s390_got_symbol): New function.
16988 (s390_rel_address_ok_p): New function.
16989 (legitimize_pic_address): Use s390_rel_address_ok_p.
16990 (s390_load_got): Use s390_got_symbol.
16991 (s390_option_override): Issue error if
16992 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
16993 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
16995 * config/s390/s390.opt: New option mpic-data-is-text-relative.
16997 2017-06-27 Andrew Pinski <apinski@cavium.com>
16999 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
17000 (X * copysign (1.0, X)): New pattern.
17001 (X * copysign (1.0, -X)): New pattern.
17002 (copysign (-1.0, CST)): New pattern.
17004 2017-06-27 Joseph Myers <joseph@codesourcery.com>
17006 * genmultilib (combination_space): Remove variable.
17007 Validate reuse rules against regular expression for any sequence
17008 of multilib options in any order.
17010 2017-06-27 Michael Collison <michael.collison@arm.com>
17012 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
17013 call aarch64_split_simd_combine.
17014 * (aarch64_combine_internal<mode>): Delete pattern.
17015 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
17016 Allow register and subreg operands.
17018 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
17020 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
17021 specific need, just fallback on defaults.
17022 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
17024 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
17025 Olivier Hainque <hainque@adacore.com>
17027 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
17029 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
17030 targets. Pick a default if no particular attempt applied.
17031 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
17034 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
17036 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
17037 (x86_64-wrs-vxworks7): Likewise.
17039 2017-06-27 Marek Polacek <polacek@redhat.com>
17042 * ubsan.c (instrument_null): Check get_base_address's result for null.
17044 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
17046 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
17048 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
17050 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
17051 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
17052 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
17053 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
17054 New function types.
17055 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
17056 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
17057 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
17058 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
17059 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
17060 BUILT_IN_FEUPDATEENV): New builtins.
17061 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
17062 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
17063 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
17064 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
17066 (builtin_structptr_types): Adjust size.
17067 * tree.c (builtin_structptr_types): Add four entries.
17069 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
17070 Olivier Hainque <hainque@adacore.com>
17072 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
17073 (TLS_SYM): New local macro, forcing reference to __tls__ on
17074 link command lines for VxWorks 7 RTPs, triggering initialization
17076 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
17077 OS features TLS support, true for RTPs on VxWorks 7.
17078 * config/vxworks.c (vxworks_override_options): Setup emutls
17081 2017-06-27 Jakub Jelinek <jakub@redhat.com>
17083 * predict.c (test_prediction_value_range): Use -1U instead of -1
17084 to avoid narrowing conversion warning.
17085 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
17086 to avoid narrowing conversion warning.
17087 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
17089 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
17091 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
17093 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
17094 64bit configurations.
17095 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
17096 (SIZE_TYPE): Likewise.
17097 * config/vxworks.c (vxworks_emutls_var_fields): Use
17098 long_unsigned_type_node instead of unsigned_type_node as the offset
17099 field type, which is "pointer" mode in emutls.c.
17101 2017-06-27 Jakub Jelinek <jakub@redhat.com>
17104 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
17106 PR middle-end/81207
17107 * gimple-fold.c (replace_call_with_call_and_fold): Handle
17108 gimple_vuse copying separately from gimple_vdef copying.
17110 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17112 * value-prof.c (free_hist): Remove call to memset and the enclosing if
17115 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
17116 Olivier Hainque <hainque@adacore.com>
17118 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
17119 for all vxworks7 targets.
17120 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
17121 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
17122 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
17123 variations for VX6/VX7 and 32/64bits later on in ...
17124 (VXWORKS_LIB_SPEC): Leverage new macros.
17125 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
17126 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
17128 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
17130 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
17131 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
17133 2017-06-26 Carl Love <cel@us.ibm.com>
17135 * config/rs6000/rs6000-c.c: Add support for built-in functions
17136 vector bool char vec_reve (vector bool char);
17137 vector signed char vec_reve (vector signed char);
17138 vector unsigned char vec_reve (vector unsigned char);
17139 vector bool int vec_reve (vector bool int);
17140 vector signed int vec_reve (vector signed int);
17141 vector unsigned int vec_reve (vector unsigned int);
17142 vector bool long long vec_reve (vector bool long long);
17143 vector signed long long vec_reve (vector signed long long);
17144 vector unsigned long long vec_reve (vector unsigned long long);
17145 vector bool short vec_reve (vector bool short);
17146 vector signed short vec_reve (vector signed short);
17147 vector double vec_reve (vector double);
17148 vector float vec_reve (vector float);
17149 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
17150 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
17151 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
17152 (altivec_vreve): New pattern.
17153 * config/rs6000/altivec.h (vec_reve): New define.
17154 * doc/extend.texi (vec_rev): Update the built-in documentation file
17155 for the new built-in functions.
17157 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17159 PR tree-optimization/71815
17160 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
17162 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
17164 (slsr_process_phi): Likewise.
17165 (replace_uncond_cands_and_profitable_phis): Don't replace a
17166 multiply candidate with a stride of 1 (copy or cast).
17167 (phi_incr_cost): Call uses_consumed_by_stmt rather than
17169 (lowest_cost_path): Likewise.
17170 (total_savings): Likewise.
17172 2017-06-26 Richard Biener <rguenther@suse.de>
17175 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
17176 Use def_builtin_pure for all gather builtins.
17178 2017-06-26 Richard Biener <rguenther@suse.de>
17180 PR tree-optimization/81203
17181 * tree-tailcall.c (find_tail_calls): Do not move stmts into
17182 non-dominating BBs.
17184 2017-06-26 Marek Polacek <polacek@redhat.com>
17187 * doc/invoke.texi: Document -Wmultistatement-macros.
17189 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
17191 * doc/sourcebuild.texi (ARM-specific attributes): Document new
17192 arm_neon_ok_no_float_abi effective target.
17194 2017-06-26 Richard Biener <rguenther@suse.de>
17196 PR tree-optimization/80928
17197 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
17198 (copy_bbs): Set BB_DUPLICATED flag early.
17199 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
17201 (execute_on_shrinking_pred): Likewise.
17202 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
17203 BB_DUPLICATED blocks.
17204 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
17205 iterate over all PHIs considering removal of *gsi.
17207 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
17209 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
17212 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
17214 * config/rs6000/rs6000-string.c: (expand_block_clear,
17215 do_load_for_compare, select_block_compare_mode,
17216 compute_current_alignment, expand_block_compare,
17217 expand_strncmp_align_check, expand_strn_compare,
17218 expand_block_move, rs6000_output_load_multiple)
17219 Move functions related to string/block move/compare
17220 to a separate file.
17221 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
17222 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
17223 for this function which is now used in two files.
17224 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
17225 * config.gcc: Add rs6000-string.o to extra_objs for
17226 targets powerpc*-*-* and rs6000*-*-*.
17228 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
17231 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
17232 32-bit, since indexed is not valid for DImode.
17233 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
17234 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
17235 (define_peephole2 for Altivec d-form load): Add 32-bit support.
17236 (define_peephole2 for Altivec d-form store): Likewise.
17239 * multiple_target.c (create_dispatcher_calls): Only create the
17240 dispatcher call if the function is the default clone of a
17241 versioned function.
17243 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
17245 PR middle-end/80902
17246 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
17247 a call, force the call to not be a tail call.
17249 2017-06-23 Jeff Law <law@redhat.com>
17251 * doc/contrib.texi: Add entry for Steven Pemberton's work on
17254 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
17256 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
17257 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
17258 handling for early expansion of vector shifts (sl,sr,sra,rl).
17259 (builtin_function_type): Add vector shift right instructions
17260 to the unsigned argument list.
17262 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
17264 rtl-optimizatoin/79286
17265 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
17266 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
17267 trap. PIC register plus a const unspec without offset can never trap.
17269 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
17271 * tree.h (builtin_structptr_type): New type.
17272 (builtin_structptr_types): Declare new array.
17273 * tree.c (builtin_structptr_types): New array.
17274 (free_lang_data, build_common_tree_nodes): Use it.
17276 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
17279 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
17282 2017-06-22 Matt Turner <mattst88@gmail.com>
17284 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
17285 Lake models to skylake case. Assume skylake for unknown
17286 models with clflushopt.
17288 2017-06-22 Jeff Law <law@redhat.com>
17290 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
17291 frame sizes that do not satisfy aarch64_uimm12_shift.
17293 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
17295 * profile-count.h (apply_probability,
17296 apply_scale, probability_in): Fix checks for zero.
17298 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17300 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
17301 * doc/cppdiropts.texi (-I @var{dir}): Document it.
17303 2016-06-22 Richard Biener <rguenther@suse.de>
17305 * tree-vect-loop.c (vect_model_reduction_cost): Handle
17306 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
17307 REDUC_MAX_EXPR support.
17308 (vectorizable_reduction): Likewise.
17309 (vect_create_epilog_for_reduction): Likewise.
17311 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
17313 * match.pd (A / (1 << B) -> A >> B): New.
17314 * generic-match-head.c: Include optabs-tree.h.
17315 * gimple-match-head.c: Likewise.
17316 * optabs-tree.h (target_supports_op_p): New.
17317 * optabs-tree.c (target_supports_op_p): New.
17319 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17321 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
17322 $gcc_cv_ld --help output.
17323 (gcc_cv_ld_demangle): Likewise.
17324 (gcc_cv_ld_eh_frame_hdr): Likewise.
17325 (gcc_cv_ld_pie): Likewise.
17326 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
17327 (gcc_cv_ld_buildid): Likewise.
17328 (gcc_cv_ld_sysroot): Likewise.
17329 (ld_bndplt_support): Likewise.
17330 (ld_pushpopstate_support): Likewise.
17331 * configure: Regenerate.
17332 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
17334 2017-06-21 Jakub Jelinek <jakub@redhat.com>
17337 * config/i386/sse.md (round<mode>2): Renumber match_dup and
17338 operands indexes to avoid gap between operands and match_dups.
17340 2017-06-21 Andrew Pinski <apinski@cavium.com>
17342 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
17343 Increment Arith_shift and Arith_shift_reg by 1.
17344 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
17346 * config/aarch64/aarch64.c (thunderx_tunings): Enable
17347 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
17348 (aarch64_strip_extend): Add new argument and test for it.
17349 (aarch64_cheap_mult_shift_p): New function.
17350 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
17351 add a cost if it is true.
17352 Update calls to aarch64_strip_extend.
17353 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
17355 2017-06-21 Andrew Pinski <apinski@cavium.com>
17357 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
17359 (thunderxt88): Likewise.
17360 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
17361 (thunderx_prefetch_tune): New variable.
17362 (thunderx2t99_prefetch_tune): Update for the correct values.
17363 (thunderxt88_tunings): New variable.
17364 (thunderx_tunings): Use thunderx_prefetch_tune instead of
17365 generic_prefetch_tune.
17366 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
17368 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17370 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
17371 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
17372 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
17373 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
17374 (aarch64_atomic_cas<mode>, GPI): Likewise.
17376 2017-06-21 Martin Liska <mliska@suse.cz>
17378 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
17379 statements on cold and hot labels.
17380 * predict.c (tree_estimate_probability_bb): Remove the
17381 prediction from this place.
17383 2017-06-21 Martin Liska <mliska@suse.cz>
17385 PR tree-optimization/79489
17386 * gimplify.c (maybe_add_early_return_predict_stmt): New
17388 (gimplify_return_expr): Call the function.
17389 * predict.c (tree_estimate_probability_bb): Remove handling
17391 * predict.def: Update comment about early return predictor.
17392 * gimple-predict.h (is_gimple_predict): New function.
17393 * predict.def: Change default value of early return to 66.
17394 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
17396 * passes.def: Put pass_strip_predict_hints to the beginning of
17399 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
17401 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
17402 FUNCTION_DECL declarations.
17403 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
17405 (dwaf2out_decl): Likewise.
17406 * godump.c (go_early_global_decl): Skip call to the real debug hook
17407 for FUNCTION_DECL declarations.
17408 * passes.c (rest_of_decl_compilation): Skip call to the
17409 early_global_decl debug hook for FUNCTION_DECL declarations, unless
17410 -fdump-go-spec is passed.
17412 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
17414 * config/i386/i386.c (struct builtin_isa): New field pure_p.
17415 Reorder for compactness.
17416 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
17417 (def_builtin_pure, def_builtin_pure2): New functions.
17418 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
17420 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
17422 * match.pd (nop_convert): New predicate.
17423 ((A +- CST1) +- CST2): Allow some NOP conversions.
17425 2017-06-21 Jakub Jelinek <jakub@redhat.com>
17428 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
17429 with ctors/dtors if GOVD_SHARED is set.
17431 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
17433 * config/aarch64/aarch64.md (movti_aarch64):
17434 Emit mov rather than orr.
17435 (movtf_aarch64): Likewise.
17436 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
17437 Emit mov rather than orr.
17439 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
17441 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
17442 Swap alternatives, make integer dup more expensive.
17444 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
17446 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
17447 Return true for non-tls symbols.
17449 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
17451 * config/aarch64/aarch64-cores.def (cortex-a55): New.
17452 (cortex-a75): Likewise.
17453 (cortex-a75.cortex-a55): Likewise.
17454 * config/aarch64/aarch64-tune.md: Regenerate.
17455 * doc/invoke.texi (-mtune): Document new values for -mtune.
17457 2017-06-21 Tom de Vries <tom@codesourcery.com>
17459 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
17460 stack_size feature.
17461 (Effective-Target Keywords, Other attributes): Suggest using
17462 dg-add-options stack_size feature to get stack limit in stack_size
17463 effective target documentation.
17465 2017-06-21 Julian Brown <julian@codesourcery.com>
17466 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
17468 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
17469 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
17470 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
17472 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
17473 attribute type list for neon_multiply.
17474 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
17475 attribute type list for neon_multiply.
17476 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
17477 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
17478 attribute type list for neon_multiply.
17479 * config/arm/types.md (crypto_pmull): Add.
17480 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
17481 attribute type list.
17483 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
17485 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
17488 2017-06-20 Jakub Jelinek <jakub@redhat.com>
17490 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
17491 to make sure not to dereference a NULL cost_classes_ptr pointer.
17493 2017-06-20 Carl Love <cel@us.ibm.com>
17495 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17496 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
17497 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
17498 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
17499 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
17500 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
17501 VMULOSW): New enum "unspec" values.
17502 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
17503 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
17504 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
17505 altivec_vmulosw): New patterns.
17506 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
17507 VMULOSW): Add definitions.
17509 2017-06-20 Julia Koval <julia.koval@intel.com>
17511 * config/i386/i386.c: Fix rounding expand for new pattern.
17512 * config/i386/subst.md: Fix pattern (parallel -> unspec).
17514 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
17516 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
17517 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
17519 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
17521 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
17524 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
17526 * config/aarch64/aarch64-cores.def: Rearrange to sort by
17527 architecture, then by implementer ID.
17528 * config/aarch64/aarch64-tune.md: Regenerate.
17530 2017-06-20 Richard Biener <rguenther@suse.de>
17532 PR middle-end/81097
17533 * fold-const.c (split_tree): Fold to type before negating.
17535 2017-06-20 David Malcolm <dmalcolm@redhat.com>
17537 * diagnostic-show-locus.c
17538 (selftest::test_fixit_deletion_affecting_newline): New function.
17539 (selftest::diagnostic_show_locus_c_tests): Call it.
17541 2017-06-20 Andreas Schwab <schwab@suse.de>
17544 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
17547 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
17549 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
17550 __ARM_FEATURE_COPROC according to support.
17552 2017-06-20 Jakub Jelinek <jakub@redhat.com>
17554 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
17555 Rewritten to avoid overflow for > 32-bit pointers.
17558 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
17559 by removing enum keyword.
17560 (ubsan_type_descriptor): Likewise. Formatting fix.
17563 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
17564 splitter): Require TARGET_SSE2 in the condition.
17566 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
17569 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
17570 for doing vector set of SFmode on ISA 3.0.
17571 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
17572 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
17574 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
17575 SFmode value into a V4SF variable that was extracted from another
17576 V4SF variable without converting the element to double precision
17577 and back to single precision vector format.
17578 (vsx_insert_extract_v4sf_p9_2): Likewise.
17580 2017-06-19 Jakub Jelinek <jakub@redhat.com>
17582 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
17583 in UWHI to avoid undefined overflow.
17586 * ubsan.h (enum ubsan_encode_value_phase): New.
17587 (ubsan_encode_value): Change second argument to
17588 enum ubsan_encode_value_phase with default value of
17589 UBSAN_ENCODE_VALUE_GENERIC.
17590 * ubsan.c (ubsan_encode_value): Change second argument to
17591 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
17592 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
17593 create_tmp_var_raw instead of create_tmp_var and use a
17595 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
17596 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
17597 ubsan_encode_value callers.
17600 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
17601 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
17602 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
17604 2017-06-19 Richard Biener <rguenther@suse.de>
17606 PR middle-end/81118
17607 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
17608 estimates if we changed anything.
17610 2017-06-19 Richard Biener <rguenther@suse.de>
17612 PR tree-optimization/80887
17613 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
17614 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
17615 simplified lookups, then reset mprts_hook.
17616 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
17618 (try_to_simplify): Likewise.
17620 2017-06-19 Martin Liska <mliska@suse.cz>
17623 * gimplify.c (gimplify_switch_expr):
17624 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
17626 2017-06-19 Martin Liska <mliska@suse.cz>
17628 * doc/install.texi: Document that PGO runs in 4 stages.
17630 2017-06-19 Martin Liska <mliska@suse.cz>
17633 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
17634 to dispatcher function name.
17635 * multiple_target.c (replace_function_decl): New function.
17636 (create_dispatcher_calls): Redirect both edges and references.
17638 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
17640 * profile-count.c (profile_count::dump): Dump quality.
17641 (profile_count::differs_from_p): Update for unsigned val.
17642 * profile-count.h (profile_count_quality): New enum.
17643 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
17645 2017-06-19 Richard Biener <rguenther@suse.de>
17647 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
17648 struct function as arg.
17649 (estimate_numbers_of_iterations): Export overload with loop arg.
17650 (free_numbers_of_iterations_estimates_loop): Use an overload of
17651 free_numbers_of_iterations_estimates instead.
17652 * tree-cfg.c (remove_bb): Adjust.
17653 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
17654 * tree-parloops.c (gen_parallel_loop): Likewise.
17655 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
17657 (tree_unroll_loops_completely): Likewise.
17658 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
17659 Use an overload instead and export.
17660 (estimated_loop_iterations): Adjust.
17661 (max_loop_iterations): Likewise.
17662 (likely_max_loop_iterations): Likewise.
17663 (estimate_numbers_of_iterations): Take struct function as arg
17665 (loop_exits_before_overflow): Adjust.
17666 (free_numbers_of_iterations_estimates_loop): Use an overload.
17667 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
17668 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
17670 2017-06-19 Richard Biener <rguenther@suse.de>
17673 * ipa-prop.c (find_constructor_constant_at_offset): Handle
17674 RANGE_EXPR conservatively.
17676 2017-06-16 Carl Love <cel@us.ibm.com>
17678 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17679 definitions for vec_float, vec_float2, vec_floato,
17680 vec_floate built-ins.
17681 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
17682 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
17684 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
17685 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
17686 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
17687 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
17688 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
17689 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
17690 vec_floato): Add builtin defines.
17691 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
17692 Update the built-in documentation file for the new built-in
17695 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17697 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
17698 (mthumb): Mark as the negative of -marm.
17700 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17702 * doc/invoke.texi (ARM Options, -mcpu): Document supported
17704 (ARM Options, -mtune): Document that this accepts the same
17705 extension options as -mcpu.
17706 (ARM Options, -mfpu): Document addition of -mfpu=auto.
17708 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17710 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
17711 permitted extensions.
17713 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17715 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
17716 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
17717 (armv8-m.main): Add option +nodsp.
17718 * config/arm/arm-cpu-cdata.h: Regenerated.
17720 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17722 * config/arm/t-fuchsia: New file.
17723 * config.gcc (arm*-*-fuchsia*): Use it.
17725 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17727 * config/arm/t-symbian: Rewrite for new option infrastructure.
17729 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17731 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
17732 (MULTILIB_REQUIRED): Likewise.
17734 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17736 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
17737 (MULTILIB_RESUE): Likewise.
17738 (MULTILIB_MATCHES): Likewise.
17739 (MULTLIB_REQUIRED): Likewise.
17741 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17743 * config/arm/t-rtems: Rewrite for new option framework.
17745 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17747 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
17748 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
17749 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
17750 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
17751 * config/arm/t-multilib: ... here.
17752 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
17753 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
17754 armv7-a and armv8*-a when A-profile libraries have not been built.
17755 * config/arm/t-rmprofile: Rewrite.
17757 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17759 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
17760 with a backslash. Remove the backslash after substituting unescaped
17762 * doc/fragments.texi (MULTILIB_REUSE): Document it.
17764 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17766 * config.gcc: (arm*-*-*): When building a-profile libraries, force
17767 the driver to pass through the default setting of -mfloat-abi.
17768 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
17770 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
17771 (all_feat_combs): New rule.
17772 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
17774 * config/arm/t-aprofile: Rewrite.
17776 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17778 * config/arm/arm.h (FPUTYPE_AUTO): Define.
17779 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
17780 fpu is not specified by the user/command-line.
17781 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
17782 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
17783 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
17784 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
17785 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
17786 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
17788 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17790 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
17791 * config/arm/t-arm-elf: Rewritten.
17793 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17795 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
17796 have some floating-point instructions.
17797 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
17798 (TARGET_MAYBE_HARD_FLOAT): New macro.
17799 * config/arm/arm-builtins.c (arm_init_builtins): Use
17800 TARGET_MAYBE_HARD_FLOAT.
17801 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
17803 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17805 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
17806 (configargs.h): Include it.
17807 (arm_print_hint_for_fpu_option): New function.
17808 (arm_parse_fpu_option): New function.
17809 (candidate_extension): New class.
17810 (arm_canon_for_multilib): New function.
17811 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
17812 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
17813 (ARCH_CANONICAL_SPECS): New macro.
17814 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
17816 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17818 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
17819 are set after handling multilib fragments. Set target_cpu_default2
17822 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17824 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
17826 (arm*-*-*): Set target_cpu_default2 to a quoted string.
17827 * config/arm/parsecpu.awk (check_cpu): Validate any extension
17829 (check_arch): Likewise.
17830 * config/arm/arm.c (arm_configure_build_target): Handle
17831 TARGET_CPU_DEFAULT being a string constant. Scan any feature
17832 options in the default.
17834 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17836 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
17837 when an option is an alias of another.
17838 * config/arm/parsecpu.awk (optalias): New parser token.
17839 (gen_comm_data): Mark non-alias options as such. Emit entries
17840 for extension aliases.
17841 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
17842 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
17843 (armv6kz, armv6zk, armv6t2): Likewise.
17844 (armv7): Make vfpv3-d16 an alias.
17845 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
17847 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
17848 Sort in canonical order.
17849 (armv8-a): Sort in canonical order.
17850 (armv8.1-a, armv8.2-a): Likewise.
17851 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
17853 (cortex-a9): Sort in canonical order.
17854 * config/arm/arm.c (selftests.h): Include it.
17855 (arm_test_cpu_arch_data): New function.
17856 (arm_run_self_tests): New function.
17857 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
17858 (targetm): Move declaration to the end of the file.
17859 * arm-cpu-cdata.h: Regenerated.
17861 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17863 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
17864 call to target_mode_check describing the type of option passed.
17865 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
17866 (arm_target_thumb_only): Use arm_parse_arch_option_name or
17867 arm_parse_cpu_option_name to match parameters against list of
17869 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
17870 arm_arch_core_flags data structure.
17871 * config/arm/arm-cpu_cdata.h: Regenerated.
17873 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17875 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
17877 (arm_print_hint_for_cpu_option): Likewise.
17878 (arm_print_hint_for_arch_option): Likewise.
17879 (arm_parse_cpu_option_name): Likewise.
17880 (arm_parse_arch_option_name): Likewise.
17881 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
17882 of entries in the all_fpus list.
17883 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
17884 (arm_parse_cpu_option_name): Declare.
17885 (arm_parse_arch_option_name): Declare.
17886 (arm_parse_option_features): Declare.
17887 (arm_intialize_isa): Declare.
17888 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
17890 (gen_comm_data): ... here. Make definitions non-static.
17891 * config/arm/arm-cpu-data.h: Regenerated.
17892 * config/arm/arm-cpu-cdata.h: Regenerated.
17894 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17896 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
17897 (cpu_arch_extension): New structure.
17898 (cpu_arch_option, arch_option, cpu_option): New structures.
17899 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
17900 architecture types.
17901 (gen_data): Generate new format data tables.
17902 * config/arm/arm.c (cpu_tune): New structure.
17903 (cpu_option, processors): Delete.
17904 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
17905 (arm_print_hint_for_cpu_option): ... this and ...
17906 (arm_print_hint_for_arch_option): ... this.
17907 (arm_parse_arch_cpu_name): Delete. Replace with ...
17908 (arm_parse_cpu_option_name): ... this and ...
17909 (arm_parse_arch_option_name): ... this.
17910 (arm_unrecognized_feature): Change type of target parameter to
17912 (arm_parse_arch_cpu_features): Delete. Replace with ...
17913 (arm_parse_option_features): ... this.
17914 (arm_configure_build_target): Rework to use new configuration data
17916 (arm_print_tune_info): Rework for new configuration data tables.
17917 * config/arm/arm-cpu-data.h: Regenerated.
17918 * config/arm/arm-cpu.h: Regenerated.
17920 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17922 * Makefile.in (OBJS): Move sbitmap.o from here ...
17923 (OBJS-libcommon): ... to here.
17925 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17927 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
17928 (ISA_ALL_CRYPTO): New macro.
17929 (ISA_ALL_SIMD): New macro
17930 (ISA_ALL_FP): New macro.
17931 * config/arm/arm.c (fpu_bitlist): Update initializer.
17932 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
17934 (arm9e): Add fpu. Add option for nofp
17935 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
17936 (arm926ej-s, arm1026ej-s): Likewise.
17937 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
17938 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
17939 neon-fp16, neon-vfpv4, nofp and nosimd.
17940 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
17941 (cortex-a8): Add fpu. Add option for nofp.
17942 (cortex-a9): Add fpu. Add options for nosimd and nofp.
17943 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
17944 (cortex-r4f): Add fpu.
17945 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
17946 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
17948 (cortex-r8): Likewise.
17949 (cortex-m4): Add fpu. Add option for nofp.
17950 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
17951 (cortex-a17.cortex-a7): Likewise.
17952 (cortex-a32): Add fpu. Add options for crypto and nofp.
17953 (cortex-a35, cortex-a53): Likewise.
17954 (cortex-a57): Add fpu. Add option for crypto.
17955 (cortex-a72, cortex-a73): Likewise.
17956 (exynos-m1): Likewise.
17957 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
17958 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
17959 (cortex-m33): Add fpu. Add option for nofp.
17960 * config/arm/arm-cpu-cdata.h: Regenerated
17961 * config/arm/arm-cpu-data.h: Regenerated.
17963 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17965 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
17966 (armv5te, armv5tej): Likewise.
17967 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
17968 (armv7): Add options fp and vfpv3-d16.
17969 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
17970 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
17972 (armv7ve): Likewise.
17973 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
17974 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
17975 (armv8-a): Add nocrypto option.
17976 (armv8.1-a, armv8.2-a): Likewise.
17977 (armv8-m.main): add options fp, fp.dp and nofp.
17979 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
17981 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
17983 (armv8-a+crc): Delete.
17984 (armv8.1-a): Add options simd, crypto and nofp.
17985 (armv8.2-a): Add options fp16, simd, crypto and nofp.
17986 (armv8.2-a+fp16): Delete.
17987 (armv8-m.main): Add option dsp.
17988 (armv8-m.main+dsp): Delete.
17989 (cortex-a8): Add fpu. Add nofp option.
17990 (cortex-a9): Add fpu. Add nofp and nosimd options.
17991 * config/arm/parsecpu.awk (gen_data): Generate option tables and
17992 link to main cpu and architecture data structures.
17993 (gen_comm_data): Only put isa attributes from the main architecture
17995 (option): New statement for architecture and CPU entries.
17996 * arm.c (struct cpu_option): New structure.
17997 (struct processors): Add entry for options.
17998 (arm_unrecognized_feature): New function.
17999 (arm_parse_arch_cpu_name): Ignore any characters after the first
18001 (arm_parse_arch_cpu_feature): New function.
18002 (arm_configure_build_target): Separate out any CPU and architecture
18003 features and parse separately. Don't error out if -mfpu=auto is
18004 used with only an architecture string.
18005 (arm_print_asm_arch_directives): New function.
18006 (arm_file_start): Call it.
18007 * config/arm/arm-cpu-cdata.h: Regenerated.
18008 * config/arm/arm-cpu-data.h: Likewise.
18009 * config/arm/arm-tables.opt: Likewise.
18011 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
18013 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
18014 assembler when it is not -mfpu=auto.
18016 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
18018 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
18019 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
18020 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
18021 (ASM_CPU_SPEC): Rewrite.
18022 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
18023 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
18024 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
18025 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
18026 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
18027 copied string is NUL-terminated. Also strip any characters prefixed
18029 (arm_rewrite_selected_arch): New function.
18030 (arm_rewrite_march): New function.
18032 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
18034 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
18035 (x_arm_cpu_string, x_arm_tune_string): Likewise.
18036 (march, mcpu, mtune): Convert to string-based options.
18037 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
18038 (arm_parse_arch_cpu_name): New function.
18039 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
18040 identify selected architecture or CPU.
18041 (arm_option_save): New function.
18042 (TARGET_OPTION_SAVE): Redefine.
18043 (arm_option_restore): Restore string options.
18044 (arm_option_print): Print string options.
18046 2017-06-16 Martin Sebor <msebor@redhat.com>
18048 PR tree-optimization/80933
18049 PR tree-optimization/80934
18050 * builtins.c (fold_builtin_3): Do not handle bcmp here.
18051 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
18052 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
18053 (gimple_fold_builtin): Call them.
18055 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
18057 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
18058 as unlikely; update profile.
18060 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
18062 * predict.c (force_edge_cold): Handle declaring edges impossible
18065 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
18067 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
18069 (try_unroll_loop_completely): Fix reporting.
18071 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
18073 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
18075 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
18078 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
18079 if given a non-constant argument for an intrinsic which requires a
18082 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
18084 * profile.c (compare_freqs): New function.
18085 (branch_prob): Sort edge list.
18086 (find_spanning_tree): Assume that the list is priority sorted.
18088 2017-06-16 Richard Biener <rguenther@suse.de>
18090 PR tree-optimization/81090
18091 * passes.def (pass_record_bounds): Remove.
18092 * tree-pass.h (make_pass_record_bounds): Likewise.
18093 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
18094 make_pass_record_bounds): Likewise.
18095 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
18096 not free niter estimates at the beginning but at the end.
18097 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
18099 2017-06-16 Richard Biener <rguenther@suse.de>
18101 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
18102 initializer to workaround ICE in host GCC 4.8.
18104 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
18106 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
18108 (clone_inlined_nodes): Update.
18110 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18112 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
18113 prefetch settings, and enable prefetching by default at -O3.
18115 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18117 * config/aarch64/aarch64.c (aarch64_override_options_internal):
18118 Set flag_prefetch_loop_arrays according to tuning data.
18120 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18122 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
18123 New tune structure.
18124 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
18125 [Unrelated to main purpose of the patch] Place the pointer field last
18126 to enable type checking errors when tune structure are wrongly merged.
18127 * config/aarch64/aarch64.c (generic_prefetch_tune,)
18128 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
18129 (thunderx2t99_prefetch_tune): New tune constants.
18130 (tune_params *_tunings): Update all tunings (no functional change).
18131 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
18132 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
18133 from tunings structures.
18135 2017-06-16 Jakub Jelinek <jakub@redhat.com>
18138 * ubsan.c (instrument_null): Add T argument, use it instead
18139 of computing it based on IS_LHS.
18140 (instrument_object_size): Likewise.
18141 (pass_ubsan::execute): Adjust instrument_null and
18142 instrument_object_size callers to pass gimple_get_lhs or
18143 gimple_assign_rhs1 result to it. Use instrument_null instead of
18144 calling get_base_address and instrument_mem_ref. Handle
18145 aggregate call arguments for object-size sanitization.
18147 2017-06-16 Yury Gribov <tetra2005@gmail.com>
18149 PR tree-optimization/81089
18150 * tree-vrp.c (is_masked_range_test): Validate operands of
18153 2017-06-15 Martin Sebor <msebor@redhat.com>
18156 * dumpfile.c (dump_register): Avoid calling memset to initialize
18157 a class with a default ctor.
18158 * gcc.c (struct compiler): Remove const qualification.
18159 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
18160 * hash-table.h: Ditto.
18161 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
18163 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
18164 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
18166 * params.h (struct param_info): Make struct members non-const.
18167 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
18168 with default initialization.
18169 * vec.h (vec_copy_construct, vec_default_construct): New helper
18171 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
18172 with vec_copy_construct.
18173 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
18174 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
18175 * doc/invoke.texi (-Wclass-memaccess): Document.
18177 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18179 * emit-rtl.h (is_leaf): Update comment about local
18180 register allocator.
18182 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
18185 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
18186 for a variable to have a section before checking if the section has a
18188 Set section to.persistent if persistent attribute is set.
18189 Warn if .persistent attribute is used on an automatic variable.
18191 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
18193 PR rtl-optimization/80474
18194 * reorg.c (update_block): Do not ignore instructions in a delay slot.
18196 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
18198 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
18201 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
18203 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
18204 (casesi): Emit bounds checking as RTL.
18205 (casesi_internal_mips16_<mode>): Remove bounds checking.
18207 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
18209 * config/xtensa/xtensa.c (xtensa_option_override): Append
18210 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
18211 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
18212 xtensa_doloop_hooks): Define unconditionally.
18213 (xtensa_reorg_loops): Only call reorg_loops in the presence of
18215 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
18216 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
18217 for it in xtensa_option_override.
18218 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
18219 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
18221 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
18223 * doc/cppopts.texi: Document '-' special value to -MF.
18225 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
18227 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
18228 (cortex_a53_fconst): Likewise.
18229 (cortex_a53_fpmul): Likewise.
18230 (cortex_a53_f_load_64): Likewise.
18231 (cortex_a53_f_load_many): Likewise.
18232 (cortex_a53_advsimd_alu): Likewise.
18233 (cortex_a53_advsimd_alu_q): Likewise.
18234 (cortex_a53_advsimd_mul): Likewise.
18235 (cortex_a53_advsimd_mul_q): Likewise.
18236 (fpmac bypass): Add new bypass for fpmac-fpmac case.
18237 Add missing fmul, r2f_cvt and fconst cases.
18239 2017-06-14 Richard Biener <rguenther@suse.de>
18241 PR middle-end/81088
18242 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
18244 (fold_binary_loc): When associating do not treat pre-existing
18245 TREE_OVERFLOW on literal constants as a reason to allow
18246 TREE_OVERFLOW on associated literal constants.
18248 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
18250 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
18251 (MASK_FEATURES): New macro.
18252 * config/sparc/sparc.c (sparc_option_override): Remove the special
18253 handling of -mfpu and generalize it to all MASK_FEATURES switches.
18255 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
18257 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
18258 a division of 0 if non-call exceptions are enabled.
18260 2017-06-14 Andrew Pinski <apinski@cavium.com>
18261 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
18264 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
18265 Improve vector initialization code gen for only variable case.
18267 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
18269 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
18271 2017-06-14 Richard Biener <rguenther@suse.de>
18273 PR tree-optimization/81083
18274 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
18277 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
18279 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
18280 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
18281 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
18282 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
18283 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
18284 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
18286 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
18288 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
18289 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
18291 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
18293 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
18295 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
18297 * config/rs6000/t-rtems: Don't handle SPE.
18299 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
18301 * config/rs6000/t-linux: Don't handle SPE.
18303 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
18305 * config/rs6000/eabispe.h: Delete file.
18307 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
18309 * config/rs6000/t-spe: Delete file.
18311 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
18313 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
18314 (rs6000_legitimate_offset_address_p): Return false for anything in
18315 V2SImode or V2SFmode.
18317 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
18319 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
18320 except V2SF and V2SI. Rearrange the vector modes, and add comments.
18321 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
18323 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
18324 (rs6000_legitimate_offset_address_p): Ditto.
18325 (rs6000_emit_move): Ditto.
18326 (rs6000_init_builtins): Remove V4HI_type_node.
18328 2017-06-13 Martin Liska <mliska@suse.cz>
18331 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
18332 (gate_asan): Likewise.
18333 * asan.h (asan_no_sanitize_address_p): Remove the function.
18334 (sanitize_flags_p): New function.
18335 * builtins.def: Fix coding style.
18336 * common.opt: Use renamed enum value.
18337 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
18338 * doc/extend.texi: Document no_sanitize attribute.
18339 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
18340 to SANITIZE_UNDEFINED_NONDEFAULT.
18341 * gcc.c (sanitize_spec_function): Use the renamed enum value.
18342 * gimple-fold.c (optimize_atomic_compare_exchange_p):
18343 Use sanitize_flags_p.
18344 * gimplify.c (gimplify_function_tree): Likewise.
18345 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
18346 * opts.c (parse_no_sanitize_attribute): New function.
18347 (common_handle_option): Use renamed enum value.
18348 * opts.h (parse_no_sanitize_attribute): Declare.
18349 * tree.c (sanitize_flags_p): New function.
18350 * tree.h: Declared here.
18351 * tsan.c: Use sanitize_flags_p.
18352 * ubsan.c (ubsan_expand_null_ifn): Likewise.
18353 (instrument_mem_ref): Likewise.
18354 (instrument_bool_enum_load): Likewise.
18355 (do_ubsan_in_current_function): Remove the function.
18356 (pass_ubsan::execute): Use sanitize_flags_p.
18357 * ubsan.h: Remove do_ubsan_in_current_function
18358 * tree-cfg.c (print_no_sanitize_attr_value): New function.
18359 (dump_function_to_file): Use it here.
18361 2017-06-13 Martin Jambor <mjambor@suse.cz>
18363 PR tree-optimization/80803
18364 PR tree-optimization/81063
18365 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
18366 (propagate_subaccesses_across_link): Enqueue subtree whenever
18367 necessary instead of relying on the caller.
18369 2017-06-13 Martin Jambor <mjambor@suse.cz>
18371 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
18372 that have a first_link.
18373 (sort_and_splice_var_accesses): Do not check first_link before
18375 (subtree_mark_written_and_enqueue): Likewise.
18376 (propagate_all_subaccesses): Likewise and do not stop at first
18377 parent with a first_link.
18379 2017-06-13 Martin Jambor <mjambor@suse.cz>
18381 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
18384 2017-06-13 Yury Gribov <tetra2005@gmail.com>
18386 * match.pd: New pattern.
18388 2017-06-13 Yury Gribov <tetra2005@gmail.com>
18390 * tree-vrp.c (is_masked_range_test): New function.
18391 (register_edge_assert_for): Determine ranges for
18394 2017-06-13 Yury Gribov <tetra2005@gmail.com>
18396 PR tree-optimization/67328
18397 * fold-const.c (maskable_range_p): New function.
18398 (build_range_check): Generate bittests if possible.
18400 2017-06-13 Martin Liska <mliska@suse.cz>
18402 * gimple-pretty-print.c (dump_probability): Add new argument.
18403 (dump_edge_probability): Dump both probability and count.
18404 (dump_gimple_label): Likewise.
18405 (dump_gimple_bb_header): Likewise.
18407 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
18410 * config/avr/avr-devices.c: Fix indentation.
18411 * config/avr/gen-avr-mmcu-specs.c: Dito.
18413 2017-06-13 Richard Biener <rguenther@suse.de>
18415 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
18416 instead get vector type from stmt_info.
18417 (vectorizable_reduction): Adjust. Remove dead code.
18419 2017-06-13 Richard Biener <rguenther@suse.de>
18421 PR middle-end/81065
18422 * fold-const.c (extract_muldiv_1): Remove bogus distribution
18423 case of C * (x * C2 + C3).
18424 (fold_addr_of_array_ref_difference): Properly fold index difference.
18426 2017-06-12 David S. Miller <davem@davemloft.net>
18429 * config/sparc/sparc.md (return expander): Emit frame blockage if
18430 function uses alloca.
18432 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
18434 * combine.c (make_field_assignment): Check len rather than the mode
18435 precision when calling force_to_mode.
18437 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
18439 Support multilibs and devices that see flash in RAM address range.
18442 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
18443 (avr_mcu_t) <flash_pm_offset>: New field.
18444 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
18445 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
18446 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
18447 (AVR_TINY_PM_OFFSET): Remove macro.
18448 * config/avr/avr.opt (-mshort-calls): New option.
18449 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
18450 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
18451 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
18452 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
18453 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
18454 instead of avr_arch->have_jmp_call.
18455 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
18456 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
18457 avr_arch->flash_pm_offset to define.
18458 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
18459 new field flash_pm_offset. Add entry for avrxmega3.
18460 (avr_texinfo): Add entry for avrxmega3.
18461 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
18462 attiny212, attiny214,
18463 attiny412, attiny414, attiny416, attiny417,
18464 attiny814, attiny816, attiny817,
18465 attiny1614, attiny1616, attiny1617,
18466 attiny3214, attiny3216, attiny3217.
18467 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
18468 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
18469 (avr_print_operand_address) [AVR_TINY]: Same.
18470 (avr_asm_init_sections) <readonly_data_section>: Only patch
18471 callback if avr_arch->flash_pm_offset = 0.
18472 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
18473 for rodata if avr_arch->flash_pm_offset != 0.
18474 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
18475 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
18476 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
18477 (m_options): Append opt_rcall.
18478 (m_dirnames): Append dir_rcall.
18479 * config/avr/t-multilib: Regenerate.
18481 * configure.ac [target=avr]: Check whether avrxmega3 default
18482 linker description file works as needed.
18483 * configure: Regenerate.
18484 * doc/avr-mmcu.texi: Regenerate.
18485 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
18486 <__AVR_ARCH__>: Document avrxmega3 and 103.
18487 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
18488 <__AVR_SHORT_CALLS__>: Document it.
18489 <__AVR_PM_BASE_ADDRESS__>: Document it.
18490 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
18491 (AVR Variable Attributes) <progmem>: Document this is
18492 not needed for avrxmega3.
18493 (AVR Named Address Spaces) <__flash>: Dito.
18495 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
18497 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
18499 2017-06-12 Doug Rupp <rupp@adacore.com>
18501 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
18502 Append vxworks-stdint.h to the tm_file list.
18503 * config/vxworks-stdint.h: New file.
18505 2017-06-12 Martin Liska <mliska@suse.cz>
18507 PR tree-optimization/81041
18508 * tree-profile.c (gimple_gen_ic_func_profiler):
18509 Create an extra BB in profile-generate
18510 (gimple_gen_time_profiler): Likewise.
18512 2017-06-12 Jakub Jelinek <jakub@redhat.com>
18514 PR tree-optimization/81003
18515 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
18516 (update_range_test): Use it instead of force_gimple_operand_gsi.
18518 2017-06-12 Richard Biener <rguenther@suse.de>
18520 PR tree-optimization/81053
18521 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
18522 with backedge value not defined in loop. Simplify def stmt
18525 2017-06-11 Tom de Vries <tom@codesourcery.com>
18528 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
18530 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
18531 nvptx_cannot_force_const_mem.
18533 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
18535 * opts.c (finish_options): Move test for flag_split_stack after
18536 it has been initialized.
18538 2017-06-11 Jason Merrill <jason@redhat.com>
18540 * tree.h (id_equal): New.
18541 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
18542 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
18543 instead of strcmp of IDENTIFIER_POINTER.
18545 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
18547 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
18548 (mark_all_inlined_calls_cdtor): Fix formating.
18549 (inline_transform): Rescale profile before inlining.
18551 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
18553 * cgraph.h (cgraph_edge::clone): Update prototype.
18554 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
18555 (cgraph_node::create_clone): Update.
18556 (cgraph_node::create_version_clone): Update.
18557 * tree-inline.c (copy_bb): Update.
18558 (expand_call_inline): Update.
18560 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
18562 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
18563 factored out from ...
18564 (rs6000_emit_prologue): ... here.
18566 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
18568 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
18569 factored out from ...
18570 (rs6000_emit_prologue): ... here.
18572 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
18574 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
18576 (handle_missing_profiles): Fix computation of tp_first_run.
18577 (counts_to_freqs): Do not touch freqs when count is 0.
18579 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
18581 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
18584 2017-06-10 Tom de Vries <tom@codesourcery.com>
18586 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
18587 attributes): Document signal effective target.
18589 2017-06-10 Tom de Vries <tom@codesourcery.com>
18591 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
18592 Document effective target stack_size.
18594 2017-06-09 David Malcolm <dmalcolm@redhat.com>
18596 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
18597 to the edit_context if they can be auto-applied.
18599 2017-06-9 Ian Lance Taylor <iant@golang.org>
18601 * opts.c (finish_options): If -fsplit-stack, disable implicit
18602 -forder-blocks-and-partition.
18603 * doc/invoke.texi (Optimize Options): Document that when using
18604 -fsplit-stack -forder-blocks-and-partition is not implicitly
18607 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
18609 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
18610 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
18611 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
18612 * builtins.def (abort, trap, unreachable): Declare cold.
18613 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
18614 * tree-core.h (ECF_COLD): New.
18615 * tree.c (set_call_expr_flags): Handle ECF_COLD.
18616 (build_common_builtin_nodes): Mark unreachable and abort as cold.
18618 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
18620 * predict.c (unlikely_executed_stmt_p): Cleanup.
18622 2017-06-09 Richard Biener <rguenther@suse.de>
18624 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
18625 model if the ref is always written to.
18627 2017-06-09 Tamar Christina <tamar.christina@arm.com>
18629 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
18631 2017-06-09 Tamar Christina <tamar.christina@arm.com>
18633 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
18636 2017-06-09 Tom de Vries <tom@codesourcery.com>
18639 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
18640 "target cannot support label values" when encountering LABEL_REF.
18642 2017-06-09 Martin Liska <mliska@suse.cz>
18644 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
18645 (gimple_gen_ic_func_profiler): Emit direct comparison
18646 of __gcov_indirect_call_callee with NULL.
18647 (gimple_gen_time_profiler): Change probability from
18648 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
18650 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
18652 * profile.c (edge_gcov_counts): Turn to pointer.
18653 (compute_branch_probabilities, compute_branch_probabilities): Update.
18654 (branch_prob): Do not clear edge_gcov_count.
18655 * profile.h (edge_gcov_counts): Turn to pointer.
18656 (edge_gcov_count): Update.
18658 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
18660 * gimple.h (gimple_check_failed): Mark cold.
18662 2017-06-09 Richard Biener <rguenther@suse.de>
18664 PR tree-optimization/66623
18665 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
18666 refactor check_reduction into two parts, properly computing
18667 whether we have to check reduction validity for outer loop
18670 2017-06-09 Richard Biener <rguenther@suse.de>
18672 PR tree-optimization/79483
18673 * graphite-scop-detection.c (order): New global.
18674 (get_order): Compute bb to order mapping that satisfies code
18675 generation constraints.
18676 (cmp_pbbs): New helper.
18677 (build_scops): Start domwalk at entry block, sort generated
18680 2017-06-09 Richard Biener <rguenther@suse.de>
18682 PR middle-end/81007
18683 * ipa-polymorphic-call.c
18684 (ipa_polymorphic_call_context::restrict_to_inner_class):
18685 Skip FIELD_DECLs with error_mark_node type.
18686 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
18689 2017-06-09 Martin Liska <mliska@suse.cz>
18691 * predict.c (struct branch_predictor): New struct.
18692 (test_prediction_value_range): New test.
18693 (predict_c_tests): New function.
18694 * selftest-run-tests.c (selftest::run_tests): Run the function.
18695 * selftest.h: Declare new tests.
18697 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
18700 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
18701 gen_add3_insn did not fail.
18702 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
18703 r0, construct that number in a temporary reg and add that reg to r0.
18704 If asked to put the result in r0 as well, fail.
18706 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
18708 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
18709 for early expansion of vec_eqv.
18711 2017-06-08 Jakub Jelinek <jakub@redhat.com>
18713 PR middle-end/81005
18714 * ubsan.c (instrument_null): Avoid pointless code temporary.
18715 (pass_ubsan::execute): Instrument aggregate arguments of calls.
18717 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
18721 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
18724 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
18727 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
18729 * predict.c (unlikely_executed_edge_p): Move ahead.
18730 (probably_never_executed_edge_p): Use it.
18732 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
18734 PR middle-end/79988
18735 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
18736 gimple_call_builtin_p call.
18738 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
18740 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
18741 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
18742 rtl_check_failed_type2, rtl_check_failed_code1,
18743 rtl_check_failed_code2, rtl_check_failed_code_mode,
18744 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
18745 rtvec_check_failed_bounds, rtl_check_failed_flag,
18746 _fatal_insn_not_found, _fatal_insn): Likewise.
18747 * tree.h (tree_contains_struct_check_failed,
18748 tree_check_failed, tree_not_check_failed,
18749 tree_class_check_failed, tree_range_check_failed,
18750 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
18751 tree_vec_elt_check_failed, phi_node_elt_check_failed,
18752 tree_operand_check_failed, omp_clause_check_failed,
18753 omp_clause_operand_check_failed, omp_clause_range_check_failed):
18756 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
18758 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
18759 flag_branch_probabilities.
18760 * ipa-inline.c (edge_badness): Likewise.
18761 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
18762 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
18763 * predict.c (maybe_hot_frequency_p): Likewise.
18764 (probably_never_executed): Likewise.
18765 * sched-ebb.c (schedule_ebbs): Likewise.
18766 * sched-rgn.c (find_single_block_region): Likewise.
18767 * tracer.c (tail_duplicate): Likewise.
18769 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
18771 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
18772 longer requires x_flag_profile_use.
18774 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
18776 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
18777 instead of flag_reorder_blocks_and_partition.
18778 * dbxout.c (dbxout_function_end): Likewise.
18779 * dwarf2out.c (gen_subprogram_die): Likewise.
18780 * haifa-sched.c (sched_create_recovery_edges): Likewise.
18781 * hw-doloop.c (reorg_loops): Likewise.
18782 * varasm.c (assemble_start_function,
18783 assemble_end_function): Likewise.
18784 (decide_function_section): Do not check for
18785 flag_reorder_blocks_and_partition.
18787 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
18789 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
18791 (chkp_get_hard_register_fake_addr_expr): Ditto.
18792 (chkp_build_addr_expr): Add check for hard reg case.
18793 (chkp_parse_array_and_component_ref): Ditto.
18794 (chkp_find_bounds_1): Ditto.
18795 (chkp_process_stmt): Don't generate bounds store for
18798 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
18800 * predict.c (maybe_hot_bb_p): Do not check profile status.
18801 (maybe_hot_edge_p): Likewise.
18802 (probably_never_executed): Check for zero counts even if profile
18804 (unlikely_executed_edge_p): New function.
18805 (unlikely_executed_stmt_p): New function.
18806 (unlikely_executed_bb_p): New function.
18807 (set_even_probabilities): Use unlikely predicates.
18808 (combine_predictions_for_bb): Likewise.
18809 (predict_paths_for_bb): Likewise.
18810 (predict_paths_leading_to_edge): Likewise.
18811 (determine_unlikely_bbs): New function.
18812 (estimate_bb_frequencies): Use it.
18813 (compute_function_frequency): Use zero counts even if profile is
18815 * profile-count.h: Fix typo.
18817 2017-08-08 Julia Koval <julia.koval@intel.com>
18819 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
18820 _mm512_mask_cvtsepi16_storeu_epi8,
18821 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
18822 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
18823 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
18824 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
18825 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
18826 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
18827 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
18828 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
18829 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
18830 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
18831 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
18832 __builtin_ia32_pmovuswb256mem_mask,
18833 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
18834 __builtin_ia32_pmovwb512mem_mask): New builtins.
18836 2017-08-08 Julia Koval <julia.koval@intel.com>
18838 PR target/73350,80862
18839 * config/i386/subst.md (round): Fix round pattern.
18840 * config/i386/i386.c (ix86_erase_embedded_rounding):
18841 Fix erasing rounding for the fixed pattern.
18843 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
18845 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
18847 2017-06-08 Martin Liska <mliska@suse.cz>
18849 PR gcov-profile/80911
18850 * gcov.c (block_info::block_info): New constructor.
18852 2017-06-07 Carl Love <cel@us.ibm.com>
18854 * config/rs6000/rs6000-c: The return type of the following
18855 built-in functions was implemented as int not long long. Fix sign
18856 of return value for the unsigned version of vec_mulo and vec_mule.
18857 vector unsigned long long vec_bperm (vector unsigned long long,
18858 vector unsigned char)
18859 vector signed long long vec_mule (vector signed int,
18861 vector unsigned long long vec_mule (vector unsigned int,
18862 vector unsigned int)
18863 vector signed long long vec_mulo (vector signed int,
18865 vector unsigned long long vec_mulo (vector unsigned int,
18866 vector unsigned int)
18867 * doc/extend.texi: Fix the documentation for the built-in
18870 2017-06-07 Carl Love <cel@us.ibm.com>
18873 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
18876 2017-06-07 Carl Love <cel@us.ibm.com>
18878 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
18879 support, Generate doublehv for signed int/float for BE case only.
18881 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
18883 * doc/invoke.texi (mcx16): Rewrite.
18885 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18887 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
18888 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
18889 *mov<mode>_softfloat, and an anonymous splitter): Use
18890 nonimmediate_operand instead of rs6000_nonimmediate_operand.
18892 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18894 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
18896 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
18897 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
18898 (rs6000_debug_reg_global): Adjust.
18899 (rs6000_init_hard_regno_mode_ok): Adjust.
18900 (rs6000_dbx_register_number): Adjust.
18901 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
18902 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
18903 Remove SPE_ACC and SPEFSCR.
18904 (REG_ALLOC_ORDER): Ditto.
18905 (FRAME_POINTER_REGNUM): Change to 111.
18906 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
18907 (REG_CLASS_NAMES): Ditto.
18908 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
18909 (REGISTER_NAMES): Ditto.
18910 (ADDITIONAL_REG_NAMES): Ditto.
18911 (rs6000_reg_names): Ditto.
18912 * config/rs6000/rs6000.md: Renumber some register number
18915 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18917 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
18919 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
18920 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
18922 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
18923 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
18924 Delete the SPE high registers.
18925 (REG_ALLOC_ORDER): Ditto.
18926 (enum reg_class): Remove SPE_HIGH_REGS.
18927 (REG_CLASS_NAMES): Ditto.
18928 (REG_CLASS_CONTENTS): Delete the SPE high registers.
18929 (REGISTER_NAMES): Ditto.
18930 (rs6000_reg_names): Ditto.
18931 * doc/tm.texi.in: Remove SPE as example.
18932 * doc/tm.texi: Regenerate.
18934 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18936 * config/rs6000/8540.md (ppc8540_brinc): Delete.
18937 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
18938 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
18939 * config/rs6000/rs6000.md (type): Remove "brinc".
18941 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18943 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
18944 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
18945 * config/rs6000/linuxspe.h: Delete file.
18946 * config/rs6000/rs6000.md: Don't include spe.md.
18947 * config/rs6000/spe.h: Delete file.
18948 * config/rs6000/spe.md: Delete file.
18949 * config/rs6000/t-rs6000: Remove spe.md.
18951 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18953 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
18954 (reg_or_none500mem_operand): Delete.
18955 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
18956 instead of reg_or_none500mem_operand.
18958 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18960 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
18961 handling of SPE flags.
18962 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
18964 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
18966 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
18968 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
18969 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
18970 paired_divv2sf3): Similar.
18971 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
18972 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
18973 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
18975 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
18976 Rename the paired_* instruction patterns.
18977 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
18979 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
18980 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
18981 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
18982 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
18983 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
18984 PAIRED_VECTOR_MODE.
18985 (struct machine_function): Delete field spe_insn_chain_scanned_p.
18986 (spe_func_has_64bit_regs_p): Delete.
18987 (spe_expand_predicate_builtin): Delete.
18988 (spe_expand_evsel_builtin): Delete.
18989 (TARGET_DWARF_REGISTER_SPAN): Do not define.
18990 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
18991 (invalid_e500_subreg): Delete.
18992 (rs6000_legitimize_address): Always force_reg op2 as well, for
18993 paired single memory accesses.
18994 (rs6000_member_type_forces_blk): Delete.
18995 (rs6000_spe_function_arg): Delete.
18996 (rs6000_expand_unop_builtin): Delete SPE handling.
18997 (rs6000_expand_binop_builtin): Ditto.
18998 (spe_expand_stv_builtin): Delete.
18999 (bdesc_2arg_spe): Delete.
19000 (spe_expand_builtin): Delete.
19001 (spe_expand_predicate_builtin): Delete.
19002 (spe_expand_evsel_builtin): Delete.
19003 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
19004 (spe_init_builtins): Delete.
19005 (spe_func_has_64bit_regs_p): Delete.
19006 (savres_routine_name): Delete "info" parameter. Adjust callers.
19007 (rs6000_emit_stack_reset): Ditto.
19008 (rs6000_dwarf_register_span): Delete.
19009 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
19010 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
19011 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
19013 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
19015 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
19016 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
19017 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
19018 mulv2sf3, divv2sf3): Delete expanders.
19020 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
19022 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
19024 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
19026 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
19027 * config/rs6000/rs6000.c: Ditto.
19029 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
19031 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
19032 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
19033 comparison_operator.
19035 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
19037 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
19038 * config/rs6000/rs6000.opt: Ditto.
19039 * config/rs6000/t-rtems: Ditto.
19041 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
19043 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
19044 TARGET_E500_SINGLE by 0, simplify.
19045 * config/rs6000/rs6000.c: Ditto.
19046 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
19047 (spe_build_register_parallel): Delete.
19048 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
19049 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
19050 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
19051 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
19052 (E500_CONVERT): Delete.
19053 * config/rs6000/spe.md: Remove many patterns and all define_constants.
19055 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
19057 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
19058 * config/rs6000/dfp.md: Ditto.
19059 (negdd2, *negdd2_fpr): Merge.
19060 (absdd2, *absdd2_fpr): Merge.
19061 (negtd2, *negtd2_fpr): Merge.
19062 (abstd2, *abstd2_fpr): Merge.
19063 * config/rs6000/e500.h: Delete file.
19064 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
19065 TARGET_FPRS by 1 and simplify.
19066 * config/rs6000/rs6000-c.c: Ditto.
19067 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
19068 TARGET_DF_SPE by 0.
19069 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
19071 * config/rs6000/rs6000.md: Ditto.
19072 (floatdidf2, *floatdidf2_fpr): Merge.
19073 (move_from_CR_gt_bit): Delete.
19074 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
19075 (E500_CR_IOR_COMPARE): Delete.
19076 (All patterns that require !TARGET_FPRS): Delete.
19077 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
19079 2017-06-07 Bin Cheng <bin.cheng@arm.com>
19081 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
19083 2017-06-07 Bin Cheng <bin.cheng@arm.com>
19085 * graphds.c (add_edge): Intitialize edge's attached data.
19086 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
19087 pointer parameter. Call pointed function on each edge during
19088 graph traversing. Skip traversing the edge when the function
19090 (graphds_dfs, graphds_scc): Ditto.
19091 (for_each_edge): New parameter. Pass the new parameter to callback
19093 * graphds.h (skip_edge_callback): New function pointer type.
19094 (graphds_dfs, graphds_scc): New function pointer parameter.
19095 (graphds_edge_callback, for_each_edge): New parameter.
19097 2017-06-07 Bin Cheng <bin.cheng@arm.com>
19099 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
19100 out code checking if runtime alias check is possible to below ...
19101 Call the new function.
19102 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
19103 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
19105 2017-06-07 Marek Polacek <polacek@redhat.com>
19108 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
19109 TYPE_OVERFLOW_WRAPS check.
19111 2017-06-07 Bin Cheng <bin.cheng@arm.com>
19113 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
19114 if versioning is required.
19115 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
19116 peeling with the check for versioning.
19118 2017-06-07 Bin Cheng <bin.cheng@arm.com>
19120 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
19121 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
19122 Set true to new parameter if new ssa variable is defined.
19123 (vect_gen_vector_loop_niters): Refactor. Set range information
19124 for the new vector loop bound variable.
19125 (vect_do_peeling): Ditto.
19127 2017-06-07 Bin Cheng <bin.cheng@arm.com>
19129 * tree-affine.c (ssa.h): Include header file.
19130 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
19131 has wrapping overflow behavior.
19133 2017-06-07 Bin Cheng <bin.cheng@arm.com>
19135 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
19137 2017-06-07 Bin Cheng <bin.cheng@arm.com>
19139 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
19140 (tree_to_aff_combination): ... here.
19142 2017-06-07 Bin Cheng <bin.cheng@arm.com>
19144 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
19145 reg_pressure model function.
19146 (ivopts_global_cost_for_size): Delete.
19147 (determine_set_costs, iv_ca_recount_cost): Call new model function
19148 ivopts_estimate_reg_pressure.
19150 2017-06-07 Tamar Christina <tamar.christina@arm.com>
19152 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
19153 expensive than udiv. Remove floating point cases from mod.
19155 2017-06-07 Tamar Christina <tamar.christina@arm.com>
19157 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
19158 Increase idiv cost.
19160 2017-06-07 Tamar Christina <tamar.christina@arm.com>
19162 * config/aarch64/aarch64.md
19163 (copysignsf3): Fix mask generation.
19165 2017-06-07 Jakub Jelinek <jakub@redhat.com>
19167 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
19169 (class dump_manager): Add register_dumps method.
19170 * dumpfile.c: Include langhooks.h.
19171 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
19172 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
19173 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
19174 (dump_manager::dump_register): Start with 512 entries instead of 32.
19175 (dump_manager::register_dumps): New method.
19176 * toplev.c (general_init): Instead of invoking register_dumps
19177 langhook, invoke register_dumps method on the dump manager.
19178 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
19181 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
19183 * doc/md.texi: Clarify the restrictions on a define_insn condition.
19184 Say that # requires an associated define_split to exist, and that
19185 the define_split must be suitable for use after register allocation.
19187 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
19189 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
19190 (compute_outgoing_frequencies): Also initialize zero counts.
19191 (find_many_sub_basic_blocks): Do not produce uninitialized profile
19192 around loops; preserve more of profile when nothing changes.
19194 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
19196 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
19198 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
19199 * config/arm/arm-cpu-cdata.h: Regenerate.
19200 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
19201 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
19202 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
19203 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
19204 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
19206 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
19208 * config/arm/t-rmprofile: Likewise.
19209 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
19211 2017-06-06 David S. Miller <davem@davemloft.net>
19214 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
19215 blockage if function uses alloca.
19217 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
19219 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
19220 New "uid" fields to hold pretty-print IDs of group and ref.
19221 Memory references are now identified as <group_id>:<ref_id>
19222 instead of using [random] addresses.
19223 (dump_mem_details): Simplify, no functional change.
19224 (dump_mem_ref): Simplify and make output more concise.
19225 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
19226 (find_or_create_group): Initialize group uid.
19227 (record_ref): Initialize ref uid. Improve debug output.
19228 (prune_group_by_reuse, should_issue_prefetch_p,)
19229 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
19230 (mark_nontemporal_store, determine_loop_nest_reuse):
19231 Improve debug output.
19233 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
19235 * dbgcnt.def (prefetch): New debug counter.
19236 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
19237 (schedule_prefetches): Stop issueing prefetches if debug counter
19240 2017-06-06 Tom de Vries <tom@codesourcery.com>
19242 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
19243 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
19245 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19247 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
19248 Use aarch64_reg_or_zero predicate for operand 4.
19249 (aarch64_compare_and_swap<mode> define_insn_and_split):
19250 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
19251 (aarch64_store_exclusive<mode>): Likewise for operand 2.
19253 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
19255 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
19256 (arm_compute_save_core_reg_mask): This.
19257 (thumb1_compute_save_reg_mask): Rename into ...
19258 (thumb1_compute_save_core_reg_mask): This.
19259 (arm_compute_save_reg0_reg12_mask): Adapt comment.
19260 (arm_compute_frame_layout): Likewise.
19262 2017-06-06 Richard Biener <rguenther@suse.de>
19264 PR tree-optimization/80974
19265 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
19266 keep or clear leaders SSA info.
19268 2017-06-06 Tom de Vries <tom@codesourcery.com>
19270 * config/nvptx/nvptx.c (split_mode_p): New function.
19271 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
19273 2017-06-06 Tom de Vries <tom@codesourcery.com>
19275 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
19277 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
19280 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
19283 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
19285 * shrink-wrap.c (handle_simple_exit): Update profile.
19286 (try_shrink_wrapping): Upate profile.
19288 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
19290 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
19291 (tree_guess_outgoing_edge_probabilities): New.
19292 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
19293 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
19295 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
19297 * ipa-split.c (split_function): Initialize return bb profile.
19299 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
19301 * profile.c (compute_branch_probabilities): Also initialize
19302 EXIT_BLOCK profile.
19304 2017-06-06 Richard Biener <rguenther@suse.de>
19306 PR tree-optimization/80928
19307 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
19308 (vect_analyze_loop_operations): Properly guard analysis for
19310 (vect_transform_loop): Likewise.
19311 (vect_analyze_loop_2): Also reset SLP type on PHIs.
19312 (vect_model_induction_cost): Do not cost for pure SLP.
19313 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
19314 of induction in inner loop vectorization.
19315 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
19316 (vect_get_and_check_slp_defs): Handle vect_induction_def.
19317 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
19319 (vect_analyze_slp_cost_1): Cost induction.
19320 (vect_detect_hybrid_slp_stmts): Handle PHIs.
19321 (vect_get_slp_vect_defs): Likewise.
19322 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
19323 (vect_transform_stmt): Handle SLP reductions.
19324 * tree-vectorizer.h (vectorizable_induction): Adjust.
19326 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
19328 * config/rs6000/rs6000.c (make_resolver_func): Update
19329 init_lowered_empty_function call.
19331 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
19333 * doc/invoke.texi: Document the -fprofile-abs-path option.
19334 * common.opt (fprofile-abs-path): New option.
19335 * gcov-io.h (gcov_write_filename): Declare.
19336 * gcov-io.c (gcov_write_filename): New function.
19337 * coverage.c (coverage_begin_function): Use gcov_write_filename.
19338 * profile.c (output_location): Likewise.
19340 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
19342 * shring-wrap.c: Revert accidental commit.
19344 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
19346 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
19348 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
19350 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
19352 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
19353 profile in callgraph edge.
19354 * profile-count.h (apply_probability): If THIS is 0, then result is 0
19355 (apply_scale): Likewise.
19356 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
19357 Also scale profile when inlining function with zero profile.
19358 (initialize_cfun): Update exit block profile even when it is zero.
19359 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
19360 when profile is read.
19362 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
19364 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
19365 (CLONE_*): New constants to define the processors we can generate
19366 code for with the target_clone attribute.
19367 (rs6000_clone_map): New array to identify which clone processors
19368 the current program is running on.
19369 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
19370 target_clone attribute.
19371 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
19372 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
19373 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
19374 (cpu_expand_builtin): Add support for target_clone attribute.
19375 (rs6000_valid_attribute_p): Allow "default" attribute.
19376 (get_decl_name): New debug function to simplify printing the
19377 current function name in debugging statements.
19378 (rs6000_clone_priority): New functions to support the target_clone
19379 attribute, and be able to generate code to switch between ISA 2.05
19380 through ISA 3.0 (power6 through power9).
19381 (rs6000_compare_version_priority): Likewise.
19382 (rs6000_get_function_versions_dispatcher): Likewise.
19383 (make_resolver_func): Likewise.
19384 (add_condition_to_bb): Likewise.
19385 (dispatch_function_versions): Likewise.
19386 (rs6000_generate_version_dispatcher_body): Likewise.
19387 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
19388 (fusion_gpr_load_p): Fix a spacing issue.
19389 * doc/extend.texi (Common Function Attributes): Document that the
19390 PowerPC supports the target_clone attribute.
19392 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
19394 * config/arm/arm.h: explain F symbol found in description of ARM
19395 register allocation in its legend.
19397 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
19399 * config/mips/frame-header-opt.c: Include profile-count.h.
19400 * config/riscv/riscv.c: Include profile-count.h
19402 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
19404 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
19406 (sm_set_flag_if_changed): Add bbs field.
19407 (execute_sm_if_changed_flag_set): Pass BBS.
19408 (execute_sm): Update.
19410 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19412 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
19415 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19417 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
19418 (peephole2): New peephole2 to emit the above.
19419 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
19421 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19423 * config/aarch64/aarch64.c (define_peephole2 above
19424 *sub_<shift>_<mode>): New peephole.
19426 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
19428 * config/i386/i386.c (make_resolver_func): Update.
19429 * Makefile.in: Add profile-count.h and profile-count.o
19430 * auto-profile.c (afdo_indirect_call): Update to new API.
19431 (afdo_set_bb_count): Update.
19432 (afdo_propagate_edge): Update.
19433 (afdo_propagate_circuit): Update.
19434 (afdo_calculate_branch_prob): Update.
19435 (afdo_annotate_cfg): Update.
19436 * basic-block.h: Include profile-count.h
19437 (struct edge_def): Turn count to profile_count.
19438 (struct basic_block_def): Likewie.
19439 (REG_BR_PROB_BASE): Move to profile-count.h
19440 (RDIV): Move to profile-count.h
19441 * bb-reorder.c (max_entry_count): Turn to profile_count.
19442 (find_traces): Update.
19443 (rotate_loop):Update.
19444 (connect_traces):Update.
19445 (sanitize_hot_paths):Update.
19446 * bt-load.c (migrate_btr_defs): Update.
19447 * cfg.c (RDIV): Remove.
19448 (init_flow): Use alloc_block.
19449 (alloc_block): Uninitialize count.
19450 (unchecked_make_edge): Uninitialize count.
19451 (check_bb_profile): Update.
19452 (dump_edge_info): Update.
19453 (dump_bb_info): Update.
19454 (update_bb_profile_for_threading): Update.
19455 (scale_bbs_frequencies_int): Update.
19456 (scale_bbs_frequencies_gcov_type): Update.
19457 (scale_bbs_frequencies_profile_count): New.
19458 * cfg.h (update_bb_profile_for_threading): Update.
19459 (scale_bbs_frequencies_profile_count): Declare.
19460 * cfgbuild.c (compute_outgoing_frequencies): Update.
19461 (find_many_sub_basic_blocks): Update.
19462 * cfgcleanup.c (try_forward_edges): Update.
19463 (try_crossjump_to_edge): Update.
19464 * cfgexpand.c (expand_gimple_tailcall): Update.
19465 (construct_exit_block): Update.
19466 * cfghooks.c (verify_flow_info): Update.
19467 (dump_bb_for_graph): Update.
19468 (split_edge): Update.
19469 (make_forwarder_block): Update.
19470 (duplicate_block): Update.
19471 (account_profile_record): Update.
19472 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
19473 (get_estimated_loop_iterations): Update.
19474 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
19475 (single_likely_exit): Update.
19476 * cfgloopmanip.c (scale_loop_profile): Update.
19478 (set_zero_probability): Update.
19479 (lv_adjust_loop_entry_edge): Update.
19480 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
19481 (purge_dead_edges): Update.
19482 (rtl_account_profile_record): Update.
19483 * cgraph.c (cgraph_node::create): Uninitialize count.
19484 (symbol_table::create_edge): Uninitialize count.
19485 (cgraph_update_edges_for_call_stmt_node): Update.
19486 (cgraph_edge::dump_edge_flags): Update.
19487 (cgraph_node::dump): Update.
19488 (cgraph_edge::maybe_hot_p): Update.
19489 * cgraph.h: Include profile-count.h
19490 (create_clone), create_edge, create_indirect_edge): Update.
19491 (cgraph_node): Turn count to profile_count.
19492 (cgraph_edge0: Likewise.
19493 (make_speculative, clone): Update.
19494 (create_edge): Update.
19495 (init_lowered_empty_function): Update.
19496 * cgraphclones.c (cgraph_edge::clone): Update.
19497 (duplicate_thunk_for_node): Update.
19498 (cgraph_node::create_clone): Update.
19499 * cgraphunit.c (cgraph_node::analyze): Update.
19500 (cgraph_node::expand_thunk): Update.
19501 * final.c (dump_basic_block_info): Update.
19502 * gimple-streamer-in.c (input_bb): Update.
19503 * gimple-streamer-out.c (output_bb): Update.
19504 * graphite.c (print_global_statistics): Update.
19505 (print_graphite_scop_statistics): Update.
19506 * hsa-brig.c: Include basic-block.h.
19507 * hsa-dump.c: Include basic-block.h.
19508 * hsa-gen.c (T sum_slice): Update.
19509 (convert_switch_statements):Update.
19510 * hsa-regalloc.c: Include basic-block.h.
19511 * ipa-chkp.c (chkp_produce_thunks): Update.
19512 * ipa-cp.c (struct caller_statistics): Update.
19513 (init_caller_stats): Update.
19514 (gather_caller_stats): Update.
19515 (ipcp_cloning_candidate_p): Update.
19516 (good_cloning_opportunity_p): Update.
19517 (get_info_about_necessary_edges): Update.
19518 (dump_profile_updates): Update.
19519 (update_profiling_info): Update.
19520 (update_specialized_profile): Update.
19521 (perhaps_add_new_callers): Update.
19522 (decide_about_value): Update.
19523 (ipa_cp_c_finalize): Update.
19524 * ipa-devirt.c (struct odr_type_warn_count): Update.
19525 (struct decl_warn_count): Update.
19526 (struct final_warning_record): Update.
19527 (possible_polymorphic_call_targets): Update.
19528 (ipa_devirt): Update.
19529 * ipa-fnsummary.c (redirect_to_unreachable): Update.
19530 * ipa-icf.c (sem_function::merge): Update.
19531 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
19532 * ipa-inline.c (compute_uninlined_call_time): Update.
19533 (compute_inlined_call_time): Update.
19534 (want_inline_small_function_p): Update.
19535 (want_inline_self_recursive_call_p): Update.
19536 (edge_badness): Update.
19537 (lookup_recursive_calls): Update.
19538 (recursive_inlining): Update.
19539 (inline_small_functions): Update.
19540 (dump_overall_stats): Update.
19541 (dump_inline_stats): Update.
19542 * ipa-profile.c (ipa_profile_generate_summary): Update.
19543 (ipa_propagate_frequency): Update.
19544 (ipa_profile): Update.
19545 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
19546 * ipa-utils.c (ipa_merge_profiles): Update.
19547 * loop-doloop.c (doloop_modify): Update.
19548 * loop-unroll.c (report_unroll): Update.
19549 (unroll_loop_runtime_iterations): Update.
19550 * lto-cgraph.c (lto_output_edge): Update.
19551 (lto_output_node): Update.
19552 (input_node): Update.
19553 (input_edge): Update.
19554 (merge_profile_summaries): Update.
19555 * lto-streamer-in.c (input_cfg): Update.
19556 * lto-streamer-out.c (output_cfg): Update.
19557 * mcf.c (create_fixup_graph): Update.
19558 (adjust_cfg_counts): Update.
19559 (sum_edge_counts): Update.
19560 * modulo-sched.c (sms_schedule): Update.
19561 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
19562 * predict.c (maybe_hot_count_p): Update.
19563 (probably_never_executed): Update.
19564 (dump_prediction): Update.
19565 (combine_predictions_for_bb): Update.
19566 (propagate_freq): Update.
19567 (handle_missing_profiles): Update.
19568 (counts_to_freqs): Update.
19569 (rebuild_frequencies): Update.
19570 (force_edge_cold): Update.
19571 * predict.h: Include profile-count.h
19572 (maybe_hot_count_p, counts_to_freqs): UPdate.
19573 * print-rtl-function.c: Do not include cfg.h
19574 * print-rtl.c: Include basic-block.h
19575 * profile-count.c: New file.
19576 * profile-count.h: New file.
19577 * profile.c (is_edge_inconsistent): Update.
19578 (correct_negative_edge_counts): Update.
19579 (is_inconsistent): Update.
19580 (set_bb_counts): Update.
19581 (read_profile_edge_counts): Update.
19582 (compute_frequency_overlap): Update.
19583 (compute_branch_probabilities): Update; Initialize and deinitialize
19585 (branch_prob): Update.
19586 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
19587 (edge_gcov_count): New.
19588 (bb_gcov_count): New.
19589 * shrink-wrap.c (try_shrink_wrapping): Update.
19590 * tracer.c (better_p): Update.
19591 * trans-mem.c (expand_transaction): Update.
19592 (ipa_tm_insert_irr_call): Update.
19593 (ipa_tm_insert_gettmclone_call): Update.
19594 * tree-call-cdce.c: Update.
19595 * tree-cfg.c (gimple_duplicate_sese_region): Update.
19596 (gimple_duplicate_sese_tail): Update.
19597 (gimple_account_profile_record): Update.
19598 (execute_fixup_cfg): Update.
19599 * tree-inline.c (copy_bb): Update.
19600 (copy_edges_for_bb): Update.
19601 (initialize_cfun): Update.
19602 (freqs_to_counts): Update.
19603 (copy_cfg_body): Update.
19604 (expand_call_inline): Update.
19605 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
19606 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
19607 (try_unroll_loop_completely): Update.
19608 (try_peel_loop): Update.
19609 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
19610 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
19611 * tree-ssa-loop-split.c (connect_loops): Update.
19612 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
19613 * tree-ssa-reassoc.c (branch_fixup): Update.
19614 * tree-ssa-tail-merge.c (replace_block_by): Update.
19615 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
19616 (compute_path_counts): Update.
19617 (update_profile): Update.
19618 (recompute_probabilities): Update.
19619 (update_joiner_offpath_counts): Update.
19620 (estimated_freqs_path): Update.
19621 (freqs_to_counts_path): Update.
19622 (clear_counts_path): Update.
19623 (ssa_fix_duplicate_block_edges): Update.
19624 (duplicate_thread_path): Update.
19625 * tree-switch-conversion.c (case_bit_test_cmp): Update.
19626 (struct switch_conv_info): Update.
19627 * tree-tailcall.c (decrease_profile): Update.
19628 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
19629 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
19630 * value-prof.c (check_counter): Update.
19631 (gimple_divmod_fixed_value): Update.
19632 (gimple_mod_pow2): Update.
19633 (gimple_mod_subtract): Update.
19634 (gimple_ic_transform): Update.
19635 (gimple_stringop_fixed_value): Update.
19636 * value-prof.h (gimple_ic): Update.
19638 2017-06-02 Carl Love <cel@us.ibm.com>
19640 * config/rs6000/rs6000-c: Add support for built-in functions
19641 vector double vec_doublee (vector signed int);
19642 vector double vec_doublee (vector unsigned int);
19643 vector double vec_doublee (vector float);
19644 vector double vec_doubleh (vector signed int);
19645 vector double vec_doubleh (vector unsigned int);
19646 vector double vec_doubleh (vector float);
19647 vector double vec_doublel (vector signed int);
19648 vector double vec_doublel (vector unsigned int);
19649 vector double vec_doublel (vector float);
19650 vector double vec_doubleo (vector signed int);
19651 vector double vec_doubleo (vector unsigned int);
19652 vector double vec_doubleo (vector float);.
19653 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
19654 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
19656 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
19657 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
19658 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
19660 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
19661 vec_doublel, vec_doubleh.
19662 * doc/extend.texi: Update the built-in documentation file for the
19663 new built-in functions.
19665 2017-06-02 David Malcolm <dmalcolm@redhat.com>
19668 * ipa-inline-analysis.c (free_growth_caches): Set
19669 edge_removal_hook_holder to NULL after removing it.
19671 2017-06-02 Sudakshina Das <sudi.das@arm.com>
19673 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
19674 comparision with zero.
19676 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
19677 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
19678 for early expansion of vec_min and vec_max builtins.
19679 (builtin_function_type): Add min/max unsigned variants to those
19680 identified as having unsigned arguments.
19682 2017-06-02 Olivier Hainque <hainque@adacore.com>
19684 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
19686 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19688 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
19689 Use VALL_F16 iterator rather than VALL.
19691 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19693 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
19694 Emit CBNZ inside loop when doing a strong exchange and comparing
19695 against zero. Generate the CC flags after the loop.
19697 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
19699 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
19700 (dl_section_ref): New.
19701 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
19702 On AIX, append an expression to subtract the size of the
19703 section length to dl_section_ref.
19705 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
19707 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
19708 for early expansion of vector absolute builtins.
19710 2017-06-02 Richard Biener <rguenther@suse.de>
19712 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
19713 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
19715 2017-06-02 Richard Biener <rguenther@suse.de>
19717 PR tree-optimization/80948
19718 * tree-tailcall.c (find_tail_calls): Track stmts to move in
19719 stmt order as well.
19721 2017-06-02 Richard Biener <rguenther@suse.de>
19723 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
19725 * tree-vect-stmts.c (process_use): Do not mark backedge defs
19726 for inductions as relevant.
19728 2017-06-02 Richard Biener <rguenther@suse.de>
19730 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
19731 (vectorizable_induction): ... this. Remove dead code.
19733 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
19735 * builtins. (expand_builtin_alloca): Remove second parameter and
19736 infer its value from the first parameter instead.
19737 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
19739 2017-06-02 Jakub Jelinek <jakub@redhat.com>
19741 PR rtl-optimization/80903
19742 * loop-doloop.c (add_test): Unshare sequence.
19744 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
19746 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
19748 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
19750 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
19752 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
19753 xlogue_layout::get_instance, logue_layout::xlogue_layout,
19754 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
19755 (xlogue_layout::get_stub_rtx): Make static.
19756 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
19757 (xlogue_layout::compute_stub_managed_regs): Rename to...
19758 (xlogue_layout::count_stub_managed_regs): ...this.
19759 (xlogue_layout::is_stub_managed_reg): New function.
19760 (xlogue_layout::m_stub_names): Rename to...
19761 (xlogue_layout::s_stub_names): ...this, make static.
19762 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
19763 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
19764 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
19765 xlogue_layout::s_stub_names): Instantiate statics.
19766 (stub_managed_regs): Remove.
19767 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
19768 (disable_call_ms2sysv_xlogues): Rename to...
19769 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
19770 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
19772 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
19773 change after reload_completed.
19774 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
19776 (ix86_expand_prologue): Likewise.
19777 (ix86_expand_epilogue): Likewise.
19778 (ix86_expand_split_stack_prologue): Likewise.
19779 (ix86_compute_frame_layout): Remove frame parameter ...
19780 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
19781 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
19783 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
19784 (ix86_frame): Move from here ...
19785 * config/i386/i386.h (ix86_frame): ... to here.
19786 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
19787 complete ix86_frame data structure instead. Remove some_ld_name.
19789 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
19791 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
19792 symbols that hold a DECL_VALUE_EXPR.
19794 2017-06-01 Martin Jambor <mjambor@suse.cz>
19796 PR tree-optimization/80898
19797 * tree-sra.c (process_subtree_disqualification): Removed.
19798 (disqualify_candidate): Do not acll
19799 process_subtree_disqualification.
19800 (subtree_mark_written_and_enqueue): New function.
19801 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
19802 RHS has been disqualified and re-queue LHS if necessary. Apart
19803 from that, ignore disqualified RHS.
19805 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19807 * config/s390/s390.c (s390_emit_epilogue): Disable early return
19808 address fetch for z10 or later.
19810 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19812 * config/arc/arc.md (tst_movb): Add guard when splitting.
19814 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19816 * config/arc/arc.c (arc_can_eliminate): Test against
19817 arc_frame_pointer_needed.
19819 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19821 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
19822 to prevent store reordering.
19823 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
19824 (type): Add block type.
19825 (stack_tie): Define special instruction to be used in
19828 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19830 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
19831 constraint. It is not valid for the pattern.
19832 (noncommutative_binary_comparison): Likewise.
19834 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19836 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
19839 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19841 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
19842 be used by the reg-alloc.
19844 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19846 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
19847 reg-alloc when having mul64 or mul32x16 instructions.
19848 (mulsidi3): Likewise.
19849 (umulsidi3): Likewise.
19850 (mulsi32x16): New pattern.
19851 (mulsi64): Likewise.
19852 (mulsidi64): Likewise.
19853 (umulsidi64): Likewise.
19854 (MUL32x16_REG): Define.
19855 (mul64_600): Use MUL32x16_REG.
19856 (mac64_600): Likewise.
19857 (umul64_600): Likewise.
19858 (umac64_600): Likewise.
19860 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
19862 * config/arc/arc.md (mulsi3_700): Make it commutative.
19864 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
19866 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
19868 (*sign_extendsidi2_insn): Likewise for movstosw.
19870 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
19872 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
19873 the type of the input discriminant value. Convert the
19874 discriminant value of signedness vary.
19876 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
19878 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
19879 Add to -Wall section.
19881 2017-06-01 Richard Biener <rguenther@suse.de>
19883 PR middle-end/66313
19884 * fold-const.c (fold_plusminus_mult_expr): If the factored
19885 factor may be zero use a wrapping type for the inner operation.
19886 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
19887 and handle moved defs.
19888 (process_assignment): Properly guard the unary op case. Return a
19889 tri-state indicating that moving the stmt before the call may allow
19890 to continue. Pass through to_move.
19891 (find_tail_calls): Handle moving unrelated defs before
19894 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
19897 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
19898 splitter result in the canonical way.
19900 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
19902 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
19903 also for 32bit target. Update insn attributes.
19904 (zero-extendsidi2 splitter): Allow all registers for operand 1.
19906 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
19908 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
19909 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
19910 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
19911 (_mm_maskz_min_ss): New intrinsics.
19913 2017-05-31 Martin Liska <mliska@suse.cz>
19915 * tree-vect-loop.c (vect_create_epilog_for_reduction):
19916 Change comment style to one we normally use.
19917 (vectorizable_reduction): Likewise.
19918 (vectorizable_induction): Likewise.
19919 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
19920 (vectorizable_call): Likewise.
19921 (vectorizable_simd_clone_call): Likewise.
19922 (vectorizable_conversion): Likewise.
19923 (vectorizable_assignment): Likewise.
19924 (vectorizable_shift): Likewise.
19925 (vectorizable_operation): Likewise.
19926 (vectorizable_store): Likewise.
19927 (vectorizable_load): Likewise.
19928 * tree-vectorizer.h: Likewise.
19930 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
19932 * passes.c (emergency_dump_function): New.
19933 * tree-pass.h (emergency_dump_function): Declare.
19934 * plugin.c (plugins_internal_error_function): Remove.
19935 * plugin.h (plugins_internal_error_function): Remove declaration.
19936 * toplev.c (internal_error_function): New static function. Use it...
19937 (general_init): ...here.
19939 2017-05-31 Graham Markall <graham.markall@embecosm.com>
19941 * config/arc/arc.c (arc_print_operand): Handle constant operands.
19942 (arc_rtx_costs): Add costs for new patterns.
19943 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
19944 * config/arc/predicates.md: Add _1_2_3_operand predicate.
19946 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
19948 * tree-ssa-strlen.c (get_next_strinfo): New function.
19949 (get_stridx_plus_constant): Use it.
19950 (zero_length_string): Likewise.
19951 (adjust_related_strinfos): Likewise.
19952 (adjust_last_stmt): Likewise.
19954 2017-05-31 Richard Biener <rguenther@suse.de>
19957 * config/i386/i386.c (ix86_expand_builtin): Remove assert
19958 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
19960 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
19962 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
19963 loop_vinfo argument and use of dependence distance vectors.
19964 Check instead whether the two references differ only in their
19965 initial value and assume that they have the same alignment if the
19966 difference is a multiple of the vector alignment.
19967 (vect_analyze_data_refs_alignment): Update call accordingly.
19969 2017-05-31 Martin Liska <mliska@suse.cz>
19972 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
19974 2017-05-31 Bin Cheng <bin.cheng@arm.com>
19976 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
19977 (create_intersect_range_checks): Move from ...
19978 * tree-data-ref.c (create_intersect_range_checks_index)
19979 (create_intersect_range_checks): ... to here.
19980 (create_runtime_alias_checks): New function factored from ...
19981 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
19982 here. Call above function.
19983 * tree-data-ref.h (create_runtime_alias_checks): New function.
19985 2017-05-31 Bin Cheng <bin.cheng@arm.com>
19987 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
19988 segment length for dr_b and compute it in wide_int.
19990 2017-05-31 Richard Biener <rguenther@suse.de>
19992 PR tree-optimization/80906
19993 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
19994 and pass through iv_map.
19995 (copy_bb_and_scalar_dependences): Adjust.
19996 (translate_pending_phi_nodes): Likewise.
19997 (copy_loop_close_phi_args): Handle code-generating IVs instead
20000 2017-05-30 David Malcolm <dmalcolm@redhat.com>
20002 * diagnostic-color.c (color_dict): Add "type-diff".
20003 (parse_gcc_colors): Update comment.
20004 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
20005 -fdiagnostics-show-template-tree and -fno-elide-type.
20006 (GCC_COLORS): Add type-diff to example.
20008 (-fdiagnostics-show-template-tree): New.
20009 (-fno-elide-type): New.
20010 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
20011 the pp_format_decoder callback. Call any m_format_postprocessor's
20013 (pretty_printer::pretty_printer): Initialize
20014 m_format_postprocessor.
20015 (pretty_printer::~pretty_printer): Delete any
20016 m_format_postprocessor.
20017 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
20018 (class format_postprocessor): New class.
20019 (struct pretty_printer::format_decoder): Document the new parameters.
20020 (struct pretty_printer::m_format_postprocessor): New field.
20021 * tree-diagnostic.c (default_tree_printer): Update for new
20022 bool and const char ** params.
20023 * tree-diagnostic.h (default_tree_printer): Likewise.
20025 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
20027 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
20028 (lwa_operand): Delete rs6000_gen_cell_microcode test.
20029 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
20030 rs6000_gen_cell_microcode code.
20031 (rs6000_final_prescan_insn): Delete.
20032 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
20033 "warn-cell-microcode" entries.
20034 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
20035 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
20036 throughout. Change cc_reg_not_micro_cr0_operand to
20037 cc_reg_not_cr0_operand throughout.
20038 (*extendhi<mode>2_noload): Delete.
20039 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
20040 (mwarn-cell-microcode): Delete.
20041 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
20042 -mgen-cell-microcode and -mwarn-cell-microcode.
20044 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
20047 * config/i386/constraints.md (Yd): New constraint.
20049 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
20050 and (?Yd, r) alternatives. Update insn attributes.
20051 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
20052 and (?*Yd, r) alternatives. Update insn attributes.
20053 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
20055 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
20057 * gimplify.c (gimplify_modify_expr): Don't create a
20058 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
20061 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
20063 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
20065 2017-05-30 Richard Biener <rguenther@suse.de>
20067 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
20068 and reduc_def fields.
20069 (STMT_VINFO_REDUC_TYPE): New define.
20070 (STMT_VINFO_REDUC_DEF): Likewise.
20071 (vect_force_simple_reduction): Adjust prototype.
20072 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
20073 (vect_is_simple_reduction): Remove check_reduction argument.
20074 (vect_force_simple_reduction): Adjust and set
20075 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
20076 (vectorizable_reduction): Do not re-do reduction analysis
20077 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
20078 * tree-parloops.c (gather_scalar_reductions): Adjust.
20080 2017-05-30 Richard Biener <rguenther@suse.de>
20082 PR middle-end/80901
20083 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
20086 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
20088 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
20089 Introduce unknown_misalignment parameter and remove vf.
20090 (vect_peeling_hash_get_lowest_cost):
20091 Pass unknown_misalignment parameter.
20092 (vect_enhance_data_refs_alignment):
20093 Fix unsupportable data ref treatment.
20095 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
20097 * tree-vect-data-refs.c (vect_get_data_access_cost):
20098 Workaround for SLP handling.
20099 (vect_enhance_data_refs_alignment):
20100 Compute costs for doing no peeling at all, compare to the best
20101 peeling costs so far and avoid peeling if cheaper.
20103 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
20105 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
20106 Return peeling info and set costs to zero for unlimited cost
20108 (vect_enhance_data_refs_alignment): Also inspect all datarefs
20109 with unknown misalignment. Compute and costs for unknown
20110 misalignment, compare them to the costs for known misalignment
20111 and choose the cheapest for peeling.
20113 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
20115 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
20116 (vect_get_peeling_costs_all_drs): Create function.
20117 (vect_peeling_hash_get_lowest_cost):
20118 Use vect_get_peeling_costs_all_drs.
20119 (vect_peeling_supportable): Create function.
20120 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
20122 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
20124 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
20125 DR_HAS_NEGATIVE_STEP.
20126 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
20127 (vect_enhance_data_refs_alignment): Use.
20128 (vect_duplicate_ssa_name_ptr_info): Use.
20129 * tree-vectorizer.h (dr_misalignment): Use.
20130 (known_alignment_for_access_p): Use.
20132 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
20135 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
20137 (has_section_name): New function.
20139 2017-05-30 Martin Liska <mliska@suse.cz>
20142 * auto-profile.c (get_function_decl_from_block): Fix
20145 2017-05-30 Richard Biener <rguenther@suse.de>
20147 PR middle-end/80876
20148 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
20150 2017-05-30 Martin Liska <mliska@suse.cz>
20152 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
20153 * dumpfile.h (struct dump_file_info): Remove ctors.
20155 2017-05-30 Martin Liska <mliska@suse.cz>
20157 * predict.def: Fix GNU coding style.
20159 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
20161 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
20162 Mark 'to' argument with ATTRIBUTE_UNUSED.
20164 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
20166 * config/xtensa/xtensa.c (xtensa_emit_call): Use
20167 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
20168 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
20171 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
20173 * doc/install.texi (Options specification): Restore entry of
20174 --enable-sjlj-exceptions.
20176 2017-05-27 Michael Eager <eager@eagercon.com>
20179 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
20181 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
20183 * config/microblaze/microblaze.h
20184 (FIXED_REGISTERS): Update in macro.
20185 (CALL_USED_REGISTERS): Update in macro.
20187 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
20189 * doc/install.texi: Add links to macOS binary distributions.
20191 2017-05-27 Jakub Jelinek <jakub@redhat.com>
20195 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
20197 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
20199 2017-05-26 Martin Liska <mliska@suse.cz>
20201 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
20203 2017-05-26 Martin Liska <mliska@suse.cz>
20205 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
20206 always leading ';; '.
20207 (dump_bb_info): Likewise.
20208 (brief_dump_cfg): Likewise.
20209 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
20210 * dumpfile.c: Remove usage of TDF_VERBOSE.
20211 * dumpfile.h (enum dump_kind): Likewise.
20212 (dump_gimple_bb_header): Do not use TDF_COMMENT.
20213 * print-tree.c (debug_verbose): Remove.
20214 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
20215 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
20216 * tree-diagnostic.c (default_tree_printer): Replace
20217 TDF_DIAGNOSTIC with TDF_SLIM.
20219 2017-05-26 Bin Cheng <bin.cheng@arm.com>
20221 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
20222 in parameter loop, rather than loop_vinfo.
20223 (create_intersect_range_checks): Ditto.
20224 (vect_create_cond_for_alias_checks): Update call to above functions.
20226 2017-05-26 Bin Cheng <bin.cheng@arm.com>
20228 PR tree-optimization/80815
20229 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
20230 for merging runtime alias checks. Handle negative DR_STEPs.
20232 2017-05-26 Bin Cheng <bin.cheng@arm.com>
20234 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
20236 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
20237 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
20238 out code pruning runtime alias checks.
20239 * tree-data-ref.c (prune_runtime_alias_test_list): New function
20240 factored out from above.
20241 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
20243 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
20245 (prune_runtime_alias_test_list): New decalaration.
20247 2017-05-26 Bin Cheng <bin.cheng@arm.com>
20249 * tree-vect-data-refs.c (compare_tree): Rename and move ...
20250 * tree-data-ref.c (data_ref_compare_tree): ... to here.
20251 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
20252 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
20253 (operator==, comp_dr_with_seg_len_pair): Ditto.
20254 (vect_prune_runtime_alias_test_list): Ditto.
20256 2017-05-26 Martin Liska <mliska@suse.cz>
20259 * params.def: Bound partial-inlining-entry-probability param.
20261 2017-05-26 Marek Polacek <polacek@redhat.com>
20264 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
20267 2017-05-26 Richard Biener <rguenther@suse.de>
20269 PR tree-optimization/80842
20270 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
20273 2017-05-26 Richard Biener <rguenther@suse.de>
20275 PR tree-optimization/80844
20276 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
20278 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
20280 * doc/md.texi (Machine Constraints): Update x86 family
20281 machine constraints section to match 'config/i386/constraints.md'.
20283 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
20285 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
20287 2017-05-25 Nathan Sidwell <nathan@acm.org>
20289 * doc/invoke.texi (--enable-languages): Update documentation.
20291 2017-05-25 Martin Liska <mliska@suse.cz>
20293 * dumpfile.c: Add TDF_FOLDING.
20294 * dumpfile.h (enum dump_kind): Likewise.
20295 * genmatch.c (dt_simplify::gen_1): Use it.
20297 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
20299 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
20301 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
20303 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
20304 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
20306 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
20308 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
20309 * match.pd (X == C): Rewrite it here.
20310 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
20311 with_certain_nonzero_bits2): New predicates.
20312 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
20314 2017-05-24 Nathan Sidwell <nathan@acm.org>
20316 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
20319 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
20322 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
20324 * config/powerpcspe: New port. Files are copied from the rs6000
20325 port, with "rs6000" in filenames replaced by "powerpcspe".
20327 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
20329 PR rtl-optimization/80754
20330 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
20332 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
20334 * config/sparc/sparc.md (length): Return the correct value for -mflat
20335 sibcalls to match output_sibcall.
20337 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
20341 * config/rs6000/rs6000.c (struct machine_function): Add new field
20343 (rs6000_get_separate_components): Init that field, use it.
20344 (rs6000_components_for_bb): Use the field.
20346 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
20348 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
20350 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
20352 PR middle-end/80823
20353 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
20355 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20358 * config/s390/s390.c (s390_check_qrst_address): Check incoming
20359 address against address_operand predicate.
20360 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
20362 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
20364 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
20365 parameters passed indirectly.
20367 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
20369 * config/i386/i386.md (*movdi_internal): Remove SSE4
20370 alternative 18 (?r, *v). Update insn attributes.
20371 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
20372 Update insn attributes.
20373 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
20374 Update insn attributes.
20375 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
20376 alternative 1 (r, v). Remove isa attribute.
20377 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
20378 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
20379 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
20381 2017-05-23 Tom de Vries <tom@codesourcery.com>
20383 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
20386 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
20388 * cgraphunit.c (symbol_table::process_new_functions): Update.
20389 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
20390 (inline_generate_summary): Rename to ...
20391 (ipa_fn_summary_generate): ... this one.
20392 (inline_read_summary): Rename to ...
20393 (ipa_fn_summary_read): ... this one.
20394 (inline_write_summary): Rename to ...
20395 (ipa_fn_summary_write): ... this one.
20396 (inline_free_summary): Rename to ...
20397 (ipa_free_fn_summary): ... this one.
20398 (pass_data_local_fn_summary, pass_local_fn_summary,
20399 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
20400 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
20401 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
20402 make_pass_ipa_fn_summary): New.
20403 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
20404 inline_write_summary, inline_free_summary): Remove.
20405 (ipa_free_fn_summary) : New.
20406 * ipa-inline.c (ipa_inline): Update.
20407 (pass_ipa_inline): Do not generate summaries.
20408 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
20410 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
20411 and add pass_ipa_fn_summary.
20412 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
20414 (make_pass_inline_parameters): Remove.
20416 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
20418 * omp-low.c (struct omp_context): Remove "default_kind" member.
20421 * omp-offload.c (execute_oacc_device_lower): Remove the
20422 parallelism dimensions function attributes for unparallelized
20423 OpenACC kernels constructs.
20425 2017-05-23 Martin Liska <mliska@suse.cz>
20427 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
20429 (cgraph_edge::make_speculative): Likewise.
20430 (cgraph_edge::resolve_speculation): Likewise.
20431 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
20432 (cgraph_node::dump): Likewise.
20433 * cgraph.h: Likewise.
20434 * cgraphunit.c (analyze_functions): Likewise.
20435 (symbol_table::compile): Likewise.
20436 * ipa-cp.c (print_all_lattices): Likewise.
20437 (determine_versionability): Likewise.
20438 (initialize_node_lattices): Likewise.
20439 (ipcp_verify_propagated_values): Likewise.
20440 (estimate_local_effects): Likewise.
20441 (update_profiling_info): Likewise.
20442 (create_specialized_node): Likewise.
20443 (perhaps_add_new_callers): Likewise.
20444 (decide_about_value): Likewise.
20445 (decide_whether_version_node): Likewise.
20446 (identify_dead_nodes): Likewise.
20447 (ipcp_store_bits_results): Likewise.
20448 * ipa-devirt.c (dump_targets): Likewise.
20449 (ipa_devirt): Likewise.
20450 * ipa-icf.c (sem_item::dump): Likewise.
20451 (sem_function::equals): Likewise.
20452 (sem_variable::equals): Likewise.
20453 (sem_item_optimizer::read_section): Likewise.
20454 (sem_item_optimizer::execute): Likewise.
20455 (congruence_class::dump): Likewise.
20456 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
20457 (dump_inline_summary): Likewise.
20458 (estimate_node_size_and_time): Likewise.
20459 (inline_analyze_function): Likewise.
20460 * ipa-inline-transform.c (inline_call): Likewise.
20461 * ipa-inline.c (report_inline_failed_reason): Likewise.
20462 (want_early_inline_function_p): Likewise.
20463 (edge_badness): Likewise.
20464 (update_edge_key): Likewise.
20465 (inline_small_functions): Likewise.
20466 * ipa-profile.c (ipa_profile): Likewise.
20467 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
20468 (ipa_make_edge_direct_to_target): Likewise.
20469 (remove_described_reference): Likewise.
20470 (ipa_impossible_devirt_target): Likewise.
20471 (propagate_controlled_uses): Likewise.
20472 (ipa_print_node_params): Likewise.
20473 (ipcp_transform_function): Likewise.
20474 * ipa-pure-const.c (pure_const_read_summary): Likewise.
20475 (propagate_pure_const): Likewise.
20476 * ipa-reference.c (generate_summary): Likewise.
20477 (read_write_all_from_decl): Likewise.
20478 (propagate): Likewise.
20479 (ipa_reference_read_optimization_summary): Likewise.
20480 * ipa-utils.c (ipa_merge_profiles): Likewise.
20481 * ipa.c (walk_polymorphic_call_targets): Likewise.
20482 (symbol_table::remove_unreachable_nodes): Likewise.
20483 (ipa_single_use): Likewise.
20484 * passes.c (execute_todo): Likewise.
20485 * predict.c (drop_profile): Likewise.
20486 * symtab.c (symtab_node::get_dump_name): New function.
20487 (symtab_node::dump_name): Likewise.
20488 (symtab_node::dump_asm_name): Likewise.
20489 (symtab_node::dump_references): Likewise.
20490 (symtab_node::dump_referring): Likewise.
20491 (symtab_node::dump_base): Likewise.
20492 (symtab_node::debug_symtab): Likewise.
20493 * tree-sra.c (convert_callers_for_node): Likewise.
20494 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
20495 * value-prof.c (init_node_map): Likewise.
20497 2017-05-23 Martin Liska <mliska@suse.cz>
20499 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
20500 and symtab_node::debug_symtab to symbol_table::debug.
20501 * cgraphunit.c (analyze_functions): Use the renamed function.
20502 (symbol_table::compile): Likewise.
20503 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
20504 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
20505 * passes.c (execute_todo): Likewise.
20506 * symtab.c (symbol_table::dump): New function.
20507 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
20509 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
20511 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
20512 that nonconst implies exec.
20514 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
20516 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
20517 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
20518 (inline_edge_summary_vec): Turn into ...
20519 (ipa_call_summaries): ... this one.
20520 (redirect_to_unreachable, edge_set_predicate,
20521 evaluate_properties_for_edge, inline_summary_alloc,
20522 reset_ipa_call_summary, reset_inline_summary,
20523 inline_summary_t::duplicate): Update.
20524 (inline_edge_duplication_hook): Turn to ...
20525 (ipa_call_summary_t::duplicate): ... this one.
20526 (inline_edge_removal_hook): Turn to ...
20527 (ipa_call_summary_t::remove): ... this one.
20528 (dump_inline_edge_summary): Turn to ...
20529 (dump_ipa_call_summary): ... this one.
20530 (estimate_function_body_sizes): Update.
20531 (inline_update_callee_summaries): Update.
20532 (remap_edge_change_prob): Update.
20533 (remap_edge_summaries): Update.
20534 (inline_merge_summary): Update.
20535 (do_estimate_edge_time): Update.
20536 (inline_generate_summary): Update.
20537 (inline_read_section): Update.
20538 (inline_read_summary): Update.
20539 (inline_free_summary): Update.
20540 * ipa-inline.c (can_inline_edge_p): Update.
20541 (compute_inlined_call_time): Update.
20542 (want_inline_small_function_p): Update.
20543 (edge_badness): Update.
20544 (early_inliner): Update.
20545 * ipa-inline.h (inline_edge_summary): Turn to ...
20546 (ipa_call_summary): ... this one.
20547 (ipa_call_summary_t): New class.
20548 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
20549 (ipa_call_summaries): New.
20550 (inline_edge_summary): Remove.
20551 (estimate_edge_growth): Update.
20552 * ipa-profile.c (ipa_propagate_frequency_1): Update.
20553 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
20554 * ipa-split.c (execute_split_functions): Update.
20555 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
20557 2017-05-23 Tom de Vries <tom@codesourcery.com>
20559 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
20560 attributes): Document rdrand effective target.
20562 2017-05-23 Tom de Vries <tom@codesourcery.com>
20564 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
20565 attributes): Sort alphabetically.
20567 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
20569 * config/avr/genmultilib.awk: Use gsub instead of gensub.
20571 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
20574 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
20575 V2DF/V2DI splat into two separate patterns, one that handles
20576 registers, and the other that only handles memory. Drop support
20577 for splatting from a GPR on ISA 2.07 and then splitting the
20578 splat into direct move and splat.
20579 (vsx_splat_<mode>_reg): Likewise.
20580 (vsx_splat_<mode>_mem): Likewise.
20582 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
20584 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
20586 2017-05-22 Jakub Jelinek <jakub@redhat.com>
20588 PR middle-end/80809
20589 * omp-low.c (finish_taskreg_remap): New function.
20590 (finish_taskreg_scan): If unit size of ctx->record_type
20591 is non-constant, unshare the size expression and replace
20592 decls in it with possible outer var refs.
20594 PR middle-end/80809
20595 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
20596 GOVD_SHARED rather than GOVD_PRIVATE with it.
20597 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
20598 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
20600 PR middle-end/80853
20601 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
20602 as last argument to build_outer_var_ref for pointer bases of array
20603 section reductions.
20605 2017-05-19 Martin Sebor <msebor@redhat.com>
20607 * print-tree.c (print_node): Print DECL_READ_P flag.
20609 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
20611 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
20612 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
20613 * cgraph.c: Likewise.
20614 * cgraphunit.c: Likewise.
20615 * gengtype.c: Likewise.
20616 * ipa-cp.c: Likewise.
20617 * ipa-devirt.c: Likewise.
20618 * ipa-icf.c: Likewise.
20619 * ipa-predicate.c: Likewise.
20620 * ipa-profile.c: Likewise.
20621 * ipa-prop.c: Likewise.
20622 * ipa-split.c: Likewise.
20624 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
20625 edge_predicate_pool, dump_inline_hints,
20626 inline_summary::account_size_time, redirect_to_unreachable,
20627 edge_set_predicate, set_hint_predicate,
20628 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
20629 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
20630 inline_summary_t::remove, remap_hint_predicate_after_duplication,
20631 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
20632 ipa_call_summary_t::remove, initialize_growth_caches,
20633 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
20634 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
20635 mark_modified, unmodified_parm_1, unmodified_parm,
20636 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
20637 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
20638 compute_bb_predicates, will_be_nonconstant_expr_predicate,
20639 will_be_nonconstant_predicate, record_modified_bb_info,
20640 get_minimal_bb, record_modified, param_change_prob,
20641 phi_result_unknown_predicate, predicate_for_phi_result,
20642 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
20643 estimate_function_body_sizes, compute_inline_parameters,
20644 compute_inline_parameters_for_curren, pass_data_inline_parameters,
20645 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
20646 inline_update_callee_summaries, remap_edge_change_prob,
20647 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
20648 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
20649 inline_analyze_function, inline_summary_t::insert,
20650 inline_generate_summary, read_ipa_call_summary, inline_read_section,
20651 inline_read_summary, write_ipa_call_summary, inline_write_summary,
20652 inline_free_summary): Move to ipa-fnsummary.h
20653 (predicate_t): Remove.
20654 * ipa-fnsummary.c: New file.
20655 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
20656 (enum inline_hints_vals, inline_hints, agg_position_info,
20657 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
20658 inline_summaries, ipa_call_summary, ipa_call_summary_t,
20659 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
20660 dump_inline_summary, dump_inline_hints, inline_generate_summary,
20661 inline_read_summary, inline_write_summary, inline_free_summary,
20662 inline_analyze_function, initialize_inline_failed,
20663 inline_merge_summary, inline_update_overall_summary,
20664 compute_inline_parameters): Move to ipa-fnsummary.h
20665 * ipa-fnsummary.h: New file.
20666 * ipa-inline-transform.h: Include ipa-inline.h.
20667 * ipa-inline.c: LIkewise.
20669 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
20671 * ipa-inline.c (edge_badness): Use inlined_time instead of
20672 inline_summaries->get.
20674 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
20676 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
20678 2017-05-22 Nathan Sidwell <nathan@acm.org>
20680 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
20681 (fdump-lang): Document 'raw' option.
20682 * dumpfile.h (TDI_tu): Delete.
20683 * dumpfile.c (dump_files): Remove translation-unit.
20684 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
20686 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
20688 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
20689 command option from $(AWK) call.
20690 * config/avr/genmultilib.awk: Simplify and rewrite so that it
20691 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
20692 [FORMAT]: Remove handling of variable.
20693 * config/avr/t-multilib: Regenerate.
20695 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
20697 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
20699 (dump_inline_summary): Do not print self_time.
20700 (estimate_function_body_sizes): Do not set self_time.
20701 (compute_inline_parameters): Likewise.
20702 (inline_read_section, inline_write_summary): Do not stream self_time.
20703 * ipa-inline.h (inline_summary): Drop self_time.
20705 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
20707 * ipa-inline-analysis.c (account_size_time): Rename to ...
20708 (inline_summary::account_size_time): ... this one.
20709 (reset_ipa_call_summary): Turn to ...
20710 (ipa_call_summary::reset): ... this one.
20711 (reset_inline_summary): Turn to ...
20712 (inline_summary::reset): ... this one.
20713 (inline_summary_t::remove): Update.
20714 (inline_summary_t::duplicate): Update.
20715 (ipa_call_summary_t::remove): Update.
20716 (dump_inline_summary): Update.
20717 (estimate_function_body_sizes): Update.
20718 (compute_inline_parameters): Update.
20719 (estimate_node_size_and_time): Update.
20720 (inline_merge_summary): Update.
20721 (inline_update_overall_summary): Update.
20722 (inline_read_section): Update.
20723 (inline_write_summary): Update.
20724 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
20725 add account_size_time and reset member functions.
20726 (ipa_call_summary): Add reset function.
20727 * ipa-predicate.h (predicate::operator &): Constify.
20729 2017-05-22 Richard Biener <rguenther@suse.de>
20731 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
20733 2017-05-19 Jason Merrill <jason@redhat.com>
20735 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
20737 2017-05-19 Marek Polacek <polacek@redhat.com>
20740 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
20741 TYPE_OVERFLOW_WRAPS checks.
20743 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
20745 * tree-core.h (enum omp_clause_default_kind): Add
20746 "OMP_CLAUSE_DEFAULT_PRESENT".
20747 * tree-pretty-print.c (dump_omp_clause): Handle it.
20748 * gimplify.c (enum gimplify_omp_var_data): Add
20749 "GOVD_MAP_FORCE_PRESENT".
20750 (gimplify_adjust_omp_clauses_1): Map it to
20751 "GOMP_MAP_FORCE_PRESENT".
20752 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
20754 * gimplify.c (oacc_default_clause): Clarify.
20756 2017-05-19 Nathan Sidwell <nathan@acm.org>
20758 LANG_HOOK_REGISTER_DUMPS
20759 * toplev.c (general_init): Call register dump lang hook.
20760 * doc/invoke.texi: Document -fdump-lang option family.
20761 * dumpfile.c (dump_files): Remove class dump here.
20762 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
20763 * dumpfile.h (tree_dump_index): Remove TDI_class.
20764 * langhooks-def.h (lhd_register_dumps): Declare.
20765 (LANG_HOOKS_REGISTER_DUMPS): Define.
20766 (LANG_HOOKS_INITIALIZER): Add it.
20767 * langhooks.c (lhd_register_dumps): Define.
20768 * langhooks.h (struct lang_hooks): Add register_dumps.
20770 2017-05-19 Nathan Sidwell <nathan@acm.org>
20772 * context.h (context::set_passes): New.
20773 * context.c (context::context): Do not create pass manager.
20774 * toplev.c (general_init): Create pass manager here.
20776 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
20778 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
20779 use this splitter if two add or or instructions would also work for
20780 the constant we want to generate.
20782 2017-05-19 Richard Biener <rguenther@suse.de>
20785 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
20786 predicate evaluation.
20788 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
20790 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
20792 * ipa-inline.c (want_inline_small_function_p): Do not cast to
20795 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
20797 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
20798 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
20799 (inline_edge_summary_vec): Turn into ...
20800 (ipa_call_summaries): ... this one.
20801 (redirect_to_unreachable, edge_set_predicate,
20802 evaluate_properties_for_edge, inline_summary_alloc,
20803 reset_ipa_call_summary, reset_inline_summary,
20804 inline_summary_t::duplicate): Update.
20805 (inline_edge_duplication_hook): Turn to ...
20806 (ipa_call_summary_t::duplicate): ... this one.
20807 (inline_edge_removal_hook): Turn to ...
20808 (ipa_call_summary_t::remove): ... this one.
20809 (dump_inline_edge_summary): Turn to ...
20810 (dump_ipa_call_summary): ... this one.
20811 (estimate_function_body_sizes): Update.
20812 (inline_update_callee_summaries): Update.
20813 (remap_edge_change_prob): Update.
20814 (remap_edge_summaries): Update.
20815 (inline_merge_summary): Update.
20816 (do_estimate_edge_time): Update.
20817 (inline_generate_summary): Update.
20818 (inline_read_section): Update.
20819 (inline_read_summary): Update.
20820 (inline_free_summary): Update.
20821 * ipa-inline.c (can_inline_edge_p): Update.
20822 (compute_inlined_call_time): Update.
20823 (want_inline_small_function_p): Update.
20824 (edge_badness): Update.
20825 (early_inliner): Update.
20826 * ipa-inline.h (inline_edge_summary): Turn to ...
20827 (ipa_call_summary): ... this one.
20828 (ipa_call_summary_t): New class.
20829 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
20830 (ipa_call_summaries): New.
20831 (inline_edge_summary): Remove.
20832 (estimate_edge_growth): Update.
20833 * ipa-profile.c (ipa_propagate_frequency_1): Update.
20834 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
20835 * ipa-split.c (execute_split_functions): Update.
20836 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
20838 2017-05-19 Richard Biener <rguenther@suse.de>
20840 PR middle-end/80764
20841 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
20843 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
20845 * config/rs6000/rs6000.c (struct machine_function): Add field
20846 fpr_is_wrapped_separately.
20847 (rs6000_get_separate_components): Use 64 components. Handle the
20848 new FPR components.
20849 (rs6000_components_for_bb): Handle the FPR components.
20850 (rs6000_emit_prologue_components): Handle the FPR components.
20851 (rs6000_emit_epilogue_components): Handle the FPR components.
20852 (rs6000_set_handled_components): Handle the FPR components.
20853 (rs6000_emit_prologue): Don't output prologue code for those FPRs
20854 that are already separately shrink-wrapped.
20855 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
20856 that are already separately shrink-wrapped.
20858 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
20861 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
20864 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
20865 (define_peephole2 for Altivec d-form load): Add peepholes to catch
20866 cases where the register allocator uses a move and an offsettable
20867 memory operation to/from a FPR register on ISA 2.06/2.07.
20868 (define_peephole2 for Altivec d-form store): Likewise.
20870 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
20873 * config/i386/mmx.md (*mov<mode>_internal): Enable
20874 alternatives 11, 12, 13 and 14 also for 32bit targets.
20875 Remove alternatives 15, 16, 17 and 18.
20876 * config/i386/sse.md (vec_concatv2di): Change
20877 alternative (!x, *y) to (x, ?!*Yn).
20879 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
20881 * dumpfile.h (enum dump_kind): Remove stray comma.
20883 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
20885 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
20886 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
20887 predicate::num_conditions
20888 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
20889 (CHANGED): turn into predicate::changed.
20890 (agg_position_info): Move to ipa-predicate.h
20891 (add_condition, predicate::add_clause, predicate::operator &=,
20892 predicate::or_with, predicate::evaluate, predicate::probability,
20893 dump_condition, dump_clause, predicate::dump,
20894 predicate::remap_after_duplication, predicate::remap_after_inlining,
20895 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
20896 (evaluate_conditions_for_known_args): Update.
20897 (set_cond_stmt_execution_predicate): Update.
20898 * ipa-inline.h: Include ipa-predicate.h
20899 (condition, inline_param_summary, conditions, agg_position_info,
20900 predicate): Move to ipa-predicate.h
20901 * ipa-predicate.c: New file.
20902 * ipa-predicate.h: New file.
20904 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
20906 * final.c (leaf_function_p): Check we are not in a sequence.
20908 2017-05-18 Martin Liska <mliska@suse.cz>
20910 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
20911 * dumpfile.c (dump_register): Use new enum dump_kind.
20912 (get_dump_file_name): Likewise.
20913 (dump_enable_all): Likewise.
20914 (dump_switch_p_1): Likewise.
20915 (enable_rtl_dump_file): Remove usage of TDF_RTL.
20916 * dumpfile.h (enum dump_kind): New enum type.
20917 (struct dump_file_info): Create constructor and
20918 format fields and comments.
20919 * passes.c (pass_manager::register_one_dump_file):
20921 * statistics.c (statistics_early_init): Likewise.
20922 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
20923 TDF_TREE with TDF_SLIM.
20924 (gather_memory_references_ref): Likewise.
20926 2017-05-18 Martin Liska <mliska@suse.cz>
20928 * vec.h (struct vnull): Use it.
20930 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
20932 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
20933 (true_predicate, false_predicate, true_predicate_p,
20934 false_predicate_p): Remove.
20935 (single_cond_predicate, not_inlined_predicate): Turn to member function
20937 (add_condition): Update.
20938 (add_clause): Turn to...
20939 (predicate::add_clause): ... this one; update; allow passing NULL
20941 (and_predicates): Turn to ...
20942 (predicate::operator &=): ... this one.
20943 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
20944 (or_predicates): Turn to ...
20945 (predicate::or_with): ... this one.
20946 (evaluate_predicate): Turn to ...
20947 (predicate::evaluate): ... this one.
20948 (predicate_probability): Turn to ...
20949 (predicate::probability): ... this one.
20950 (dump_condition): Update.
20951 (dump_predicate): Turn to ...
20952 (predicate::dump): ... this one.
20953 (account_size_time): Update.
20954 (edge_set_predicate): Update.
20955 (set_hint_predicate): UPdate.
20956 (evaluate_conditions_for_known_args): Update.
20957 (evaluate_properties_for_edge): Update.
20958 (remap_predicate_after_duplication): Turn to...
20959 (predicate::remap_after_duplication): ... this one.
20960 (remap_hint_predicate_after_duplication): Update.
20961 (inline_summary_t::duplicate): UPdate.
20962 (dump_inline_edge_summary): Update.
20963 (dump_inline_summary): Update.
20964 (set_cond_stmt_execution_predicate): Update.
20965 (set_switch_stmt_execution_predicate): Update.
20966 (compute_bb_predicates): Update.
20967 (will_be_nonconstant_expr_predicate): Update.
20968 (will_be_nonconstant_predicate): Update.
20969 (phi_result_unknown_predicate): Update.
20970 (predicate_for_phi_result): Update.
20971 (array_index_predicate): Update.
20972 (estimate_function_body_sizes): Update.
20973 (estimate_node_size_and_time): Update.
20974 (estimate_ipcp_clone_size_and_time): Update.
20975 (remap_predicate): Rename to ...
20976 (predicate::remap_after_inlining): ... this one.
20977 (remap_hint_predicate): Update.
20978 (inline_merge_summary): Update.
20979 (inline_update_overall_summary): Update.
20980 (estimate_size_after_inlining): Update.
20981 (read_predicate): Rename to ...
20982 (predicate::stream_in): ... this one.
20983 (read_inline_edge_summary): Update.
20984 (write_predicate): Rename to ...
20985 (predicate::stream_out): ... this one.
20986 (write_inline_edge_summary): Update.
20987 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
20988 (clause_t): Turn to uint32_t
20989 (predicate): Turn to class; implement constructor and operators
20991 (size_time_entry): Update.
20992 (inline_summary): Update.
20993 (inline_edge_summary): Update.
20995 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
20997 * fold-const.c (fold_binary_loc): Move transformation...
20998 * match.pd (C - X CMP X): ... here.
21000 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
21002 * config/sparc/sparc.c (sparc_option_override): Set function
21003 alignment for -mcpu=niagara7 to 64 to match the I$ line.
21004 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
21006 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
21008 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
21010 2017-05-18 Marek Polacek <polacek@redhat.com>
21013 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
21014 (pass_ubsan::execute): Call gimple_assign_single_p instead of
21015 gimple_assign_load_p.
21017 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
21019 PR middle-end/80692
21020 * real.c (do_compare): Give decimal_do_compare preference over
21021 comparing just the signs.
21023 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
21025 * doc/md.texi (Canonicalization of Instructions): Describe the
21026 canonical form of instructions that inherently set a condition
21029 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
21031 PR middle-end/80775
21032 * tree-cfg.c: Move deletion of unreachable case statements to after
21033 the merging of consecutive case labels.
21035 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
21037 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
21038 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
21039 restoring of callee-saved registers.
21041 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
21043 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
21044 * config/visium/visium.c (single_set_and_flags): Likewise.
21045 * config/visium/visium.md (Substitutions): Likewise.
21047 2017-05-17 Martin Liska <mliska@suse.cz>
21049 * cfg.c: Introduce dump_flags_t type and
21050 use it instead of int type.
21052 * cfghooks.c: Likewise.
21053 * cfghooks.h (struct cfg_hooks): Likewise.
21054 * cfgrtl.c: Likewise.
21055 * cfgrtl.h: Likewise.
21056 * cgraph.c (cgraph_node::get_body): Likewise.
21057 * coretypes.h: Likewise.
21058 * domwalk.c: Likewise.
21059 * domwalk.h: Likewise.
21060 * dumpfile.c (struct dump_option_value_info): Likewise.
21061 (dump_enable_all): Likewise.
21062 (dump_switch_p_1): Likewise.
21063 (opt_info_switch_p): Likewise.
21064 * dumpfile.h (enum tree_dump_index): Likewise.
21065 (struct dump_file_info): Likewise.
21066 * genemit.c: Likewise.
21067 * generic-match-head.c: Likewise.
21068 * gengtype.c (open_base_files): Likewise.
21069 * gimple-pretty-print.c: Likewise.
21070 * gimple-pretty-print.h: Likewise.
21071 * graph.c (print_graph_cfg): Likewise.
21072 * graphite-scop-detection.c (dot_all_sese): Likewise.
21073 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
21074 * loop-unroll.c (report_unroll): Likewise.
21075 * passes.c (pass_manager::register_one_dump_file): Likewise.
21076 * print-tree.c: Likewise.
21077 * statistics.c: Likewise.
21078 * tree-cfg.c: Likewise.
21079 * tree-cfg.h: Likewise.
21080 * tree-dfa.c: Likewise.
21081 * tree-dfa.h: Likewise.
21082 * tree-dump.c (dump_function): Likewise.
21083 * tree-dump.h (struct dump_info): Likewise.
21084 * tree-pretty-print.c: Likewise.
21085 * tree-pretty-print.h: Likewise.
21086 * tree-ssa-live.c: Likewise.
21087 * tree-ssa-live.h: Likewise.
21088 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
21089 * tree-vect-loop.c: Likewise.
21090 * tree-vect-slp.c: Likewise.
21092 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
21093 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21095 PR tree-optimization/80457
21096 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
21097 of all arguments to a statement as scalar_to_vec operations.
21098 (vectorizable_call): Adjust call to vect_model_simple_cost for
21100 (vectorizable_conversion): Likewise.
21101 (vectorizable_assignment): Likewise.
21102 (vectorizable_shift): Likewise.
21103 (vectorizable_operation): Likewise.
21104 (vectorizable_comparison): Likewise.
21105 (vect_is_simple_cond): Record the def types for operands.
21106 (vectorizable_condition): Likewise, call vect_model_simple_cost.
21107 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
21108 for statement argument count.
21110 2017-05-16 Carl Love <cel@us.ibm.com>
21112 * config/rs6000/rs6000-c: Add support for built-in functions
21113 vector unsigned long long vec_bperm (vector unsigned long long,
21114 vector unsigned char)
21115 vector signed long long vec_mule (vector signed int,
21117 vector unsigned long long vec_mule (vector unsigned int,
21118 vector unsigned int)
21119 vector signed long long vec_mulo (vector signed int,
21121 vector unsigned long long vec_mulo (vector unsigned int,
21122 vector unsigned int)
21123 vector signed char vec_sldw (vector signed char,
21124 vector signed char,
21126 vector unsigned char vec_sldw (vector unsigned char,
21127 vector unsigned char,
21129 vector signed short vec_sldw (vector signed short,
21130 vector signed short,
21132 vector unsigned short vec_sldw (vector unsigned short,
21133 vector unsigned short,
21135 vector signed int vec_sldw (vector signed int,
21138 vector unsigned int vec_sldw (vector unsigned int,
21139 vector unsigned int,
21141 vector signed long long vec_sldw (vector signed long long,
21142 vector signed long long,
21144 vector unsigned long long vec_sldw (vector unsigned long long,
21145 vector unsigned long long,
21147 * config/rs6000/rs6000-c: Add support for built-in functions
21148 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
21149 * config/rs6000/altivec.h: Add defintion for vec_sldw.
21150 * doc/extend.texi: Update the built-in documentation for the
21151 new built-in functions.
21153 2017-05-16 Marek Polacek <polacek@redhat.com>
21157 * tree.c (save_expr): Don't fold the expression.
21159 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
21161 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
21162 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
21163 and (?*y,m). Update insn attributes.
21165 2017-05-16 Martin Liska <mliska@suse.cz>
21167 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
21168 flags argument of print_gimple_stmt, print_gimple_expr,
21169 print_generic_stmt and print_generic_expr.
21170 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
21171 * coretypes.h: Likewise.
21172 * except.c (dump_eh_tree): Likewise.
21173 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
21174 * gimple-pretty-print.h: Likewise.
21175 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
21176 (backprop::push_to_worklist): Likewise.
21177 (backprop::pop_from_worklist): Likewise.
21178 (backprop::process_use): Likewise.
21179 (backprop::intersect_uses): Likewise.
21180 (note_replacement): Likewise.
21181 * gimple-ssa-store-merging.c
21182 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
21183 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
21184 (pass_store_merging::execute): Likewise.
21185 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
21186 (ssa_base_cand_dump_callback): Likewise.
21187 (dump_incr_vec): Likewise.
21188 (replace_refs): Likewise.
21189 (replace_mult_candidate): Likewise.
21190 (create_add_on_incoming_edge): Likewise.
21191 (create_phi_basis): Likewise.
21192 (insert_initializers): Likewise.
21193 (all_phi_incrs_profitable): Likewise.
21194 (introduce_cast_before_cand): Likewise.
21195 (replace_one_candidate): Likewise.
21196 * gimplify.c (gimplify_expr): Likewise.
21197 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
21198 (set_rename): Likewise.
21199 (rename_uses): Likewise.
21200 (copy_loop_phi_nodes): Likewise.
21201 (add_close_phis_to_merge_points): Likewise.
21202 (copy_loop_close_phi_args): Likewise.
21203 (copy_cond_phi_args): Likewise.
21204 (graphite_copy_stmts_from_block): Likewise.
21205 (translate_pending_phi_nodes): Likewise.
21206 * graphite-poly.c (print_pdr): Likewise.
21207 (dump_gbb_cases): Likewise.
21208 (dump_gbb_conditions): Likewise.
21209 (print_scop_params): Likewise.
21210 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
21211 (build_cross_bb_scalars_use): Likewise.
21212 (gather_bbs::before_dom_children): Likewise.
21213 * hsa-dump.c (dump_hsa_immed): Likewise.
21214 * ipa-cp.c (print_ipcp_constant_value): Likewise.
21215 (get_replacement_map): Likewise.
21216 * ipa-inline-analysis.c (dump_condition): Likewise.
21217 (estimate_function_body_sizes): Likewise.
21218 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
21219 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
21220 * ipa-prop.c (ipa_dump_param): Likewise.
21221 (ipa_print_node_jump_functions_for_edge): Likewise.
21222 (ipa_modify_call_arguments): Likewise.
21223 (ipa_modify_expr): Likewise.
21224 (ipa_dump_param_adjustments): Likewise.
21225 (ipa_dump_agg_replacement_values): Likewise.
21226 (ipcp_modif_dom_walker::before_dom_children): Likewise.
21227 * ipa-pure-const.c (check_stmt): Likewise.
21228 (pass_nothrow::execute): Likewise.
21229 * ipa-split.c (execute_split_functions): Likewise.
21230 * omp-offload.c (dump_oacc_loop_part): Likewise.
21231 (dump_oacc_loop): Likewise.
21232 * trans-mem.c (tm_log_emit): Likewise.
21233 (tm_memopt_accumulate_memops): Likewise.
21234 (dump_tm_memopt_set): Likewise.
21235 (dump_tm_memopt_transform): Likewise.
21236 * tree-cfg.c (gimple_verify_flow_info): Likewise.
21237 (print_loop): Likewise.
21238 * tree-chkp-opt.c (chkp_print_addr): Likewise.
21239 (chkp_gather_checks_info): Likewise.
21240 (chkp_get_check_result): Likewise.
21241 (chkp_remove_check_if_pass): Likewise.
21242 (chkp_use_outer_bounds_if_possible): Likewise.
21243 (chkp_reduce_bounds_lifetime): Likewise.
21244 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
21245 (chkp_mark_completed_bounds): Likewise.
21246 (chkp_register_incomplete_bounds): Likewise.
21247 (chkp_mark_invalid_bounds): Likewise.
21248 (chkp_maybe_copy_and_register_bounds): Likewise.
21249 (chkp_build_returned_bound): Likewise.
21250 (chkp_get_bound_for_parm): Likewise.
21251 (chkp_build_bndldx): Likewise.
21252 (chkp_get_bounds_by_definition): Likewise.
21253 (chkp_generate_extern_var_bounds): Likewise.
21254 (chkp_get_bounds_for_decl_addr): Likewise.
21255 * tree-chrec.c (chrec_apply): Likewise.
21256 * tree-data-ref.c (dump_data_reference): Likewise.
21257 (dump_subscript): Likewise.
21258 (dump_data_dependence_relation): Likewise.
21259 (analyze_overlapping_iterations): Likewise.
21260 * tree-inline.c (expand_call_inline): Likewise.
21261 (tree_function_versioning): Likewise.
21262 * tree-into-ssa.c (dump_defs_stack): Likewise.
21263 (dump_currdefs): Likewise.
21264 (dump_names_replaced_by): Likewise.
21265 (dump_update_ssa): Likewise.
21266 (update_ssa): Likewise.
21267 * tree-object-size.c (pass_object_sizes::execute): Likewise.
21268 * tree-parloops.c (build_new_reduction): Likewise.
21269 (try_create_reduction_list): Likewise.
21270 (ref_conflicts_with_region): Likewise.
21271 (oacc_entry_exit_ok_1): Likewise.
21272 (oacc_entry_exit_single_gang): Likewise.
21273 * tree-pretty-print.h: Likewise.
21274 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
21275 (get_scalar_evolution): Likewise.
21276 (add_to_evolution): Likewise.
21277 (get_loop_exit_condition): Likewise.
21278 (analyze_evolution_in_loop): Likewise.
21279 (analyze_initial_condition): Likewise.
21280 (analyze_scalar_evolution): Likewise.
21281 (instantiate_scev): Likewise.
21282 (number_of_latch_executions): Likewise.
21283 (gather_chrec_stats): Likewise.
21284 (final_value_replacement_loop): Likewise.
21285 (scev_const_prop): Likewise.
21286 * tree-sra.c (dump_access): Likewise.
21287 (disqualify_candidate): Likewise.
21288 (create_access): Likewise.
21289 (reject): Likewise.
21290 (maybe_add_sra_candidate): Likewise.
21291 (create_access_replacement): Likewise.
21292 (analyze_access_subtree): Likewise.
21293 (analyze_all_variable_accesses): Likewise.
21294 (sra_modify_assign): Likewise.
21295 (initialize_constant_pool_replacements): Likewise.
21296 (find_param_candidates): Likewise.
21297 (decide_one_param_reduction): Likewise.
21298 (replace_removed_params_ssa_names): Likewise.
21299 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
21300 * tree-ssa-copy.c (dump_copy_of): Likewise.
21301 (copy_prop_visit_cond_stmt): Likewise.
21302 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
21303 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
21304 (record_equivalences_from_stmt): Likewise.
21305 * tree-ssa-dse.c (compute_trims): Likewise.
21306 (delete_dead_call): Likewise.
21307 (delete_dead_assignment): Likewise.
21308 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
21309 (forward_propagate_into_cond): Likewise.
21310 (pass_forwprop::execute): Likewise.
21311 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
21312 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
21314 (move_computations_worker): Likewise.
21315 (execute_sm): Likewise.
21316 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
21317 (remove_exits_and_undefined_stmts): Likewise.
21318 (remove_redundant_iv_tests): Likewise.
21319 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
21320 (adjust_iv_update_pos): Likewise.
21321 * tree-ssa-math-opts.c (bswap_replace): Likewise.
21322 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
21323 (value_replacement): Likewise.
21324 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
21325 * tree-ssa-pre.c (print_pre_expr): Likewise.
21326 (get_representative_for): Likewise.
21327 (create_expression_by_pieces): Likewise.
21328 (insert_into_preds_of_block): Likewise.
21329 (eliminate_insert): Likewise.
21330 (eliminate_dom_walker::before_dom_children): Likewise.
21331 (eliminate): Likewise.
21332 (remove_dead_inserted_code): Likewise.
21333 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
21334 * tree-ssa-reassoc.c (get_rank): Likewise.
21335 (eliminate_duplicate_pair): Likewise.
21336 (eliminate_plus_minus_pair): Likewise.
21337 (eliminate_not_pairs): Likewise.
21338 (undistribute_ops_list): Likewise.
21339 (eliminate_redundant_comparison): Likewise.
21340 (update_range_test): Likewise.
21341 (optimize_range_tests_var_bound): Likewise.
21342 (optimize_vec_cond_expr): Likewise.
21343 (rewrite_expr_tree): Likewise.
21344 (rewrite_expr_tree_parallel): Likewise.
21345 (linearize_expr): Likewise.
21346 (break_up_subtract): Likewise.
21347 (linearize_expr_tree): Likewise.
21348 (attempt_builtin_powi): Likewise.
21349 (attempt_builtin_copysign): Likewise.
21350 (transform_stmt_to_copy): Likewise.
21351 (transform_stmt_to_multiply): Likewise.
21352 (dump_ops_vector): Likewise.
21353 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
21354 (print_scc): Likewise.
21355 (set_ssa_val_to): Likewise.
21356 (visit_reference_op_store): Likewise.
21357 (visit_use): Likewise.
21358 (sccvn_dom_walker::before_dom_children): Likewise.
21359 (run_scc_vn): Likewise.
21360 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
21362 (expr_hash_elt::print): Likewise.
21363 (const_and_copies::pop_to_marker): Likewise.
21364 (const_and_copies::record_const_or_copy_raw): Likewise.
21365 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
21366 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
21367 (dump_predicates): Likewise.
21368 (find_uninit_use): Likewise.
21369 (warn_uninitialized_phi): Likewise.
21370 (pass_late_warn_uninitialized::execute): Likewise.
21371 * tree-ssa.c (verify_vssa): Likewise.
21372 (verify_ssa): Likewise.
21373 (maybe_optimize_var): Likewise.
21374 * tree-vrp.c (dump_value_range): Likewise.
21375 (dump_all_value_ranges): Likewise.
21376 (dump_asserts_for): Likewise.
21377 (register_edge_assert_for_2): Likewise.
21378 (vrp_visit_cond_stmt): Likewise.
21379 (vrp_visit_switch_stmt): Likewise.
21380 (vrp_visit_stmt): Likewise.
21381 (vrp_visit_phi_node): Likewise.
21382 (simplify_cond_using_ranges_1): Likewise.
21383 (fold_predicate_in): Likewise.
21384 (evrp_dom_walker::before_dom_children): Likewise.
21385 (evrp_dom_walker::push_value_range): Likewise.
21386 (evrp_dom_walker::pop_value_range): Likewise.
21387 (execute_early_vrp): Likewise.
21389 2017-05-16 Richard Biener <rguenther@suse.de>
21391 * dwarf2out.c (loc_list_from_tree_1): Do not create
21392 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
21394 2017-05-16 Richard Biener <rguenther@suse.de>
21396 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
21398 (note_variable_value_in_expr): If we resolved the decl ref
21399 do not push to the stack.
21401 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
21403 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
21404 operations in fast-math mode.
21405 (vaddq_f16): Likewise.
21406 (vmul_f16): Likewise.
21407 (vmulq_f16): Likewise.
21408 (vsub_f16): Likewise.
21409 (vsubq_f16): Likewise.
21410 * config/arm/neon.md (add<mode>3): New.
21412 (fma:<VH:mode>3): New. Also remove outdated comment.
21415 2017-05-16 Martin Liska <mliska@suse.cz>
21419 * ipa-devirt.c (warn_types_mismatch): Fix typo.
21420 (odr_types_equivalent_p): Likewise.
21422 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
21424 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
21426 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
21429 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
21430 non-interunit SSE move alternatives with '?'.
21431 (zero-extendsidi peephole2): New peephole to skip intermediate
21432 general register in SSE zero-extend sequence.
21434 2017-05-15 Jeff Law <law@redhat.com>
21436 * reorg.c (relax_delay_slots): Create a new variable to hold
21437 the temporary target rather than clobbering TARGET_LABEL.
21439 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
21440 missing argument to extract_bit_field call.
21441 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
21443 2017-05-15 Martin Liska <mliska@suse.cz>
21446 * gcc.c (process_command): Do not allow empty argument of -o option.
21448 2017-05-15 Renlin Li <renlin.li@arm.com>
21450 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
21451 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
21452 * config/aarch64/constraints.md (Usf): Add long call check.
21453 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
21454 (call_value): Likewise.
21455 (sibcall): Likewise.
21456 (sibcall_value): Likewise.
21458 (call_value_insn): New.
21459 (sibcall_insn): Update rtx pattern.
21460 (sibcall_value_insn): Likewise.
21461 (call_internal): Remove.
21462 (call_value_internal): Likewise.
21463 (sibcall_internal): Likewise.
21464 (sibcall_value_internal): Likewise.
21465 (call_reg): Likewise.
21466 (call_symbol): Likewise.
21467 (call_value_reg): Likewise.
21468 (call_value_symbol): Likewise.
21470 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
21473 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
21475 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
21477 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
21478 compatible with CCGOCmode and with CCZmode.
21480 2017-05-14 Martin Sebor <msebor@redhat.com>
21482 PR middle-end/77671
21483 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
21484 (gimple_fold_builtin_snprintf): Same.
21485 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
21486 (gimple_fold_builtin_snprintf): Same.
21487 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
21488 of character types.
21489 (is_call_safe): New function.
21490 (try_substitute_return_value): Call it.
21491 (try_simplify_call): New function.
21492 (pass_sprintf_length::handle_gimple_call): Call it.
21494 2017-05-14 Martin Sebor <msebor@redhat.com>
21496 PR middle-end/80669
21497 * builtins.c (expand_builtin_stpncpy): Simplify.
21499 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
21501 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
21502 * config/i386/i386.h
21503 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
21504 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
21505 (struct machine_function): Add new members call_ms2sysv,
21506 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
21507 (struct machine_frame_state): New fields sp_realigned and
21508 sp_realigned_offset.
21509 * config/i386/i386.c
21510 (enum xlogue_stub): New enum.
21511 (enum xlogue_stub_sets): New enum.
21512 (class xlogue_layout): New class.
21513 (struct ix86_frame): New fields stack_realign_allocate_offset,
21514 stack_realign_offset and outlined_save_offset. Modify comments to
21515 detail stack layout when using out-of-line stubs.
21516 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
21517 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
21518 -mcall-ms2sysv-xlogues.
21519 (stub_managed_regs): New static variable.
21520 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
21521 registers managed by out-of-line stub.
21522 (disable_call_ms2sysv_xlogues): New function.
21523 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
21524 m->call_ms2sysv when appropriate and compute frame layout for
21526 (sp_valid_at, fp_valid_at): New inline functions.
21527 (choose_basereg): New function.
21528 (choose_baseaddr): Add align parameter, use choose_basereg and modify
21530 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
21531 Use align parameter of choose_baseaddr to generated aligned SSE movs
21533 (pro_epilogue_adjust_stack): Modify to track
21534 machine_frame_state::sp_realigned.
21535 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
21536 (ix86_nsaved_sseregs): Likewise.
21537 (ix86_emit_save_regs): Likewise.
21538 (ix86_emit_save_regs_using_mov): Likewise.
21539 (ix86_emit_save_sse_regs_using_mov): Likewise.
21540 (get_scratch_register_on_entry): Likewise.
21541 (gen_frame_set): New function.
21542 (gen_frame_load): Likewise.
21543 (gen_frame_store): Likewise.
21544 (emit_outlined_ms2sysv_save): Likewise.
21545 (emit_outlined_ms2sysv_restore): Likewise.
21546 (ix86_expand_prologue): Modify stack re-alignment code and call
21547 emit_outlined_ms2sysv_save when appropriate.
21548 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
21549 parameter rtx_insn *insn, which allows the function to be used to only
21550 generate the notes.
21551 (ix86_expand_epilogue): Modify validity checks of frame and stack
21552 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
21553 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
21554 * config/i386/predicates.md
21555 (save_multiple): New predicate.
21556 (restore_multiple): Likewise.
21557 * config/i386/sse.md
21558 (save_multiple<mode>): New pattern.
21559 (save_multiple_realign<mode>): Likewise.
21560 (restore_multiple<mode>): Likewise.
21561 (restore_multiple_and_return<mode>): Likewise.
21562 (restore_multiple_leave_return<mode>): Likewise.
21563 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
21565 2017-05-14 Julia Koval <julia.koval@intel.com>
21567 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
21568 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
21569 (__builtin_ia32_xsetbv): New builtins.
21570 * config/i386/i386.c (ix86_expand_special_args_builtin):
21572 (ix86_expand_builtin): Special expand for new intrinsics.
21573 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
21574 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
21575 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
21577 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21579 * cfganal.c (inverted_post_order_compute): Change argument type
21581 * cfganal.h (inverted_post_order_compute): Adjust prototype.
21582 * df-core.c (rest_of_handle_df_initialize): Adjust.
21583 (rest_of_handle_df_finish): Likewise.
21584 (df_analyze_1): Likewise.
21585 (df_analyze): Likewise.
21586 (loop_inverted_post_order_compute): Change argument to be a vec *.
21587 (df_analyze_loop): Adjust.
21588 (df_get_n_blocks): Likewise.
21589 (df_get_postorder): Likewise.
21590 * df.h (struct df_d): Change field to be a vec.
21591 * lcm.c (compute_laterin): Adjust.
21592 (compute_available): Likewise.
21593 * lra-lives.c (lra_create_live_ranges_1): Likewise.
21594 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
21595 * tree-ssa-pre.c (compute_antic): Likewise.
21597 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21599 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
21600 (depth_first_search::depth_first_search): Change structure init
21601 function to this constructor.
21602 (depth_first_search::add_bb): Rename function to this member.
21603 (depth_first_search::execute): Likewise.
21604 (flow_dfs_compute_reverse_finish): Adjust.
21606 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21608 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
21609 (longest_simple_path): Likewise.
21610 * shrink-wrap.c (spread_components): Likewise.
21611 (disqualify_problematic_components): Likewise.
21612 (emit_common_heads_for_components): Likewise.
21613 (emit_common_tails_for_components): Likewise.
21614 (insert_prologue_epilogue_for_components): Likewise.
21616 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21618 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
21621 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21623 * df-core.c (df_set_blocks): Start using auto_bitmap.
21624 (df_compact_blocks): Likewise.
21625 * df-problems.c (df_rd_confluence_n): Likewise.
21626 * df-scan.c (df_insn_rescan_all): Likewise.
21627 (df_process_deferred_rescans): Likewise.
21628 (df_update_entry_block_defs): Likewise.
21629 (df_update_exit_block_uses): Likewise.
21630 (df_entry_block_bitmap_verify): Likewise.
21631 (df_exit_block_bitmap_verify): Likewise.
21632 (df_scan_verify): Likewise.
21633 * lra-constraints.c (lra_constraints): Likewise.
21634 (undo_optional_reloads): Likewise.
21635 (lra_undo_inheritance): Likewise.
21636 * lra-remat.c (calculate_gen_cands): Likewise.
21637 (do_remat): Likewise.
21638 * lra-spills.c (assign_spill_hard_regs): Likewise.
21639 (spill_pseudos): Likewise.
21640 * tree-ssa-pre.c (bitmap_set_and): Likewise.
21641 (bitmap_set_subtract_values): Likewise.
21643 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21645 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
21646 management with auto_bitmap.
21647 (fix_inter_tick): Likewise.
21648 (fix_recovery_deps): Likewise.
21649 * ira.c (add_store_equivs): Likewise.
21650 (find_moveable_pseudos): Likewise.
21651 (split_live_ranges_for_shrink_wrap): Likewise.
21652 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
21653 (rtx_reuse_manager::seen_def_p): Likewise.
21654 (rtx_reuse_manager::set_seen_def): Likewise.
21655 * print-rtl.h (class rtx_reuse_manager): Likewise.
21657 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21659 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
21661 (migrate_btr_def): Likewise.
21662 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
21663 * df-core.c (loop_post_order_compute): Likewise.
21664 (loop_inverted_post_order_compute): Likewise.
21665 * hsa-common.h: Likewise.
21666 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
21667 * init-regs.c (initialize_uninitialized_regs): Likewise.
21668 * ipa-inline.c (resolve_noninline_speculation): Likewise.
21669 (inline_small_functions): Likewise.
21670 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
21671 * ira.c (combine_and_move_insns): Likewise.
21672 (build_insn_chain): Likewise.
21673 * loop-invariant.c (find_invariants): Likewise.
21674 * lower-subreg.c (propagate_pseudo_copies): Likewise.
21675 * predict.c (tree_predict_by_opcode): Likewise.
21676 (predict_paths_leading_to): Likewise.
21677 (predict_paths_leading_to_edge): Likewise.
21678 (estimate_loops_at_level): Likewise.
21679 (estimate_loops): Likewise.
21680 * shrink-wrap.c (try_shrink_wrapping): Likewise.
21681 (spread_components): Likewise.
21682 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
21683 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
21684 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
21685 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
21686 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
21687 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
21688 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
21689 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
21690 (mark_threaded_blocks): Likewise.
21691 (thread_through_all_blocks): Likewise.
21692 * tree-ssa.c (verify_ssa): Likewise.
21693 (execute_update_addresses_taken): Likewise.
21694 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
21696 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21698 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
21700 (post_order_compute): Likewise.
21701 (inverted_post_order_compute): Likewise.
21702 (pre_and_rev_post_order_compute_fn): Likewise.
21704 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21706 * genrecog.c (int_set::int_set): Explicitly construct our
21707 auto_vec base class.
21708 * vec.h (auto_vec::auto_vec): New constructor.
21710 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21712 * bitmap.h (class auto_bitmap): New constructor taking
21713 bitmap_obstack * argument.
21715 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21717 * bitmap.h (class auto_bitmap): Change type of m_bits to
21718 bitmap_head, and adjust ctor / dtor and member operators.
21720 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
21722 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
21723 when returned register mode doesn't match original mode.
21725 2017-05-12 Jeff Law <law@redhat.com>
21726 Jakub Jelinek <jakub@redhat.com>
21728 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
21729 we look for cc setter after the compare-elim changes.
21730 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
21731 within the vector to match what compare-elim now expects.
21732 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
21733 (xorsi3_flags, one_cmplsi2_flags): Likewise.
21735 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
21736 after the compare-elim changes.
21737 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
21738 the vector to match what compare-elim now expects.
21739 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
21740 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
21741 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
21742 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
21743 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
21745 * config/visium/visium.c (single_set_and_flags): Fix where
21746 we look for cc setter after the compare-elim changes.
21747 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
21748 with the vector to match what compare-elim now expects.
21749 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
21750 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
21751 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
21752 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
21753 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
21754 (neg<mode>2_insn_set_overflow): Likewise.
21756 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
21758 PR middle-end/79794
21759 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
21760 maybe_expand_insn call, set ops[0].target. If still set after call,
21761 set alt_rtl. Add extra arg to recursive calls.
21762 (extract_bit_field): Add alt_rtl argument. Pass to
21764 * expmed.h (extract_bit_field): Fix prototype.
21765 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
21766 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
21767 to extract_bit_field_calls.
21768 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
21769 Pass alt_rtl to extract_bit_field calls.
21770 * calls.c (store_unaligned_arguments_into_psuedos)
21771 load_register_parameters): Pass extra NULL to extract_bit_field calls.
21772 * optabs.c (maybe_legitimize_operand): Clear op->target when call
21774 * optabs.h (struct expand_operand): Add target bitfield.
21776 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
21778 * compare-elim.c (try_eliminate_compare): Canonicalize
21779 operation with embedded compare to
21780 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
21781 (set (reg) (operation)].
21783 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
21785 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
21788 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
21789 cost of adding a carry flag for ADC instruction.
21790 [case MINUS]: Ignore the cost of subtracting a carry flag
21791 for SBB instruction.
21793 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
21795 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
21797 * config/rs6000/bmiintrin.h: New file.
21798 * config/rs6000/bmi2intrin.h: New file.
21799 * config/rs6000/x86intrin.h: New file.
21801 2017-05-12 Jeff Law <law@redhat.com>
21803 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
21806 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
21808 PR middle-end/80707
21809 * tree-cfg.c: Remove cfg edges of unreachable case statements.
21811 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
21813 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
21814 early expansion of vector divide builtins.
21815 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
21816 builtins identified as having unsigned arguments.
21818 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
21820 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
21821 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
21822 expansion of vector logical operations (and, andc, or, xor,
21825 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
21827 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
21828 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
21830 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
21832 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
21833 early GIMPLE expansion of vector multiplies.
21835 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
21837 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
21838 TARGET_HAVE_MOVT conditional.
21839 (movt splitter): Likewise.
21841 2017-05-12 Richard Biener <rguenther@suse.de>
21843 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
21844 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21845 Fold all stmts not inplace.
21847 2017-05-12 Richard Biener <rguenther@suse.de>
21849 PR tree-optimization/80713
21850 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
21851 inserted_exprs bit for not removed stmts.
21853 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
21855 PR middle-end/69921
21856 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
21857 parallelized" attribute for parallelized OpenACC kernels.
21858 * omp-offload.c (execute_oacc_device_lower): Use it.
21860 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
21861 Set "oacc kernels" attribute.
21862 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
21863 parameter. Adjust all users.
21864 (oacc_fn_attrib_kernels_p): Remove function.
21865 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
21866 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
21867 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
21868 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
21869 assert "oacc kernels" attribute is set.
21871 2017-05-11 Carl Love <cel@us.ibm.com>
21873 * config/rs6000/rs6000-c: Add support for built-in functions
21874 vector unsigned char vec_popcnt (vector signed char)
21875 vector unsigned char vec_popcnt (vector unsigned char)
21876 vector unsigned short vec_popcnt (vector signed short)
21877 vector unsigned short vec_popcnt (vector unsigned short)
21878 vector unsigned int vec_popcnt (vector signed int)
21879 vector unsigned int vec_popcnt (vector unsigned int)
21880 vector unsigned long long vec_popcnt (vector signed long long)
21881 vector unsigned long long vec_popcnt (vector unsigned long long)
21882 vector signed long long vec_slo (vector signed long long,
21883 vector signed char)
21884 vector signed long long vec_slo (vector signed long long,
21885 vector unsigned char)
21886 vector unsigned long long vec_slo (vector unsigned long long,
21887 vector signed char)
21888 vector unsigned long long vec_slo (vector unsigned long long,
21889 vector unsigned char)
21890 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
21891 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
21892 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
21893 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
21894 * doc/extend.texi: Update the built-in documentation file for the
21895 new built-in functions.
21897 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
21899 * attribs.h (sorted_attr_string): Move machine independent
21900 functions for target clone support from the i386 port to common
21901 code. Rename ix86_function_versions to common_function_versions.
21902 Rename make_name to make_unique_name.
21903 (common_function_versions): Likewise.
21904 (make_unique_name): Likewise.
21905 (make_dispatcher_decl): Likewise.
21906 (is_function_default_version): Likewise.
21907 * attribs.c (attr_strcmp): Likewise.
21908 (sorted_attr_string): Likewise.
21909 (common_function_versions): Likewise.
21910 (make_unique_name): Likewise.
21911 (make_dispatcher_decl): Likewise.
21912 (is_function_default_version): Likewise.
21913 * config/i386/i386.c (attr_strcmp): Likewise.
21914 (sorted_attr_string): Likewise.
21915 (ix86_function_versions): Likewise.
21916 (make_name): Likewise.
21917 (make_dispatcher_decl): Likewise.
21918 (is_function_default_version): Likewise.
21919 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
21921 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21924 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
21925 Account for direct move costs for vec_construct of integer
21928 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
21931 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
21932 (UNSPEC_STX_ATOMIC): Ditto.
21933 (loaddi_via_sse): New insn.
21934 (storedi_via_sse): Ditto.
21935 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
21936 Update corresponding peephole2 patterns.
21937 (atomic_storedi_fpu): Ditto.
21939 2017-05-11 Julia Koval <julia.koval@intel.com>
21941 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
21942 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
21944 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
21945 (__builtin_ia32_rsqrt14ss_mask): New builtins.
21946 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
21948 2017-05-11 Nathan Sidwell <nathan@acm.org>
21950 * graphite-poly.c: Include dumpfile.h.
21952 * dumpfle.h (dump_function): Declare here ...
21953 * tree-dump.h (dump_function): ... not here.
21954 * dumpfile.c: #include tree-cfg.h.
21955 (dump_function): Move here from ...
21956 * tree-dump.c (dump_function): ... here.
21957 * gimplify.c: #include splay-tree.h, not tree-dump.h.
21958 * graphite-poly.c: Don't include tree-dump.h.
21959 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
21960 * print-tree.c: Likewise.
21961 * stor-layout.c: Likewise.
21962 * tree-nested.c: Likewise.
21964 * dumpfile.c (dump_start): Use TDF_FLAGS.
21965 (dump_enable_all): Fix TDF_KIND check thinko.
21967 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
21969 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21970 array entries to represent two legal parameterizations of the
21971 overloaded __builtin_cmpb function, as represented by the
21972 P6_OV_BUILTIN_CMPB constant.
21973 (altivec_resolve_overloaded_builtin): Add special case handling
21974 for the __builtin_cmpb function, as represented by the
21975 P6_OV_BUILTIN_CMPB constant.
21976 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
21977 (BU_P6_64BIT_2): New macro.
21978 (BU_P6_OVERLOAD_2): New macro
21979 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
21980 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
21981 (CMPB): Add overload support to represent both 32-bit and 64-bit
21982 compare-bytes function.
21983 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
21984 support for TARGET_CMPB.
21985 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
21986 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
21987 documentation of the __builtin_cmpb overloaded built-in function.
21989 2017-05-11 Richard Biener <rguenther@suse.de>
21991 PR tree-optimization/80705
21992 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
21993 bases are not vectorizable.
21995 2017-05-11 Bin Cheng <bin.cheng@arm.com>
21997 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
21998 when counting register pressure.
22000 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22002 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
22003 (iv_ca_more_deps): Renamed to ...
22004 (iv_ca_compare_deps): ... this.
22005 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
22007 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22009 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
22011 (determine_group_iv_costs): ... here.
22012 (find_inv_vars_cb): Record inv var if it's not recorded before.
22014 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22016 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
22017 (get_shiftadd_cost): Ditto.
22019 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22021 * tree-ssa-address.c: Include header file.
22022 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
22024 (add_to_parts): Refactor.
22025 (addr_to_parts): New parameter. Update use of move_hint_to_base.
22026 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
22029 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22031 PR tree-optimization/53090
22032 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
22034 (extract_cond_operands): Detect condition with IV on both sides
22035 and return COMP_IV_EXPR_2.
22036 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
22037 (rewrite_use_compare): Simplify by removing call to function
22038 extract_cond_operands.
22040 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22042 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
22043 (extract_cond_operands): Detect condition comparing against non-
22044 invariant bound and return appropriate enum value.
22045 (find_interesting_uses_cond): Update use of extract_cond_operands.
22046 Handle its return value accordingly.
22047 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
22049 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22051 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
22052 nonlinear iv_use computation in loop invariant sensitive way.
22054 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22056 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
22057 (find_iv_candidates): Call relate_compare_use_with_all_cands.
22059 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22061 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
22062 (dump_cand): Support iv_cand.inv_exprs.
22063 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
22065 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
22068 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22070 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
22072 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
22073 as local function. Include necessary header files.
22074 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
22076 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22078 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
22080 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22082 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
22083 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
22084 RSHIFT_EXPR and BIT_NOT_EXPR.
22086 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22088 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
22089 (adjust_setup_cost): New parameter supporting round up adjustment.
22090 (struct address_cost_data): Delete.
22091 (force_expr_to_var_cost): Don't bound cost with spill_cost.
22092 (split_address_cost, ptr_difference_cost): Delete.
22093 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
22094 (struct ainc_cost_data): New struct.
22095 (get_address_cost_ainc): New function.
22096 (get_address_cost, get_computation_cost): Reimplement.
22097 (determine_group_iv_cost_address): Record inv_expr for all uses of
22099 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
22100 (iv_ca_has_deps): Reimplemented to ...
22101 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
22103 (iv_ca_extend): Call iv_ca_more_deps.
22105 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22107 * tree-ssa-address.c (struct mem_address): Move to header file.
22108 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
22109 * tree-ssa-address.h (struct mem_address): Move from C file.
22110 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
22112 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22114 * tree-affine.h (aff_combination_type): New interface.
22115 (aff_combination_zero_p): Remove static.
22116 (aff_combination_const_p): New interface.
22117 (aff_combination_singleton_var_p): New interfaces.
22119 2017-05-11 Richard Biener <rguenther@suse.de>
22121 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
22122 Skip unreachable blocks and destinations.
22123 (eliminate): Move stmt removal and fixup ...
22124 (fini_eliminate): ... here. Skip inserted exprs.
22125 (pass_pre::execute): Move fini_pre after fini_eliminate.
22126 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
22127 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
22128 PRE to get rid of dead code that has invalid SSA form and
22129 split critical edges again.
22131 2017-05-11 Bin Cheng <bin.cheng@arm.com>
22133 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
22135 2017-05-11 Richard Biener <rguenther@suse.de>
22137 * passes.c (execute_function_todo): Verify loops if they are
22138 said to be up-to-date.
22139 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
22140 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
22142 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
22145 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
22146 handle calling assemble_external ourself.
22149 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
22150 modes with zero size. Enhance comment.
22152 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22154 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
22155 built-ins for vec_xl and vec_xst with short and char pointer
22158 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
22160 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
22161 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
22162 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
22163 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
22164 (_mm_maskz_min_round_ss): New intrinsics.
22165 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
22166 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
22167 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
22168 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
22169 (__builtin_ia32_minss_mask_round): New builtins.
22170 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22171 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
22172 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
22174 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
22175 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
22177 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
22180 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
22182 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
22183 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
22184 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
22185 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
22186 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
22187 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
22188 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
22189 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22190 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
22191 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
22192 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
22193 (__builtin_ia32_mulss_mask_round): New builtins.
22194 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22195 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
22196 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
22198 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
22199 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
22201 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
22204 2017-05-10 Julia Koval <julia.koval@intel.com>
22206 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
22207 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
22208 (_mm256_setr_m128i): New intrinsics.
22210 2017-05-10 Julia Koval <julia.koval@intel.com>
22212 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
22213 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
22214 (_mm_maskz_rcp14_ss): New intrinsics.
22215 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
22216 (__builtin_ia32_rcp14ss_mask): New builtins.
22217 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
22219 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
22221 PR tree-optimization/51513
22222 * tree-cfg.c (gimple_seq_unreachable_p): New function.
22223 (assert_unreachable_fallthru_edge_p): Use it.
22224 (group_case_labels_stmt): Likewise.
22225 * tree-cfg.h: Prototype it.
22226 * stmt.c: Include cfghooks.h and tree-cfg.h.
22227 (emit_case_dispatch_table) <gap_label>: New local variable.
22228 Use it to fill dispatch table gaps.
22229 Test for default_label before updating probabilities.
22230 (expand_case) <default_label>: Remove unneeded initialization.
22231 Test for unreachable default case statement and remove its edge.
22232 Set default_label accordingly.
22233 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
22235 2017-05-10 Carl Love <cel@us.ibm.com>
22237 * config/rs6000/rs6000-c: Add support for built-in functions
22238 vector signed char vec_neg (vector signed char)
22239 vector signed short int vec_neg (vector short int)
22240 vector signed int vec_neg (vector signed int)
22241 vector signed long long vec_neg (vector signed long long)
22242 vector float vec_neg (vector float)
22243 vector double vec_neg (vector double)
22244 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
22246 * config/rs6000/altivec.h: Add define for vec_neg
22247 * doc/extend.texi: Update the built-in documentation for the
22248 new built-in functions.
22250 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22252 PR tree-optimization/77644
22253 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
22255 2017-05-10 Nathan Sidwell <nathan@acm.org>
22257 * dumpfile.h (TDI_lang_all): New.
22258 (TDF_KIND): New. Renumber others
22259 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
22261 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
22263 (get_dump_file_name): Adjust suffix generation.
22264 (dump_enable_all): Use TDF_KIND.
22265 * doc/invoke.texi (-fdump-lang-all): Document.
22267 * dumpfile.h: Tabify.
22269 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
22272 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
22273 Move member access before delete.
22275 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
22277 * tree-inline.c (expand_call_inline): Split block at stmt
22280 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
22283 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
22284 are now unused after splitting mov{sf,sd}_hardfloat.
22285 (f32_lr2): Likewise.
22286 (f32_lm): Likewise.
22287 (f32_lm2): Likewise.
22288 (f32_li): Likewise.
22289 (f32_li2): Likewise.
22290 (f32_lv): Likewise.
22291 (f32_sr): Likewise.
22292 (f32_sr2): Likewise.
22293 (f32_sm): Likewise.
22294 (f32_sm2): Likewise.
22295 (f32_si): Likewise.
22296 (f32_si2): Likewise.
22297 (f32_sv): Likewise.
22298 (f32_dm): Likewise.
22299 (f32_vsx): Likewise.
22300 (f32_av): Likewise.
22301 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
22302 For movsf, order stores so the VSX stores occur before the GPR
22303 store which encourages the register allocator to use a traditional
22304 FPR instead of a GPR. For movsd, order the stores so that the GPR
22305 store comes before the VSX stores to allow the power6 to work.
22306 This is due to the power6 not having a 32-bit integer store
22307 instruction from a FPR.
22308 (movsf_hardfloat): Likewise.
22309 (movsd_hardfloat): Likewise.
22311 2017-05-09 Martin Sebor <msebor@redhat.com>
22313 PR translation/80280
22314 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
22317 PR translation/80280
22318 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
22319 data member added in r247778.
22320 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
22322 2017-05-09 Nathan Sidwell <nathan@acm.org>
22324 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
22326 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
22329 2017-05-09 Marek Polacek <polacek@redhat.com>
22331 * doc/invoke.texi: Fix typo.
22333 2017-05-09 Richard Biener <rguenther@suse.de>
22335 * tree-vrp.c (vrp_val_is_max): Adjust comment.
22336 (vrp_val_is_min): Likewise.
22337 (set_value_range_to_value): Likewise.
22338 (set_value_range_to_nonnegative): Likewise.
22339 (gimple_assign_nonzero_p): Likewise.
22340 (gimple_stmt_nonzero_p): Likewise.
22341 (vrp_int_const_binop): Likewise. Remove unreachable case.
22342 (adjust_range_with_scev): Adjust comments.
22343 (compare_range_with_value): Likewise.
22344 (extract_range_from_phi_node): Likewise.
22345 (test_for_singularity): Likewise.
22347 2017-05-09 Richard Biener <rguenther@suse.de>
22349 * tree-vrp.c (get_single_symbol): Add assert that we don't
22350 get overflowed constants as invariant part.
22351 (compare_values_warnv): Add comment before the TREE_NO_WARNING
22352 checks. Use wi::cmp instead of recursing for integer constants.
22353 (compare_values): Just ignore whether we assumed undefined
22354 overflow instead of failing the compare.
22355 (extract_range_for_var_from_comparison_expr): Add comment before the
22356 TREE_NO_WARNING sets.
22357 (test_for_singularity): Likewise.
22358 (extract_range_from_comparison): Do not disable optimization
22359 when we assumed undefined overflow.
22360 (extract_range_basic): Remove init of unused var.
22362 2017-05-09 Richard Biener <rguenther@suse.de>
22364 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
22365 (extract_range_from_multiplicative_op_1): Adjust.
22366 (extract_range_from_binary_expr_1): Use int_const_binop.
22368 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
22371 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
22372 rs6000_store_data_bypass_p in seven define_bypass directives and
22373 in several comments.
22374 * config/rs6000/rs6000-protos.h: Add prototype for
22375 rs6000_store_data_bypass_p function.
22376 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
22377 function implements slightly different (rs6000-specific) semantics
22378 than store_data_bypass_p, returning false rather than aborting
22379 with assertion error when arguments do not satisfy the
22380 requirements of store data bypass.
22381 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
22382 rs6000_store_data_bypass_p.
22384 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
22386 * config/xtensa/xtensa-protos.h
22387 (xtensa_initial_elimination_offset): New declaration.
22388 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
22389 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
22390 macro definition, add case for FRAME_POINTER_REGNUM when
22391 FRAME_GROWS_DOWNWARD.
22392 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
22393 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
22394 xtensa_initial_elimination_offset.
22396 2017-05-08 Nathan Sidwell <nathan@acm.org>
22398 * doc/invoke.texi: Alphabetize -fdump options.
22400 2017-05-08 Martin Sebor <msebor@redhat.com>
22402 PR translation/80280
22403 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
22405 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
22407 * target.def (compute_frame_layout): New optional target hook.
22408 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
22409 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
22410 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
22412 * reload1.c (verify_initial_elim_offsets): Likewise.
22413 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
22414 (use_simple_return_p): Call arm_compute_frame_layout if needed.
22415 (arm_get_frame_offsets): Split up into this ...
22416 (arm_compute_frame_layout): ... and this function.
22418 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
22420 * config/aarch64/constraints.md (Usa): New constraint.
22421 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
22423 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
22425 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
22426 with_multilib_list after it has been checked.
22428 2017-05-08 Richard Biener <rguenther@suse.de>
22430 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
22431 (bitmap_set_subtract_values): Likewise.
22433 2017-05-08 Richard Biener <rguenther@suse.de>
22435 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
22436 (gimple_assign_nonzero): ... this and remove strict_overflow_p
22438 (gimple_stmt_nonzero_warnv_p): Rename to ...
22439 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
22441 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
22442 (extract_range_basic): Adjust, do not disable propagation on
22443 strict overflow sensitive simplification.
22444 (vrp_visit_cond_stmt): Likewise.
22446 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
22448 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
22449 body size unconditionally.
22451 2017-05-07 Jeff Law <law@redhat.com>
22454 2017-05-06 Jeff Law <law@redhat.com>
22455 PR tree-optimization/78496
22456 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
22459 PR tree-optimization/78496
22460 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
22461 (simplify_stmt_using_ranges): Call it.
22462 (vrp_dom_walker::before_dom_children): Extract equivalences
22463 from an ASSERT_EXPR with an equality comparison against a
22466 2017-05-06 Jeff Law <law@redhat.com>
22468 PR tree-optimization/78496
22469 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
22472 PR tree-optimization/78496
22473 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
22474 (simplify_stmt_using_ranges): Call it.
22475 (vrp_dom_walker::before_dom_children): Extract equivalences
22476 from an ASSERT_EXPR with an equality comparison against a
22479 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
22481 * lra-constraints.c (lra_copy_reg_equiv): New function.
22482 (split_reg): Use it to copy equivalence information from the
22483 original register to the spill register.
22485 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
22487 PR rtl-optimization/75964
22488 * simplify-rtx.c (simplify_const_relational_operation): Remove
22489 invalid handling of comparisons of integer ABS.
22491 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
22493 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
22494 initialize to zero.
22495 (init_regs): Remove declaration.
22496 (function_arg_advance_32): Initialize error_p as boolean variable.
22498 2017-05-05 Nathan Sidwell <nathan@acm.org>
22500 * store-motion.c (remove_reachable_equiv_notes): Reformat long
22501 lines. Use for (;;).
22503 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22505 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
22506 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
22507 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
22508 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
22509 VF=2 that require versioning.
22511 2017-05-05 David Malcolm <dmalcolm@redhat.com>
22513 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
22516 2017-05-05 David Malcolm <dmalcolm@redhat.com>
22518 * diagnostic.h (diagnostic_override_option_index): Convert from
22519 macro to inline function.
22521 2017-05-05 David Malcolm <dmalcolm@redhat.com>
22523 * diagnostic.c (last_module_changed_p): New function.
22524 (set_last_module): New function.
22525 (diagnostic_report_current_module): Convert macro usage to
22526 the above functions.
22527 * diagnostic.h (diagnostic_context::last_module): Strengthen
22528 from const line_map * to const line_map_ordinary *.
22529 (diagnostic_last_module_changed): Delete macro.
22530 (diagnostic_set_last_module): Delete macro.
22532 2017-05-05 David Malcolm <dmalcolm@redhat.com>
22534 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
22535 with diagnostic_report_diagnostic.
22536 (diagnostic_n_impl_richloc): Likewise.
22537 * diagnostic.h (report_diagnostic): Delete macro.
22538 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
22539 with diagnostic_report_diagnostic.
22540 * substring-locations.c (format_warning_va): Likewise.
22542 2017-05-05 David Malcolm <dmalcolm@redhat.com>
22544 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
22545 save/restor of format_spec. Move option-printing code to...
22546 (print_option_information): ...this new function, and
22547 reimplement by simply printing to the pretty_printer,
22548 rather than appending to the format string.
22550 2017-05-05 David Malcolm <dmalcolm@redhat.com>
22552 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
22553 handling logic into...
22554 (update_effective_level_from_pragmas): ...this new function.
22556 2017-05-04 Andrew Waterman <andrew@sifive.com>
22558 * config/riscv/riscv.opt (mstrict-align): New option.
22559 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
22560 (SLOW_UNALIGNED_ACCESS): Define.
22561 (riscv_slow_unaligned_access): Declare.
22562 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
22564 (riscv_slow_unaligned_access): New variable.
22565 (rocket_tune_info): Set slow_unaligned_access to true.
22566 (optimize_size_tune_info): Set slow_unaligned_access to false.
22567 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
22568 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
22569 (riscv_option_override): Set riscv_slow_unaligned_access.
22570 * doc/invoke.texi: Add -mstrict-align to RISC-V.
22572 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
22574 * config/riscv/riscv.md: Unify indentation.
22576 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
22581 * config/rs6000/rs6000.md (u code attribute): Add FIX and
22583 (extendsi<mode>2): Add support for doing sign extension via
22584 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
22585 don't have ISA 3.0 instructions.
22586 (extendsi<mode>2 splitter): Likewise.
22587 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
22588 generate the normal insns since SImode can now go in vector
22589 registers. Disallow the special UNSPECs needed for previous
22590 machines to hide SImode being used. Add new insns
22591 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
22592 (fix_trunc<mode>si2_stfiwx): Likewise.
22593 (fix_trunc<mode>si2_internal): Likewise.
22594 (fixuns_trunc<mode>si2): Likewise.
22595 (fixuns_trunc<mode>si2_stfiwx): Likewise.
22596 (fctiw<u>z_<mode>_smallint): Likewise.
22597 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
22598 of floating point to 32-bit integer from doing a direct move to
22599 the GPR registers to do a store.
22600 (fctiwz_<mode>): Break long line.
22602 2017-05-05 Bin Cheng <bin.cheng@arm.com>
22604 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
22605 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
22606 (addr_list, addr_offset_valid_p): New.
22607 (split_address_groups): Check offset validity with above function.
22608 (gt-tree-ssa-loop-ivopts.h): Include header file.
22610 2017-05-05 Nathan Sidwell <nathan@acm.org>
22612 * config.gcc (arm*-*-*): Add missing 'fi'.
22614 2017-05-05 Steve Ellcey <sellcey@cavium.com>
22616 * doc/invoke.texi (-fopt-info): Explicitly say order of options
22617 included in -fopt-info does not matter.
22618 * doc/optinfo.texi (-fopt-info): Fix description of default
22619 behavour. Explicitly say order of options included in -fopt-info
22622 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
22624 * config.gcc: Allow combinations of aprofile and rmprofile values for
22625 --with-multilib-list.
22626 * config/arm/t-multilib: New file.
22627 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
22628 variables. Remove setting of ISA and floating-point ABI in
22629 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
22630 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
22631 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
22632 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
22634 * config/arm/t-rmprofile: Likewise except for the matches changes.
22635 * doc/install.texi (--with-multilib-list): Document the combination of
22636 aprofile and rmprofile values and warn about pitfalls in doing that.
22638 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
22640 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
22641 (movdi_aarch64): Likewise.
22643 2017-05-05 Jakub Jelinek <jakub@redhat.com>
22645 PR tree-optimization/80632
22646 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
22648 (build_arrays): Initialize it for virtual phis.
22649 (fix_phi_nodes): Use it for virtual phis.
22651 PR tree-optimization/80558
22652 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
22653 [x, y] op z into [x op, y op z] for op & or | if conditions
22656 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
22657 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
22660 * config/arm/arm.md (use_literal_pool): Remove.
22661 (64-bit immediate split): No longer takes cost into consideration
22662 if arm_disable_literal_pool is enabled.
22663 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
22664 used when arm_disable_literal_pool is enabled.
22665 (arm_max_const_double_inline_cost): Remove use of
22666 arm_disable_literal_pool.
22667 (push_minipool_fix): Add assert.
22668 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
22669 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
22670 (no_literal_pool_sf_immediate): New.
22672 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22674 PR tree-optimization/80613
22675 * tree-ssa-dce.c (propagate_necessity): Remove cases for
22676 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
22678 2017-05-05 Richard Biener <rguenther@suse.de>
22680 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
22682 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
22684 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
22685 of this flag from insn conditions due to removal from r247495.
22687 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
22689 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
22691 (arm_early_store_addr_dep_ptr): Likewise.
22692 * config/arm/aarch-common-protos.h
22693 (arm_early_load_addr_dep_ptr): Add prototype.
22694 (arm_early_store_addr_dep_ptr): Likewise.
22695 * config/arm/cortex-a53.md: Add new bypasses.
22697 2017-05-05 Jakub Jelinek <jakub@redhat.com>
22699 * tree.c (next_type_uid): Change type to unsigned.
22700 (type_hash_canon): Decrement back next_type_uid if
22701 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
22702 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
22705 2017-05-04 Martin Sebor <msebor@redhat.com>
22707 * builtins.c: Fix a trivial typo in a comment.
22709 PR middle-end/79234
22710 * builtins.c (check_sizes): Adjust to handle reading past the end.
22711 Avoid printing excessive upper bound of ranges. Use %E to print
22712 tree nodes instead of converting them to %wu.
22713 (expand_builtin_memchr): New function.
22714 (compute_dest_size): Rename...
22715 (compute_objsize): ...to this.
22716 (expand_builtin_memcpy): Adjust.
22717 (expand_builtin_mempcpy): Adjust.
22718 (expand_builtin_strcat): Adjust.
22719 (expand_builtin_strcpy): Adjust.
22720 (check_strncat_sizes): Adjust.
22721 (expand_builtin_strncat): Adjust.
22722 (expand_builtin_strncpy): Adjust and simplify.
22723 (expand_builtin_memset): Adjust.
22724 (expand_builtin_bzero): Adjust.
22725 (expand_builtin_memcmp): Adjust.
22726 (expand_builtin): Handle memcmp.
22727 (maybe_emit_chk_warning): Check strncat just once.
22729 2017-05-04 Martin Sebor <msebor@redhat.com>
22731 PR preprocessor/79214
22732 PR middle-end/79222
22733 PR middle-end/79223
22734 * builtins.c (check_sizes): Add inlining context and issue
22735 warnings even when -Wno-system-headers is set.
22736 (check_strncat_sizes): Same.
22737 (expand_builtin_strncat): Same.
22738 (expand_builtin_memmove): New function.
22739 (expand_builtin_stpncpy): Same.
22740 (expand_builtin): Handle memmove and stpncpy.
22742 2017-05-04 Bin Cheng <bin.cheng@arm.com>
22744 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
22745 which is not used any more.
22747 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
22749 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
22751 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
22753 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
22754 (cortexa53_tunings): Likewise.
22755 (cortexa57_tunings): Likewise.
22756 (cortexa72_tunings): Likewise.
22757 (cortexa73_tunings): Likewise.
22759 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
22761 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
22762 Set loop alignment to 8.
22764 2017-05-04 Martin Sebor <msebor@redhat.com>
22766 PR translation/80280
22767 * builtins.c (expand_builtin_object_size): Add missing quoting to
22768 %D and like directives.
22769 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
22770 (hsa_type_for_tree_type): Same.
22771 (verify_function_arguments): Same.
22772 * symtab.c (symbol_table::change_decl_assembler_name): Same.
22773 * varasm.c (get_section): Same.
22776 2017-05-04 Martin Sebor <msebor@redhat.com>
22778 PR translation/80280
22779 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
22781 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
22783 * config/aarch64/aarch64.c (generic_addrcost_table):
22784 Change HI/TI mode setting.
22786 2017-05-04 Martin Jambor <mjambor@suse.cz>
22788 PR tree-optimization/80622
22789 * tree-sra.c (comes_initialized_p): New function.
22790 (build_accesses_from_assign): Only set write lazily when
22791 comes_initialized_p is false.
22792 (analyze_access_subtree): Use comes_initialized_p.
22793 (propagate_subaccesses_across_link): Assert !comes_initialized_p
22794 instead of testing for PARM_DECL.
22796 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22798 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
22799 constraint on operand 0 to allow more general addressing modes.
22800 Adjust output template.
22801 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
22803 * config/aarch64/aarch64-protos.h
22804 (aarch64_address_valid_for_prefetch_p): Declare prototype.
22805 * config/aarch64/constraints.md (Dp): New address constraint.
22806 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
22809 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
22811 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
22812 update use of estimate_ipcp_clone_size_and_time.
22813 (estimate_local_effects): Update use of
22814 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
22815 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
22816 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
22817 Return nonspecialized time.
22819 2017-05-04 Richard Biener <rguenther@suse.de>
22821 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
22822 for the last VUSE which def dominates the PHI. Directly call
22824 (get_continuation_for_phi_1): Remove.
22826 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
22828 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
22829 to explain the use of truncating division. Cap the number of
22830 iterations to the maximum given by nb_iterations_upper_bound,
22833 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
22835 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
22836 * configure: Regenerate.
22837 * config.in: Regenerate.
22838 * config/i386/driver-mingw32.c: new file.
22839 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
22840 * config.host: Link driver-mingw32.o on MinGW host.
22841 * doc/install.texi: Document new --enable-mingw-wildcard configure
22844 2017-05-04 Marek Polacek <polacek@redhat.com>
22846 PR tree-optimization/80612
22847 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
22849 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
22850 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
22852 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
22853 (movt splitter): Likewise.
22854 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
22855 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
22856 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
22857 block for Thumb-1 with MOVT.
22858 (thumb2_legitimate_address_p): Move code block ...
22859 (can_avoid_literal_pool_for_label_p): ... into this new function.
22860 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
22862 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
22863 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
22864 "M-profile targets with the MOVT instruction".
22866 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
22868 * config/arm/arm-builtins.c (arm_init_builtins): Rename
22869 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
22870 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
22872 2017-05-04 Martin Liska <mliska@suse.cz>
22874 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
22875 variable cond_code.
22877 2017-05-04 Richard Biener <rguenther@suse.de>
22879 * tree.c (array_at_struct_end_p): Handle arrays at struct
22880 end with flexarrays more conservatively. Refactor and treat
22881 arrays of arrays or aggregates more strict. Fix
22882 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
22883 * tree.c (array_at_struct_end_p): Adjust prototype.
22884 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
22885 * gimple-fold.c (get_range_strlen): Likewise.
22886 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
22888 2017-05-04 Richard Biener <rguenther@suse.de>
22890 PR tree-optimization/31130
22891 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
22893 (supports_overflow_infinity): Likewise.
22894 (is_negative_overflow_infinity): Likewise.
22895 (is_positive_overflow_infinity): Likewise.
22896 (is_overflow_infinity): Likewise.
22897 (stmt_overflow_infinity): Likewise.
22898 (overflow_infinity_range_p): Likewise.
22899 (usable_range_p): Remove as always returning true.
22900 (make_overflow_infinity): Remove.
22901 (negative_overflow_infinity): Likewise.
22902 (positive_overflow_infinity): Likewise.
22903 (avoid_overflow_infinity): Likewise.
22904 (set_value_range): Adjust accordingly.
22905 (set_value_range_to_nonnegative): Likewise, remove now unused
22906 overflow_infinity arg.
22907 (vrp_operand_equal_p): Adjust.
22908 (update_value_range): Likewise.
22909 (range_int_cst_singleton_p): Likewise.
22910 (operand_less_p): Likewise.
22911 (compare_values_warnv): Likewise.
22912 (extract_range_for_var_from_comparison_expr): Likewise.
22913 (vrp_int_const_binop): Likewise.
22914 (zero_nonzero_bits_from_vr): Likewise.
22915 (extract_range_from_multiplicative_op_1): Likewise.
22916 (extract_range_from_binary_expr_1): Likewise.
22917 (extract_range_from_unary_expr): Likewise.
22918 (extract_range_from_comparison): Likewise.
22919 (extract_range_basic): Likewise.
22920 (adjust_range_with_scev): Likewise.
22921 (compare_ranges): Likewise.
22922 (compare_range_with_value): Likewise.
22923 (dump_value_range): Likewise.
22924 (test_for_singularity): Likewise, remove strict_overflow_p parameter
22926 (simplify_cond_using_ranges): Adjust.
22928 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
22930 * brig-builtins.def: Added a builtin for class_f64.
22931 * builtin-types.def: Added a builtin type needed by class_f64.
22933 2017-05-03 Jason Merrill <jason@redhat.com>
22935 * timevar.def: Add TV_CONSTEXPR.
22937 2017-05-03 David Malcolm <dmalcolm@redhat.com>
22939 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
22941 2017-05-03 Martin Jambor <mjambor@suse.cz>
22943 * ipa-prop.c (ipa_update_after_lto_read): Removed.
22944 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
22945 * ipa-cp.c (ipcp_propagate_stage): Do not call
22946 ipa_update_after_lto_read.
22947 * ipa-inline.c (ipa_inline): Likewise.
22949 2017-05-03 Martin Jambor <mjambor@suse.cz>
22951 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
22952 tag. Added a default constructor and a destructor.
22953 (ipa_edge_args_sum_t): New class;
22954 (ipa_edge_args_sum): Declare.
22955 (ipa_edge_args_vector): Remove declaration.
22956 (IPA_EDGE_REF): Use ipa_edge_args_sum.
22957 (ipa_free_edge_args_substructures): Remove declaration.
22958 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
22959 (ipa_edge_args_info_available_for_edge_p): Likewise.
22960 * ipa-prop.c (ipa_edge_args_vector): Removed.
22961 (edge_removal_hook_holder): Likewise.
22962 (edge_duplication_hook_holder): Likewise.
22963 (ipa_edge_args_sum): New variable.
22964 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
22965 ipa_edge_args_vector.
22966 (ipa_free_edge_args_substructures): Likewise.
22967 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
22968 ipa_edge_args_vector.
22969 (ipa_edge_removal_hook): Turned into method
22970 ipa_edge_args_sum_t::remove.
22971 (ipa_edge_duplication_hook): Turned into method
22972 ipa_edge_args_sum_t::duplicate.
22973 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
22974 registering edge hooks.
22975 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
22976 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
22977 ipa_edge_args_sum instead of ipa_edge_args_vector.
22978 * ipa-profile.c (ipa_profile): Likewise.
22980 2017-05-03 Martin Jambor <mjambor@suse.cz>
22982 * symbol-summary.h (function_summary): New method exists.
22983 (function_summary::symtab_removal): Deallocate through release.
22984 (call_summary): New class.
22985 (gt_ggc_mx): New overload.
22986 (gt_pch_nx): Likewise.
22987 (gt_pch_nx): Likewise.
22989 2017-05-03 Jeff Law <law@redhat.com>
22991 PR tree-optimization/78496
22992 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
22993 from simplify_cond_using_ranges. Split off code to walk
22994 backwards through casts into ...
22995 (simplify_cond_using_ranges_2): New function.
22996 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
22997 (execute_vrp): After identifying jump threads, call
22998 simplify_cond_using_ranges_2.
23000 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
23003 * ipa-inline.h (inline_summary): Add ctor.
23004 (create_ggc): Do not use ggc_cleared_alloc.
23006 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
23007 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23009 * gcc.c (handle_braces): Support escaping in switch matching
23011 * doc/invoke.texi (Spec Files): Document it.
23012 Remove superfluous @code markup in items.
23014 2017-05-03 David Malcolm <dmalcolm@redhat.com>
23016 * diagnostic-show-locus.c (struct column_range): New struct.
23017 (get_affected_columns): New function.
23018 (get_printed_columns): New function.
23019 (struct correction): New struct.
23020 (correction::ensure_capacity): New function.
23021 (correction::ensure_terminated): New function.
23022 (struct line_corrections): New struct.
23023 (line_corrections::~line_corrections): New dtor.
23024 (line_corrections::add_hint): New function.
23025 (layout::print_trailing_fixits): Reimplement in terms of the new
23027 (selftest::test_overlapped_fixit_printing): New function.
23028 (selftest::diagnostic_show_locus_c_tests): Call it.
23030 2017-05-03 Nathan Sidwell <nathan@acm.org>
23032 Canonicalize canonical type hashing
23033 * tree.h (type_hash_canon_hash): Declare.
23034 * tree.c (type_hash_list, attribute_hash_list): Move into
23035 type_hash_canon_hash.
23036 (build_type_attribute_qual_variant): Break out hash code calc into
23037 type_hash_canon_hash.
23038 (type_hash_canon_hash): New. Generic type hash computation.
23039 (build_range_type_1, build_array_type_1, build_function_type,
23040 build_method_type_directly, build_offset_type, build_complex_type,
23041 make_vector_type): Call it.
23043 2017-05-03 Richard Biener <rguenther@suse.de>
23045 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
23046 When all DRs have unknown misaligned do not always peel
23047 when there is a store but apply the same costing model as if
23048 there were only loads.
23050 2017-05-03 Richard Biener <rguenther@suse.de>
23053 PR tree-optimization/80492
23054 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
23055 compare_base_decls returning dont-know properly.
23057 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
23059 * config/arm/iterators.md (CCSI): New mode iterator.
23060 (arch): New mode attribute.
23061 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
23062 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
23063 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
23064 code iterator for success result mode.
23065 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
23066 the corresponding new insn generators.
23068 2017-05-03 Bin Cheng <bin.cheng@arm.com>
23071 2017-05-02 Bin Cheng <bin.cheng@arm.com>
23072 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
23074 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
23076 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
23077 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
23078 (DDR_A): Wrap DDR argument in brackets.
23079 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
23080 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
23081 (DDR_REVERSED_P): Likewise.
23083 2017-05-03 Jakub Jelinek <jakub@redhat.com>
23085 PR tree-optimization/79472
23086 * tree-switch-conversion.c (struct switch_conv_info): Add
23087 contiguous_range and default_case_nonstandard fields.
23088 (collect_switch_conv_info): Compute contiguous_range and
23089 default_case_nonstandard fields, don't clear final_bb if
23090 contiguous_range and only the default case doesn't have the required
23092 (check_all_empty_except_final): Set default_case_nonstandard instead
23093 of failing if contiguous_range and the default case doesn't have empty
23095 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
23096 and only the default case doesn't have the required constants. Skip
23098 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
23099 if default_case_nonstandard.
23100 (build_constructors): Build constant 1 just once. Assert that default
23101 values aren't inserted in between cases if contiguous_range. Skip
23103 (build_arrays): Skip virtual phis.
23104 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
23105 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
23106 Handle virtual phis.
23107 (gen_inbound_check): Handle default_case_nonstandard case.
23108 (process_switch): Adjust check_final_bb caller. Call
23109 gather_default_values with the first non-default case instead of
23110 default case if default_case_nonstandard.
23112 2017-05-02 Nathan Sidwell <nathan@acm.org>
23114 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
23115 check. Fix formatting.
23117 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
23119 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
23120 errors when comparing specialized and unspecialized times.
23122 2017-05-02 David Malcolm <dmalcolm@redhat.com>
23124 * diagnostic-show-locus.c
23125 (layout::should_print_annotation_line_p): Make private.
23126 (layout::print_annotation_line): Make private.
23127 (layout::annotation_line_showed_range_p): Make private.
23128 (layout::show_ruler): Make private.
23129 (layout::print_source_line): Make private. Pass in line and
23130 line_width, rather than calling location_get_source_line. Drop
23132 (layout::print_leading_fixits): New method.
23133 (layout::print_any_fixits): Rename to...
23134 (layout::print_trailing_fixits): ...this, and make private.
23135 Don't print newline fixits.
23136 (diagnostic_show_locus): Move logic for printing one row into...
23137 (layout::print_line): ...this new function. Move the
23138 location_get_source_line call and error-handling from
23139 print_source_line to here. Call print_leading_fixits, and rename
23140 print_any_fixits to print_trailing_fixits.
23141 (selftest::test_fixit_insert_containing_newline): Update now that
23142 newlines are partially supported.
23143 (selftest::test_fixit_insert_containing_newline_2): New test.
23144 (selftest::test_fixit_replace_containing_newline): Update comments.
23145 (selftest::diagnostic_show_locus_c_tests): Call the new test.
23146 * edit-context.c (class added_line): New class.
23147 (class edited_line): Describe newline handling in comment.
23148 (edited_line::actually_edited_p): New method.
23149 (edited_line::print_content): Delete redundant decl.
23150 (edited_line::m_predecessors): New field.
23151 (edited_file::print_content): Call edited_line::print_content.
23152 (edited_file::print_diff): Update to support newlines.
23153 (edited_file::print_diff_hunk): Likewise.
23154 (edited_file::print_run_of_changed_lines): New function.
23155 (edited_file::print_diff_line): Convert to...
23156 (print_diff_line): ...this.
23157 (edited_file::get_effective_line_count): New function.
23158 (edited_line::edited_line): Initialize new field m_predecessors.
23159 (edited_line::~edited_line): Clean up m_predecessors.
23160 (edited_line::apply_fixit): Handle newlines.
23161 (edited_line::get_effective_line_count): New function.
23162 (edited_line::print_content): New function.
23163 (edited_line::print_diff_lines): New function.
23164 (selftest::test_applying_fixits_insert_containing_newline): New
23166 (selftest::test_applying_fixits_replace_containing_newline): New
23168 (selftest::insert_line): New function.
23169 (selftest::test_applying_fixits_multiple_lines): Add example of
23171 (selftest::edit_context_c_tests): Call the new tests.
23173 2017-05-02 Bin Cheng <bin.cheng@arm.com>
23175 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
23176 parameter cand. Update dump information.
23177 (get_computation_cost): Update uses.
23179 2017-05-02 Bin Cheng <bin.cheng@arm.com>
23181 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
23182 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
23183 (get_computation_at, rewrite_use_address): Update use of
23184 get_computation_aff.
23186 2017-05-02 Bin Cheng <bin.cheng@arm.com>
23188 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
23189 (get_computation): Delete.
23190 (get_computation_cost): Implement like get_computation_cost_at.
23191 Use get_computation_at.
23192 (get_computation_cost_at): Delete.
23193 (rewrite_use_nonlinear_expr): Use get_computation_at.
23194 (rewrite_use_compare, remove_unused_ivs): Ditto.
23196 2017-05-02 Bin Cheng <bin.cheng@arm.com>
23198 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
23200 2017-05-02 Bin Cheng <bin.cheng@arm.com>
23202 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
23203 (ivopts_global_cost_for_size): Rename parameter and update uses.
23204 (iv_ca_recount_cost): Update uses.
23205 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
23206 candidates seperately in n_invs and n_cands.
23207 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
23209 2017-05-02 Bin Cheng <bin.cheng@arm.com>
23211 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
23212 (find_inv_vars_cb): New.
23213 (find_depends): Renamed to ...
23214 (find_inv_vars): ... this.
23215 (add_candidate_1, force_var_cost): Call find_inv_vars.
23216 (split_address_cost, determine_group_iv_cost_cond): Ditto.
23218 2017-05-02 Bin Cheng <bin.cheng@arm.com>
23220 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
23221 inv_vars. Add inv_exprs.
23222 (struct iv_cand): Rename depends_on to inv_vars.
23223 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
23224 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
23225 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
23226 (dump_cand): Dump inv_vars.
23227 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
23228 (record_invariant, find_depends, add_candidate_1): Ditto.
23229 (set_group_iv_cost, force_var_cost): Ditto.
23230 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
23231 (get_computation_cost_at, get_computation_cost): Ditto.
23232 (determine_group_iv_cost_generic): Ditto.
23233 (determine_group_iv_cost_address): Ditto.
23234 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
23235 (determine_group_iv_costs): Ditto.
23236 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
23237 (iv_ca_set_remove_invariants): Renamed to ...
23238 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
23239 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
23240 (iv_ca_set_add_invariants): Renamed to ...
23241 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
23242 (iv_ca_set_cp): Use iv_ca_set_add_invs.
23243 (iv_ca_has_deps): Support inv_vars and inv_exprs.
23244 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
23245 (create_new_ivs): Remove useless dump.
23247 2017-05-02 Bin Cheng <bin.cheng@arm.com>
23249 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
23251 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
23252 (iv_ca_set_no_cp, create_new_iv): Ditto.
23254 2017-05-02 Bin Cheng <bin.cheng@arm.com>
23256 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
23258 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
23260 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
23261 function tree_check2.
23263 2017-05-02 Martin Liska <mliska@suse.cz>
23265 * doc/gcov.texi: Add missing preposition.
23266 * gcov.c (function_info::function_info): Properly fill up
23267 all member variables.
23269 2017-05-02 Tamar Christina <tamar.christina@arm.com>
23271 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
23273 2017-05-02 Tamar Christina <tamar.christina@arm.com>
23275 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
23277 2017-05-02 Martin Liska <mliska@suse.cz>
23280 * lto-streamer-in.c (lto_read_tree_1): Remove
23281 LTO_STREAMER_DEBUG.
23282 * lto-streamer.c (struct tree_hash_entry): Likewise.
23283 (struct tree_entry_hasher): Likewise.
23284 (tree_entry_hasher::hash): Likewise.
23285 (tree_entry_hasher::equal): Likewise.
23286 (lto_streamer_init): Likewise.
23287 (lto_orig_address_map): Likewise.
23288 (lto_orig_address_get): Likewise.
23289 (lto_orig_address_remove): Likewise.
23290 * lto-streamer.h: Likewise.
23291 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
23292 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
23294 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
23296 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
23297 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
23298 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
23299 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
23300 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
23301 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
23302 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
23303 (mm_maskz_sub_ss): New intrinsics.
23304 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
23305 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
23306 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
23307 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
23308 (__builtin_ia32_subss_mask_round): New builtins.
23309 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
23310 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
23311 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
23313 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
23314 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
23316 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
23319 2017-05-02 Martin Jambor <mjambor@suse.cz>
23321 PR tree-optimization/78687
23322 * tree-sra.c (access): New field parent.
23323 (process_subtree_disqualification): New function.
23324 (disqualify_candidate): Call it.
23325 (build_accesses_from_assign): Reset write flag if creating an
23327 (build_access_subtree): Fill in parent field and also prpagate
23328 down grp_write flag.
23329 (create_artificial_child_access): New parameter set_grp_write, set
23330 grp_write to its value.
23331 (propagate_subaccesses_across_link): Also propagate grp_write flag
23333 (propagate_all_subaccesses): Push the closest parent back to work
23334 queue if add_access_to_work_queue returned true.
23336 2017-05-02 Richard Biener <rguenther@suse.de>
23338 * common.opt (fstrict-overflow): Alias negative to fwrapv.
23339 * doc/invoke.texi (fstrict-overflow): Remove all traces of
23340 -fstrict-overflow documentation.
23341 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
23342 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
23343 flag_strict_overflow.
23344 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
23345 * lto-opts.c (lto_write_options): Do not stream it.
23346 * lto-wrapper.c (merge_and_complain): Do not handle it.
23347 * opts.c (default_options_table): Do not set -fstrict-overflow.
23348 (finish_options): Likewise do not clear it when sanitizing.
23349 * simplify-rtx.c (simplify_const_relational_operation): Do not
23350 test flag_strict_overflow.
23352 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
23354 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
23355 using enabled attribute.
23356 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
23357 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
23358 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
23359 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
23360 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
23361 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
23362 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
23363 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
23364 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
23365 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
23367 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
23369 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
23371 2017-05-02 Richard Biener <rguenther@suse.de>
23373 PR tree-optimization/80591
23375 2017-04-10 Richard Biener <rguenther@suse.de>
23377 * tree-ssa-structalias.c (find_func_aliases): Properly handle
23380 2017-05-02 Richard Biener <rguenther@suse.de>
23382 PR tree-optimization/80549
23383 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
23384 (cleanup_tree_cfg_noloop): Create forwarders to known loop
23385 headers if they do not have a preheader.
23387 2017-05-02 Martin Liska <mliska@suse.cz>
23390 * common.opt: Fix typo.
23391 * doc/invoke.texi: Likewise.
23393 2017-05-01 Jan Beulich <jbeulich@suse.com>
23395 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
23396 swapping, add (x,x,m,x,n) alternative.
23398 2017-05-01 Nathan Sidwell <nathan@acm.org>
23400 * calls.c (combine_pending_stack_adjustment_and_call): Remove
23401 unnecessary unadjusted_alignment check.
23403 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
23406 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
23408 * gimplify.c (gimplify_cilk_detach): New function.
23409 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
23410 * tree-core.h: Document EXPR_CILK_SPAWN.
23411 * tree.h (EXPR_CILK_SPAWN): Define.
23413 2017-05-01 David Malcolm <dmalcolm@redhat.com>
23415 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
23416 to use new fixit_hint representation, using the "replace" logic.
23417 (get_line_span_for_fixit_hint): Likewise.
23418 (layout::print_any_fixits): Likewise.
23419 (selftest::test_one_liner_many_fixits): Rename to...
23420 (selftest::test_one_liner_many_fixits_1): ...this, and update
23421 comment and expected output to reflect that the multiple fix-it
23422 hints are now consolidated into one insertion.
23423 (selftest::test_one_liner_many_fixits_2): New test.
23424 (selftest::test_diagnostic_show_locus_one_liner): Update for
23426 (selftest::test_fixit_consolidation): Update for fix-it API
23428 * diagnostic.c (print_parseable_fixits): Likewise.
23429 * edit-context.c (edited_line::m_line_events): Convert from
23430 auto_vec <line_event *> to auto_vec <line_event>.
23431 (class line_event): Convert from abstract base class to a concrete
23432 class, taking over the role of replace_event.
23433 (class insert_event): Delete.
23434 (class replace_event): Rename to class line_event. Convert to
23436 (edit_context::add_fixits): Reimplement.
23437 (edit_context::apply_insert): Delete.
23438 (edit_context::apply_replace): Rename to...
23439 (edit_context::apply_fixit): ...this. Convert to half-open range.
23440 (edited_file::apply_insert): Delete.
23441 (edited_file::apply_replace): Rename to...
23442 (edited_file::apply_fixit): ...this.
23443 (edited_line::~edited_line): Drop deletion of events.
23444 (edited_line::apply_insert): Delete.
23445 (edited_line::apply_replace): Rename to...
23446 (edited_line::apply_fixit): ...this. Convert to half-open range.
23447 Update for change to type of m_line_events.
23448 * edit-context.h (edit_context::apply_insert): Delete.
23449 (edit_context::apply_replace): Rename to...
23450 (edit_context::apply_fixit): ...this.
23452 2017-05-01 Martin Sebor <msebor@redhat.com>
23454 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
23457 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
23460 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
23461 __get_cpuid_max returns 0.
23462 (__get_cpuid_count): Ditto.
23464 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
23466 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
23467 replacement expression is another instance of one of its arguments.
23469 2017-05-01 Jakub Jelinek <jakub@redhat.com>
23472 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
23473 check for stack push/pop autoinc.
23474 * config/i386/i386.c (ix86_agi_dependent): Return false
23475 if the only reason why modified_in_p returned true is that
23476 addr is SP based and set_insn is a push or pop.
23478 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
23480 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
23483 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
23486 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
23487 (account_size_time): Use two predicates - exec_pred and
23489 (evaluate_conditions_for_known_args): Compute both clause and
23491 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
23492 (inline_summary_t::duplicate): Update.
23493 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
23495 (compute_inline_parameters): Likewise.
23496 (estimate_edge_size_and_time): Update caluclation of time.
23497 (estimate_node_size_and_time): Compute both time and nonspecialized
23499 (estimate_ipcp_clone_size_and_time): Update.
23500 (inline_merge_summary): Update.
23501 (do_estimate_edge_time): Update.
23502 (do_estimate_edge_size): Update.
23503 (do_estimate_edge_hints): Update.
23504 (inline_read_section, inline_write_summary): Stream both new predicates.
23505 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
23507 (compute_inlined_call_time): Cleanup.
23508 (big_speedup_p): Update.
23509 (edge_badness): Update.
23510 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
23511 (size_time_entry): Replace predicate by exec_predicate and
23512 nonconst_predicate.
23513 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
23514 (estimate_edge_time): Return also nonspec_time.
23515 (reset_edge_growth_cache): Update.
23517 2017-04-29 Jakub Jelinek <jakub@redhat.com>
23519 PR rtl-optimization/80491
23520 * ifcvt.c (noce_process_if_block): When looking for x setter
23521 with missing else_bb, don't check only the insn right before
23522 cond_earliest, but look for the last insn that x is modified in
23523 within the same bb.
23525 PR rtl-optimization/80491
23526 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
23528 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
23530 PR tree-optimization/80487
23531 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
23533 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
23535 PR tree-optimization/79697
23536 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
23537 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
23538 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
23540 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
23541 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
23543 2017-04-28 Martin Sebor <msebor@redhat.com>
23545 PR tree-optimization/80523
23546 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
23547 (init_target_to_host_charmap, target_to_host, target_strtol10): New
23549 (maybe_warn, format_directive, parse_directive): Use new functions.
23550 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
23552 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
23554 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
23556 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
23558 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
23559 target_header_dir): Set correctly.
23560 * configure: Regenerated.
23561 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
23562 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
23563 instead of SYSTEM_HEADER_DIR.
23565 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
23567 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
23568 (estimate_local_effects): Likewise.
23569 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
23570 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
23571 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
23572 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
23573 do_estimate_edge_time, estimate_edge_time): Likewise.
23574 * ipa-inline-analysis.c (estimate_node_size_and_time,
23575 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
23576 (estimate_time_after_inlining): Remove.
23578 2017-04-28 Martin Liska <mliska@suse.cz>
23580 * doc/gcov.texi: Enhance documentation of gcov.
23582 2017-04-28 Martin Liska <mliska@suse.cz>
23584 * doc/gcov.texi: Sort options in alphabetic order.
23585 * doc/gcov-dump.texi: Likewise.
23586 * doc/gcov-tool.texi: Likewise.
23587 * gcov.c (print_usage): Likewise.
23588 * gcov-dump.c (print_usage): Likewise.
23589 * gcov-tool.c (print_merge_usage_message): Likewise.
23590 (print_rewrite_usage_message): Likewise.
23591 (print_overlap_usage_message): Likewise.
23593 2017-04-28 Martin Liska <mliska@suse.cz>
23595 PR gcov-profile/53915
23596 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
23598 2017-04-28 Martin Liska <mliska@suse.cz>
23600 PR gcov-profile/79891
23601 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
23602 is marked by compiler as living on a line.
23603 (get_cycles_count): Remove usage of the union.
23604 (output_intermediate_file): Likewise.
23605 (find_source): Fix GNU coding style.
23606 (accumulate_line_counts): Remove old non-all block mode.
23607 (output_lines): Remove usage of the union.
23608 * profile.c (output_location): Include all BBs, even if
23609 belonging to a same line (and file) as a previous BB.
23611 2017-04-28 Martin Liska <mliska@suse.cz>
23613 * gcov.c (process_args): Handle new argument 'w'.
23614 (read_graph_file): Assign ID to BBs.
23615 (output_branch_count): Display BB # if verbose flag is set.
23616 (output_lines): Likewise for arcs.
23617 (print_usage): Add '--verbose' option help.
23618 * doc/gcov.texi: Document --verbose (-w) option.
23620 2017-04-28 Martin Liska <mliska@suse.cz>
23622 * gcov.c (struct block_location_info): New struct.
23623 (process_file): Fill up the new structure.
23624 (read_graph_file): Replace usage of encoding by the newly added
23626 (add_line_counts): Likewise.
23627 (accumulate_line_counts): Remove usage of the union.
23628 (function_info::function_info): New function.
23629 (function_info::~function_info): Likewise.
23630 (process_file): Call delete instead of release_function.
23631 (release_function): Release the function.
23632 (release_structures): Call delete instead of release_function.
23633 (solve_flow_graph): Replace usage of num_blocks.
23634 (find_exception_blocks): Likewise.
23635 (output_lines): Fix GNU coding style.
23637 2017-04-28 Martin Liska <mliska@suse.cz>
23640 * coverage.c (coverage_remove_note_file): New function.
23641 * coverage.h: Declare the function.
23642 * toplev.c (finalize): Clean if an error has been seen.
23644 2017-04-28 Martin Liska <mliska@suse.cz>
23646 PR gcov-profile/80031
23647 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
23648 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
23649 * gcov.c (read_graph_file): Read just number of blocks.
23650 * profile.c (branch_prob): Do not stream 0 flags per a basic
23653 2017-04-28 Martin Liska <mliska@suse.cz>
23655 * gcov-dump.c (tag_*): Add new argument to declarations.
23656 (dump_gcov_file): Likewise.
23657 (tag_blocks): Add and use new argument depth.
23658 (tag_arcs): Likewise.
23659 (tag_lines): Likewise.
23660 (tag_counters): Likewise.
23661 (tag_summary): Likewise.
23662 (dump_working_sets): Use depth to do a proper indentation.
23664 2017-04-28 Jakub Jelinek <jakub@redhat.com>
23667 * cgraph.h (symtab_node::debug_symtab): No longer inline.
23668 * symtab.c (symtab_node::debug_symtab): Move definition here.
23670 2017-04-28 Richard Biener <rguenther@suse.de>
23672 * lto-streamer.h (LTO_major_version): Bump to 7.
23674 2017-04-28 Richard Biener <rguenther@suse.de>
23676 * tree-vrp.c (assert_info): New struct.
23677 (add_assert_info): New helper.
23678 (register_edge_assert_for_2): Refactor to add asserts to a vector
23680 (register_edge_assert_for_1): Likewise.
23681 (register_edge_assert_for): Likewise.
23682 (finish_register_edge_assert_for): New helper actually registering
23683 asserts where live on edge.
23684 (find_conditional_asserts): Adjust.
23685 (find_switch_asserts): Likewise.
23686 (evrp_dom_walker::try_find_new_range): Generalize.
23687 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
23689 2017-04-27 Marek Polacek <polacek@redhat.com>
23692 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
23693 arg10 and arg11 to itype.
23695 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
23697 * doc/extend.texi (Object Size Checking): Improve grammar.
23699 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
23702 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
23703 that the logic for permitting reciprocal estimates matches that
23706 2017-04-27 Jakub Jelinek <jakub@redhat.com>
23709 * tree.c (type_cache_hasher::equal): Only compare
23710 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
23711 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
23712 non-aggregate element types.
23713 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
23714 about the flag on ARRAY_TYPEs in the comment, formatting fix.
23716 2017-04-27 Richard Biener <rguenther@suse.de>
23718 PR middle-end/80533
23719 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
23720 stripping ARRAY_REFs from MEM_EXPR make sure we're not
23721 keeping a reference to a trailing array.
23723 2017-04-27 Richard Biener <rguenther@suse.de>
23725 PR middle-end/80539
23726 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
23727 being in loop-closed SSA form conservatively.
23728 (chrec_fold_multiply_poly_poly): Likewise.
23730 2017-04-27 Tamar Christina <tamar.christina@arm.com>
23732 PR middle-end/79665
23733 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
23734 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
23736 2017-04-27 Jakub Jelinek <jakub@redhat.com>
23739 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
23740 (aarch64_function_arg_alignment): Return unsigned int again, but still
23741 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
23742 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
23743 Don't emit -Wpsabi note.
23744 (aarch64_function_arg_boundary): Likewise.
23745 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
23748 2017-04-26 Nathan Sidwell <nathan@acm.org>
23750 * tree.h (crc32_unsigned_n): Declare.
23751 (crc32_unsigned, crc32_unsigned): Make inline.
23752 * tree.c (crc32_unsigned_bits): Replace with ...
23753 (crc32_unsigned_n): ... this.
23754 (crc32_unsigned, crc32_byte): Remove.
23755 (crc32_string): Remove unnecessary braces.
23757 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
23759 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
23760 * ipa-inline-analysis.c (MAX_TIME): Remove.
23761 (account_size_time): Use sreal for time.
23762 (dump_inline_summary): Update.
23763 (estimate_function_body_sizes): Update.
23764 (estimate_edge_size_and_time): Update.
23765 (estimate_calls_size_and_time): Update.
23766 (estimate_node_size_and_time): Update.
23767 (inline_merge_summary): Update.
23768 (inline_update_overall_summary): Update.
23769 (estimate_time_after_inlining): Update.
23770 (inline_read_section): Update.
23771 (inline_write_summary): Update.
23772 * ipa-inline.c (compute_uninlined_call_time): Update.
23773 (compute_inlined_call_time): Update.
23774 (recursive_inlining): Update.
23775 (inline_small_functions): Update.
23776 (dump_overall_stats): Update.
23777 * ipa-inline.h: Include sreal.h.
23778 (size_time_entry): Turn time to sreal.
23779 (inline_summary): Turn self_time nad time to sreal.
23781 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
23783 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
23785 (sreal::stream_out, sreal::stream_in): New.
23786 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
23788 2017-04-25 Jakub Jelinek <jakub@redhat.com>
23790 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
23793 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
23796 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
23798 (dimode_scalar_chain::compute_convert_gain): Ditto.
23799 (dimode_scalar_chain::make_vector_copies): Ditto.
23800 (dimode_scalar_chain::convert_reg): Ditto.
23801 (dimode_scalar_chain::convert_insn): Ditto.
23802 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
23803 (VI248_AVX512BW_1): New mode iterator.
23804 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
23805 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
23808 2017-04-25 Martin Sebor <msebor@redhat.com>
23810 PR tree-optimization/80497
23811 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
23812 constants are representable in HOST_WIDE_INT.
23813 (parse_directive): Ditto.
23815 2017-04-25 Martin Sebor <msebor@redhat.com>
23818 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
23819 (new_zero_array): Adjust signature.
23820 (dom_info::dom_init): Used unsigned rather that size_t.
23821 (dom_info::dom_info): Same.
23823 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23824 Jakub Jelinek <jakub@redhat.com>
23827 * config/arm/arm.c: Include gimple.h.
23828 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
23829 returns negative, increment ncrn only if it returned positive.
23830 (arm_needs_doubleword_align): Return int instead of bool,
23831 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
23832 members, but if there is any such non-FIELD_DECL
23833 > PARM_BOUNDARY aligned decl, return -1 instead of false.
23834 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
23835 returns negative, increment nregs only if it returned positive.
23836 (arm_setup_incoming_varargs): Likewise.
23837 (arm_function_arg_boundary): Emit -Wpsabi note if
23838 arm_needs_doubleword_align returns negative, return
23839 DOUBLEWORD_ALIGNMENT only if it returned positive.
23841 2017-04-25 Marek Polacek <polacek@redhat.com>
23844 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
23845 first argument to type.
23847 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
23850 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
23851 type checks to test for compatibility instead of equality.
23853 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23854 Jakub Jelinek <jakub@redhat.com>
23857 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
23859 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
23860 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
23861 the alignment computation, but return their maximum in warn_alignment.
23862 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
23863 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
23865 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
23866 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
23869 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23871 * config/arc/simdext.md (dmpyh): Fix typo.
23873 2017-04-25 Richard Biener <rguenther@suse.de>
23875 PR tree-optimization/80492
23876 * alias.c (compare_base_decls): Handle registers with asm
23877 specification conservatively.
23878 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
23879 compare_base_decls returning dont-know properly.
23881 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23883 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
23884 (legitimate_offset_address_p): New function.
23885 (arc_legitimate_address_p): Use above function.
23887 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23889 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
23891 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23893 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
23894 ACCH registers whenever they are available.
23896 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23898 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
23899 double regs fix when not used.
23901 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23903 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
23905 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
23906 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
23908 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23910 * config/arc/arc.c (arc_output_addsi): Check for h-register class
23911 when emitting short ADD instructions.
23913 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
23915 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
23917 (cmpsi_cc_c_insn): Likewise.
23918 (cbranchsi4_scratch): Compute proper instruction length using
23919 compact_hreg_operand.
23920 * config/arc/predicates.md (compact_hreg_operand): New predicate.
23922 2017-04-25 Richard Biener <rguenther@suse.de>
23924 PR middle-end/80509
23925 * passes.c (pass_manager::pass_manager): Initialize
23926 m_name_to_pass_map.
23928 2017-04-25 Richard Biener <rguenther@suse.de>
23930 PR tree-optimization/79201
23931 * tree-ssa-sink.c (statement_sink_location): Handle calls.
23933 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23936 * config/s390/vector.md: Split MEM->GPR vector moves for
23937 non-s_operand addresses.
23939 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23942 * config/s390/predicates.md (reload_const_wide_int_operand): New
23944 * config/s390/s390.md ("movti"): Remove d/P alternative.
23945 ("movti_bigconst"): New pattern definition.
23947 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
23950 * s390-protos.h (s390_expand_cs_hqi): Removed.
23951 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
23952 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
23953 modes as well as CCZ1mode and CCZmode.
23954 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
23955 signature of s390_emit_compare_and_swap.
23956 (s390_expand_cs_hqi): Likewise, make static.
23957 (s390_expand_cs_tdsi): Generate an explicit compare before trying
23958 compare-and-swap, in some cases.
23959 (s390_expand_cs): Wrapper function.
23960 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
23962 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
23963 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
23964 patterns for small and large integers. Forbid symref memory operands.
23965 Move expander to s390.c. Require cc register.
23966 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
23967 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
23968 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
23969 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
23970 symref memory operands. Remove CC mode and call s390_match_ccmode
23972 ("atomic_exchange<mode>"): Allow and implement all integer modes.
23974 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
23976 * config/s390/s390.md (define_peephole2): New peephole to help
23977 combining the load-and-test pattern with volatile memory.
23979 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
23981 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
23982 with CCZmode for TARGET_Z196.
23984 2017-04-25 Jakub Jelinek <jakub@redhat.com>
23986 PR rtl-optimization/80501
23987 * combine.c (make_compound_operation_int): Set subreg_code to SET
23988 even for AND with mask of the sign bit of mode.
23990 PR rtl-optimization/80500
23991 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
23992 sum's initial value.
23994 2017-04-25 Julian Brown <julian@codesourcery.com>
23995 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
23997 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
23999 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
24001 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
24003 2017-04-25 Julian Brown <julian@codesourcery.com>
24004 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
24006 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
24007 (thunderx2t99_sha): New Reservation.
24009 2017-04-25 Julian Brown <julian@codesourcery.com>
24010 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
24012 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
24013 type for 1-element load.
24015 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
24017 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
24019 2017-04-24 Martin Jambor <mjambor@suse.cz>
24021 PR tree-optimization/80293
24022 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
24023 char arrays not totally scalarizable if it is false.
24024 (analyze_all_variable_accesses): Pass correct value in the new
24025 parameter. Add a statistics counter.
24027 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
24029 PR middle-end/79931
24030 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
24032 2017-04-24 Richard Biener <rguenther@suse.de>
24034 PR tree-optimization/80494
24035 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
24036 out for complex types.
24038 2017-04-24 Richard Biener <rguenther@suse.de>
24040 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
24041 * tree-ssa-sccvn.c (print_scc): Print SCC size.
24042 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
24043 (DFS): Adjust and never fail.
24044 (sccvn_dom_walker::fail): Remove.
24045 (sccvn_dom_walker::before_dom_children): Adjust.
24046 (run_scc_vn): Likewise and never fail.
24047 * tree-ssa-pre.c (pass_pre::execute): Adjust.
24048 (pass_fre::execute): Likewise.
24050 2017-04-24 Richard Biener <rguenther@suse.de>
24052 PR tree-optimization/79725
24053 * tree-ssa-sink.c (statement_sink_location): Return whether
24054 failure reason was zero uses. Move that check later.
24055 (sink_code_in_bb): Deal with zero uses by removing the stmt
24058 2017-04-24 Richard Biener <rguenther@suse.de>
24061 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
24062 pointer-based references.
24064 2017-04-24 Richard Biener <rguenther@suse.de>
24067 * pass_manager.h (pass_manager::operator new): Remove.
24068 (pass_manager::operator delete): Likewise.
24069 * passes.c (pass_manager::operator new): Remove.
24070 (pass_manager::operator delete): Likewise.
24071 (pass_manager::pass_manager): Zero individual pass members.
24073 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
24076 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
24077 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
24078 Check "XEXP (src, 1)" operand here.
24079 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
24080 Check "XEXP (src, 1)" operand here.
24081 (dimode_scalar_chain::make_vector_copies): Detect count register
24082 of a shift instruction. Zero extend count register from QImode
24083 to DImode to satisfy vector shift pattern count operand predicate.
24084 Substitute vector shift count operand with a DImode copy.
24085 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
24088 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
24090 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
24091 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
24092 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
24093 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
24094 (UNSPEC_NOREX_MEM): Remove definition.
24096 2017-04-21 Richard Biener <rguenther@suse.de>
24098 PR tree-optimization/79547
24099 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24100 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
24101 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
24102 without any constraints.
24104 2017-04-21 Richard Biener <rguenther@suse.de>
24106 PR tree-optimization/78847
24107 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
24109 2017-04-21 Richard Biener <rguenther@suse.de>
24111 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
24112 (build_distinct_type_copy): Likewise.
24113 (build_variant_type_copy): Likewise.
24114 * tree.c (build_qualified_type): Pass down mem-stat info.
24115 (build_distinct_type_copy): Likewise.
24116 (build_variant_type_copy): Likewise.
24118 2017-04-21 Richard Biener <rguenther@suse.de>
24120 PR tree-optimization/80237
24121 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
24123 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
24124 for a simplified result.
24126 2016-04-21 Richard Biener <rguenther@suse.de>
24128 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
24129 sth as strict as a simple_iv but a chrec without symbols and an
24130 operand defined in the loop we are peeling (and not some subloop).
24131 (propagate_constants_for_unrolling): Propagate all constants.
24133 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
24136 * config/i386/i386.c (print_reg): Remove assert for disalowed
24137 regno values, call output_operand_lossage instead.
24139 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
24142 * config/i386/constraints.md (Yc): New register constraint.
24143 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
24144 Use Yc constraint for alternative 2 of operand 0. Remove
24145 preferred_for_speed attribute.
24147 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
24149 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
24150 lastprivate clauses in SIMT case.
24152 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
24154 * doc/invoke.texi (-Wextra-semi): Document new warning option.
24156 2017-04-20 Richard Biener <rguenther@suse.de>
24158 PR tree-optimization/57796
24159 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
24160 as N scalar stores.
24161 (vect_model_load_cost): Cost gathers as N scalar loads.
24163 2017-04-20 Richard Biener <rguenther@suse.de>
24165 * ggc-page.c (ggc_allocated_p): Rename to ...
24166 (safe_lookup_page_table_entry): ... this and return the lookup
24168 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
24170 2017-04-20 Richard Biener <rguenther@suse.de>
24172 PR tree-optimization/80453
24173 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
24174 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
24175 from the conditions.
24176 (vn_phi_eq): Pass them down.
24177 (vn_phi_lookup): Record them.
24178 (vn_phi_insert): Likewise.
24180 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
24182 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
24183 uninitialized variable warning to avoid buffer overrun.
24185 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
24188 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
24189 is suppressed for '{ 0 }' in C.
24191 2017-04-20 Jakub Jelinek <jakub@redhat.com>
24193 * BASE-VER: Set to 8.0.0.
24195 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
24197 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
24198 priority .init_array and .fini_array section with SECTION_NOTYPE
24201 2017-04-20 Jakub Jelinek <jakub@redhat.com>
24203 PR middle-end/80423
24204 * tree.h (build_array_type): Add typeless_storage default argument.
24205 * tree.c (type_cache_hasher::equal): Also compare
24206 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
24207 (build_array_type): Add typeless_storage argument, set
24208 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
24210 (build_nonshared_array_type): Adjust build_array_type_1 caller.
24211 (build_array_type): Likewise. Add typeless_storage argument.
24213 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
24214 Jakub Jelinek <jakub@redhat.com>
24216 PR tree-optimization/80426
24217 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
24218 operation on symbolic operands, also compute the overflow for the
24219 invariant part when the operation degenerates into a negation.
24221 2017-04-19 Jakub Jelinek <jakub@redhat.com>
24224 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
24225 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
24228 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
24230 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
24233 * config/avr/avr.c (tree.h): Include it.
24234 (cgraph.h): Include it.
24235 (avr_encode_section_info): Don't warn for uninitialized progmem
24236 variable if it's just an alias.
24238 2017-04-19 Richard Biener <rguenther@suse.de>
24241 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
24242 when needed by AutoPGO.
24244 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
24247 * doc/lto.texi: Remove an extra 'that'.
24249 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
24251 PR rtl-optimization/80429
24252 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
24253 are only used in debug insns.
24255 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
24256 Vladimir Makarov <vmakarov@redhat.com>
24258 * config/sparc/predicates.md (input_operand): Add comment. Return
24259 true for any memory operand when LRA is in progress.
24260 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
24262 2017-04-18 Jeff Law <law@redhat.com>
24265 * mips.md ({return,simple_return}_internal): Do not overwrite
24268 2017-04-18 Jakub Jelinek <jakub@redhat.com>
24270 PR tree-optimization/80443
24271 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
24272 instead of adding 1, subtract -1 and similarly instead of subtracting
24275 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
24277 PR rtl-optimization/80357
24278 * haifa-sched.c (tmp_bitmap): New variable.
24279 (model_recompute): Handle duplicate use records.
24280 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
24281 (free_global_sched_pressure_data): Free it.
24283 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
24286 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
24287 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
24288 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
24289 instead of SYSTEM_HEADER_DIR.
24291 2017-04-18 Jeff Law <law@redhat.com>
24293 PR middle-end/80422
24294 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
24295 predecessors after walking up the insn chain.
24297 2017-04-18 Jakub Jelinek <jakub@redhat.com>
24300 * dwarf2out.c (modified_type_die): Try harder not to emit internal
24301 sizetype type into debug info.
24303 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
24306 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
24307 unneeded test for TARGET_UPPER_REGS_SF.
24308 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
24310 2017-04-18 Jakub Jelinek <jakub@redhat.com>
24313 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
24314 instead of gsi_after_labels.
24316 2017-04-18 Jeff Law <law@redhat.com>
24318 * regcprop.c (maybe_mode_change): Avoid creating copies of the
24322 2017-04-13 Jeff Law <law@redhat.com>
24323 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
24324 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
24326 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
24329 * config/avr/avr.c (intl.h): Include it.
24330 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
24332 2017-04-18 Martin Liska <mliska@suse.cz>
24334 PR gcov-profile/78783
24335 * gcov-tool.c (gcov_output_files): Validate that destination
24336 file is either removed by the tool or by a user.
24338 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
24339 Guy Benyei <guybe@mellanox.com>
24341 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
24342 block, and do not negate it, the stored id is already negative.
24344 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
24346 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
24348 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
24351 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
24352 masks of options that should be turned off if the VSX vector
24353 options are turned off.
24354 (OTHER_P8_VECTOR_MASKS): Likewise.
24355 (OTHER_VSX_VECTOR_MASKS): Likewise.
24356 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
24357 rs6000_disable_incompatible_switches to validate no type switches
24359 (rs6000_incompatible_switch): New function to disallow turning on
24360 other vector options if -mno-vsx, -mno-power8-vector, or
24361 -mno-power9-vector are specified.
24363 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
24365 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
24367 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
24369 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
24370 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
24371 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
24372 (ARG_POINTER_CFA_OFFSET): Likewise.
24374 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
24376 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
24377 conditions to take advantage of various optimizations.
24379 2017-04-13 Jeff Law <law@redhat.com>
24381 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
24382 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
24383 (zero_extendsidi2_dext): Likewise.
24385 2017-04-13 Jakub Jelinek <jakub@redhat.com>
24388 * fold-const.c (fold_ternary_loc): Revert
24389 use op0 instead of fold_convert_loc (loc, type, arg0) part of
24392 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
24394 PR rtl-optimization/80343
24395 * lra-remat.c (update_scratch_ops): Assign original hard reg to
24396 new scratch pseudo.
24398 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
24401 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
24402 to ubsan_encode_value.
24404 2017-04-13 Jeff Law <law@redhat.com>
24406 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
24407 appearing in DEBUG_INSNs.
24409 2017-04-13 Martin Liska <mliska@suse.cz>
24411 PR gcov-profile/80413
24412 * gcov-io.c (gcov_write_string): Copy to buffer just when
24413 allocated size is greater than zero.
24415 2017-04-13 Jakub Jelinek <jakub@redhat.com>
24418 * dwarf2out.c (decls_for_scope): Ignore declarations of
24419 current_function_decl in BLOCK_NONLOCALIZED_VARS.
24421 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
24424 * ipa-visibility.c (non_local_p): Fix typos.
24425 (localize_node): When localizing symbol in same comdat group,
24426 dissolve the group only when we know external symbols are going
24428 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
24430 2017-04-12 Jakub Jelinek <jakub@redhat.com>
24432 PR tree-optimization/79390
24433 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
24434 order does not result in usable sequence, retry with reversed operand
24440 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
24441 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
24442 op0 instead of fold_convert_loc (loc, type, arg0).
24444 2017-04-12 Jeff Law <law@redhat.com>
24446 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
24447 has a delay slot in the generated code.
24449 * config/cris/cris.md (cris_preferred_reload_class): Return
24450 GENNONACR_REGS rather than GENERAL_REGS.
24452 2017-04-12 Jakub Jelinek <jakub@redhat.com>
24455 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
24456 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
24457 signedness of the result type.
24459 2017-04-12 Richard Biener <rguenther@suse.de>
24460 Jeff Law <law@redhat.com>
24462 PR tree-optimization/80359
24463 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
24464 trim stores to TARGET_MEM_REFs.
24466 2017-04-12 Richard Biener <rguenther@suse.de>
24468 PR tree-optimization/79390
24469 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
24470 threading case even more.
24472 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
24475 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
24476 for quad_address_p for TImode, instead of just not indexed_address.
24478 2017-04-12 Richard Biener <rguenther@suse.de>
24479 Bernd Edlinger <bernd.edlinger@hotmail.de>
24481 PR middle-end/79671
24482 * alias.c (component_uses_parent_alias_set_from): Handle
24483 TYPE_TYPELESS_STORAGE.
24484 (get_alias_set): Likewise.
24485 * tree-core.h (tree_type_common): Add typeless_storage flag.
24486 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
24487 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
24488 for types containing members with TYPE_TYPELESS_STORAGE.
24489 (place_field): Likewise.
24490 (layout_type): Likewise for ARRAY_TYPE.
24491 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
24492 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
24493 TYPE_TYPELESS_STORAGE.
24494 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
24496 2017-04-12 Jakub Jelinek <jakub@redhat.com>
24499 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
24500 first argument to type.
24502 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24506 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
24507 CONST0_RTX (mode) rather than const0_rtx where appropriate.
24508 (rs6000_expand_binop_builtin): Likewise.
24509 (rs6000_expand_ternop_builtin): Likewise; also add missing
24510 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
24511 vshasigma built-ins.
24512 * doc/extend.texi: Document that vec_xxpermdi's third argument
24513 must be a constant.
24515 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
24517 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
24518 Use shift_const cost parameter when calculating gain of STV shifts.
24520 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
24522 PR rtl-optimization/70478
24523 * lra-constraints.c (process_alt_operands): Check memory for
24524 disfavoring memory insn operand.
24526 2017-04-11 Jakub Jelinek <jakub@redhat.com>
24528 PR middle-end/80100
24529 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
24530 left shift in unsigned HOST_WIDE_INT type.
24532 PR rtl-optimization/80385
24533 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
24534 (not (neg X)) into (plus X -1) for complex or non-integral modes.
24537 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
24538 if they have any depend clauses.
24540 2017-04-11 Martin Liska <mliska@suse.cz>
24543 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
24544 * ipa-split.c (split_function): Create a local comdat symbol
24545 if caller is in a comdat group.
24547 2017-04-11 Martin Liska <mliska@suse.cz>
24550 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
24553 2017-04-11 Martin Sebor <msebor@redhat.com>
24555 PR middle-end/80364
24556 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
24557 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
24559 (directive::set_width, directive::set_precision, format_character):
24561 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
24564 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
24567 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
24568 conflict, set target->arch_name instead of target->cpu_name.
24570 2017-04-11 Richard Biener <rguenther@suse.de>
24572 PR tree-optimization/80374
24573 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
24574 build_zero_cst, remove fold_convertible_p check again.
24576 2017-04-11 Martin Liska <mliska@suse.cz>
24579 * ubsan.c (instrument_object_size): Do not instrument register
24582 2017-04-11 Jakub Jelinek <jakub@redhat.com>
24585 * config/i386/i386-builtin-types.def
24586 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
24587 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
24588 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
24589 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
24590 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
24591 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
24592 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
24593 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
24594 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
24595 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
24596 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
24597 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
24598 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
24599 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
24600 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
24601 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
24602 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
24603 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
24604 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
24605 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
24606 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
24607 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
24608 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
24609 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
24610 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
24611 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
24612 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
24613 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
24614 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
24615 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
24616 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
24617 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
24618 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
24619 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
24620 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
24621 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
24622 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
24623 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
24624 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
24625 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
24626 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
24627 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
24628 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
24629 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
24630 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
24631 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
24633 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
24634 flag to second_arg_count, handle 4 argument function type _COUNT
24635 aliases, handle second_arg_count on second argument rather than last.
24637 2017-04-10 Jeff Law <law@redhat.com>
24639 PR tree-optimization/80374
24640 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
24641 record anything if we can not convert integer_zero_node to the
24644 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
24647 * config/rs6000/rs6000.c (rs6000_option_override_internal):
24648 Enhance special handling given to the TARGET_P9_MINMAX option in
24649 relation to certain other options.
24651 2017-04-10 Bin Cheng <bin.cheng@arm.com>
24653 PR tree-optimization/80153
24654 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
24655 remove POINTER_PLUS_EXPR's base part directly, rather than through
24658 2017-04-10 Richard Biener <rguenther@suse.de>
24659 Bin Cheng <bin.cheng@arm.com>
24661 PR tree-optimization/80153
24662 * tree-affine.c (aff_combination_to_tree): Get base pointer from
24663 the first element of pointer type aff_tree. Build result expr in
24665 (add_elt_to_tree): Convert to type unconditionally. Remove other
24666 fold_convert calls.
24667 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
24668 (rewrite_use_nonlinear_expr): Check invariant using iv information.
24670 2017-04-10 Richard Biener <rguenther@suse.de>
24672 * tree-ssa-structalias.c (find_func_aliases): Properly handle
24675 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
24677 PR rtl-optimization/70478
24678 * lra-constraints.c (curr_small_class_check): New.
24679 (update_and_check_small_class_inputs): New.
24680 (process_alt_operands): Update curr_small_class_check. Disfavor
24681 alternative insn memory operands. Check available regs for small
24684 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
24687 * config/mips/mips.opt (-mvirt): Update description.
24688 * doc/invoke.texi (-mvirt): Likewise.
24690 2017-04-10 Richard Biener <rguenther@suse.de>
24692 PR middle-end/80362
24693 * fold-const.c (fold_binary_loc): Look at unstripped ops when
24694 looking for NEGATE_EXPR in -A / -B to A / B folding.
24696 2017-04-10 Martin Liska <mliska@suse.cz>
24698 PR gcov-profile/80224
24699 * gcov.c (print_usage): Fix usage string.
24700 (get_gcov_intermediate_filename): Remove.
24701 (output_gcov_file): Use both for normal and intermediate format.
24702 (generate_results): Do not initialize special file for
24703 intermediate format.
24705 2017-04-10 Richard Biener <rguenther@suse.de>
24707 PR tree-optimization/80304
24708 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
24711 2017-04-10 Nathan Sidwell <nathan@acm.org>
24714 * config/rs6000/rs6000.c (rs6000_vector_type): New.
24715 (rs6000_init_builtins): Use it.
24717 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24719 * config/arm/arm.md (<mrc>): Add mode to SET source.
24720 (<mrrc>): Likewise.
24722 2017-04-10 Richard Biener <rguenther@suse.de>
24724 PR middle-end/80344
24725 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
24727 2017-04-10 Jakub Jelinek <jakub@redhat.com>
24730 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
24731 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
24732 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
24733 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
24734 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
24735 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
24736 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
24737 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
24738 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
24739 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
24740 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
24741 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
24742 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
24743 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
24744 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
24745 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
24746 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
24747 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
24748 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
24749 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
24750 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
24751 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
24752 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
24754 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
24756 PR rtl-optimization/70478
24757 * lra-constraints.c: Reverse the last patch.
24759 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
24761 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
24762 Add comment for WCHAR_T.
24764 2017-04-08 Martin Liska <mliska@suse.cz>
24767 2017-04-07 Martin Liska <mliska@suse.cz>
24770 * ipa-split.c (split_function): Add function part to a same comdat
24773 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
24776 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
24778 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
24780 * rs6000/rs6000.c (vec_load_pendulum): Rename...
24781 (vec_pairing): ...to this.
24782 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
24783 (rs6000_sched_init): Adjust for name change.
24784 (struct rs6000_sched_context): Likewise.
24785 (rs6000_init_sched_context): Likewise.
24786 (rs6000_set_sched_context): Likewise.
24788 2017-04-07 Jakub Jelinek <jakub@redhat.com>
24794 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
24796 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
24797 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
24798 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
24800 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
24802 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
24804 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
24806 PR rtl-optimization/70703
24807 * ira-color.c (update_conflict_hard_regno_costs): Use
24808 int64_t instead of HOST_WIDE_INT.
24810 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
24812 PR rtl-optimization/70478
24813 * lra-constraints.c (process_alt_operands): Disfavor alternative
24814 insn memory operands.
24816 2017-04-07 Jeff Law <law@redhat.com>
24818 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
24819 CALL and NOTE_INSN_CALL_ARG_LOCATION.
24821 2017-04-07 Martin Liska <mliska@suse.cz>
24824 * config/aarch64/aarch64.c (aarch64_process_target_attr):
24825 Show error message instead of an ICE.
24827 2017-04-07 Martin Liska <mliska@suse.cz>
24830 * ipa-split.c (split_function): Add function part to a same comdat
24833 2017-04-07 Richard Biener <rguenther@suse.de>
24835 PR middle-end/80341
24836 * tree.c (get_unwidened): Also handle ! for_type case for
24838 * convert.c (do_narrow): Split out from ...
24839 (convert_to_integer_1): ... here. Do not pass final truncation
24840 type to get_unwidened for TRUNC_DIV_EXPR.
24842 2017-04-07 Richard Biener <rguenther@suse.de>
24844 * tree-affine.c (wide_int_ext_for_comb): Take type rather
24846 (aff_combination_const): Adjust.
24847 (aff_combination_scale): Likewise.
24848 (aff_combination_add_elt): Likewise.
24849 (aff_combination_add_cst): Likewise.
24850 (aff_combination_convert): Likewise.
24851 (add_elt_to_tree): Likewise. Remove unused argument.
24852 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
24854 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
24856 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
24858 * config/arm/arm.c (arm_default_short_enums): Use
24859 ARM_DEFAULT_SHORT_ENUMS.
24860 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
24862 2017-04-06 Jakub Jelinek <jakub@redhat.com>
24865 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
24866 members with redundant out-of-class redeclaration.
24868 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
24871 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
24872 * config/i386/i386.md (*zero_extendsidi2):
24873 Add (?*x,*x) and (?*v,*v) alternatives.
24875 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
24878 * config/i386/i386.c (ix86_expand_builtin)
24879 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
24880 mode from insn data. Convert operands to insn operand mode.
24881 Copy operands that don't satisfy insn predicate to a register.
24883 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
24885 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
24888 2017-04-06 Richard Biener <rguenther@suse.de>
24890 PR tree-optimization/80334
24891 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
24892 preserve alignment of accesses.
24894 2017-04-06 Richard Biener <rguenther@suse.de>
24896 PR tree-optimization/80262
24897 * tree-sra.c (build_ref_for_offset): Preserve address-space
24899 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
24900 Drop useless address-space information on MEM_REF offsets.
24902 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
24904 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
24906 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
24908 PR rtl-optimization/70703
24909 * ira-color.c (update_conflict_hard_regno_costs): Use
24910 HOST_WIDE_INT instead of long.
24912 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
24915 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
24916 not defined for x86_64 target. Add -mmmx target option when __SSE2__
24918 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
24919 for x86_64 target. Handle -m3dnowa option.
24921 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
24923 PR rtl-optimization/70703
24924 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
24925 (update_conflict_hard_regno_costs): Use long instead of unsigned
24926 arithmetic for cost calculation.
24928 2017-04-05 Jakub Jelinek <jakub@redhat.com>
24929 Bernd Edlinger <bernd.edlinger@hotmail.de>
24932 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
24935 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
24938 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
24939 ptr_mode with Pmode throughout.
24940 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
24941 into probe_stack_range and use DImode.
24943 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
24946 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
24947 call_eh_return is true.
24949 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24951 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
24952 Initialize last_match_fntype_index.
24954 2017-04-05 Jakub Jelinek <jakub@redhat.com>
24957 * tree-nvr.c: Include internal-fn.h.
24958 (pass_return_slot::execute): Ignore internal calls without
24961 2017-04-04 Jakub Jelinek <jakub@redhat.com>
24962 Richard Biener <rguenther@suse.de>
24965 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
24966 captures used multiple times, except for the last use.
24967 * generic-match-head.c: Include gimplify.h.
24969 2017-04-04 Jakub Jelinek <jakub@redhat.com>
24971 PR tree-optimization/79390
24972 * target.h (struct noce_if_info): Declare.
24973 * targhooks.h (default_noce_conversion_profitable_p): Declare.
24974 * target.def (noce_conversion_profitable_p): New target hook.
24975 * ifcvt.h (struct noce_if_info): New type, moved from ...
24976 * ifcvt.c (struct noce_if_info): ... here.
24977 (noce_conversion_profitable_p): Renamed to ...
24978 (default_noce_conversion_profitable_p): ... this. No longer
24980 (noce_try_store_flag_constants, noce_try_addcc,
24981 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
24982 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
24983 instead of noce_conversion_profitable_p.
24984 * config/i386/i386.c: Include ifcvt.h.
24985 (ix86_option_override_internal): Don't override
24986 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
24987 (ix86_noce_conversion_profitable_p): New function.
24988 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
24989 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
24990 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
24991 * doc/tm.texi: Regenerated.
24993 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24995 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
24998 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
25001 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
25002 instructions for small multiply cores.
25004 2017-04-04 Jeff Law <law@redhat.com>
25006 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
25008 (mips_expand_vec_perm_const): Initialize elements in orig_perm
25009 that are not set by the loop over the elements.
25011 2017-04-04 Jakub Jelinek <jakub@redhat.com>
25014 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
25015 int mode, convert_modes it to mode as unsigned, otherwise use
25016 lowpart_subreg to mode rather than SImode.
25017 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
25018 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
25019 Use DImode instead of SImode for the shift count operand.
25020 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
25023 2017-04-04 Richard Biener <rguenther@suse.de>
25025 PR middle-end/80281
25026 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
25027 arithmetic done for the negate or the plus. Simplify.
25028 (A - (-B) -> A + B): Likewise.
25029 * fold-const.c (split_tree): Make sure to not negate pointers.
25031 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
25033 PR rtl-optimization/60818
25034 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
25035 a compare of comparisons with the thing compared if this results
25036 in a different machine mode.
25038 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
25040 * alias.c (base_alias_check): Fix typo in comment.
25041 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
25042 * cgraphunit.c (symbol_table::compile): Likewise.
25043 * collect2.c (maybe_run_lto_and_relink): Likewise.
25044 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
25045 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
25046 * config/avr/avr.c (avr_map_op_t): Likewise.
25047 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
25048 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
25049 * config/epiphany/epiphany.md (movcc): Likewise.
25050 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
25051 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
25053 * config/mips/mips.c (mips_save_restore_reg): Likewise.
25054 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
25055 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
25056 * config/sh/sh.c (sh_rtx_costs): Likewise.
25057 * fold-const.c (fold_truth_andor): Likewise.
25058 * genautomata.c (collapse_flag): Likewise.
25059 * gengtype.h (struct type::u::s): Likewise.
25060 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
25061 * input.c (FORMAT_AMOUNT): Likewise.
25062 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
25063 (known_aggs_to_agg_replacement_list): Likewise.
25064 * ipa-inline-analysis.c: Likewise.
25065 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
25066 * ipa-polymorphic-call.c
25067 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
25068 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
25069 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
25071 * modulo-sched.c (apply_reg_moves): Likewise.
25072 * omp-expand.c (build_omp_regions_1): Likewise.
25073 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
25074 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
25075 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
25076 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
25077 * value-prof.c: Likewise.
25078 * var-tracking.c (val_reset): Likewise.
25080 2017-04-03 Richard Biener <rguenther@suse.de>
25082 PR tree-optimization/80275
25083 * fold-const.c (split_address_to_core_and_offset): Handle
25086 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
25088 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
25089 descriptors is at least equal to that of functions.
25091 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
25093 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
25095 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
25098 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
25099 (mov<IMOD4:mode>): New expander.
25100 (*mov<IMOD4:mode>_internal): New insn and split pattern.
25102 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
25104 PR rtl-optimization/79405
25105 * fwprop.c (propagations_left): New variable.
25106 (forward_propagate_into): Decrement it.
25107 (fwprop_init): Initialize it.
25108 (fw_prop): If the variable has reached zero, stop propagating.
25109 (fwprop_addr): Ditto.
25111 2017-03-31 Jakub Jelinek <jakub@redhat.com>
25114 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
25115 a FUNCTION_DECL, pass it as decl instead of origin to
25118 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
25120 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
25123 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
25126 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
25127 TARGET_VSX_SMALL_INTEGER.
25129 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25131 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
25132 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
25134 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
25136 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
25137 extraction from odd-numbered MSA register.
25139 2017-03-31 Jakub Jelinek <jakub@redhat.com>
25141 PR middle-end/80173
25142 * expmed.c (store_bit_field_1): Don't attempt to create
25143 a word subreg out of hard registers wider than word if they
25144 have HARD_REGNO_NREGS of 1 for their mode.
25146 PR middle-end/80163
25147 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
25148 conversions to integer types wider than word and pointer.
25151 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
25152 (rtx_equal_for_cselib_p): Pass 0 to it.
25153 * cselib.c (cselib_hasher::equal): Likewise.
25154 (rtx_equal_for_cselib_1): Add depth argument. If depth
25155 is 128, don't look up VALUE locs and punt. Increment
25156 depth in recursive calls when walking VALUE locs.
25158 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
25160 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
25161 (make_gcov_file_name): Use the canonical path name for generating
25163 (read_line): Fix handling of files with ascii null bytes.
25165 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
25167 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
25168 to initialise a vector register instead
25169 of using a const_int.
25171 2017-03-30 Jakub Jelinek <jakub@redhat.com>
25173 PR translation/80189
25174 * gimplify.c (omp_default_clause): Use %qs instead of %s in
25175 diagnostic messages.
25177 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
25180 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
25181 (dfp_diex_<mode>): Update mode of operand 1.
25182 * doc/extend.texi (dxex, dxexq): Document change to return type.
25183 (diex, diexq): Document change to argument type.
25185 2017-03-30 Martin Jambor <mjambor@suse.cz>
25188 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
25189 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
25190 it reflects the signature changes performed at the callee side.
25191 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
25192 to cgraph_build_function_type_skip_args.
25193 (build_function_decl_skip_args): Adjust call to the above function.
25195 2017-03-30 Jakub Jelinek <jakub@redhat.com>
25198 * config/i386/sse.md
25199 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
25200 register as dest whenever it is a MEM not rtx_equal_p to the
25201 corresponding dup operand, and when forcing into reg move the
25202 reg into the memory afterwards.
25203 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
25204 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
25205 for the force_reg mode.
25206 (avx512vl_vextractf128<mode>): Use register as dest either
25207 always when a MEM, or when it is a MEM not rtx_equal_p to the
25208 corresponding dup operand, or even not when it is a CONST_VECTOR
25209 depending on the mode and lo vs. hi.
25210 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
25212 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
25213 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
25214 Likewise. Require that operands[2] is even.
25215 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
25216 Remove extraneous parens. Require that operands[2] is a multiple
25218 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
25219 operands[0] is a MEM if <mask_applied>, the predicates/constraints
25220 disallow memory then.
25222 2017-03-30 Richard Biener <rguenther@suse.de>
25224 PR tree-optimization/77498
25225 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
25226 to non-constants over backedges.
25228 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
25230 PR rtl-optimization/80233
25231 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
25232 as last_combined_insn. Do not test for BARRIER_P separately.
25234 2017-03-29 Andreas Schwab <schwab@suse.de>
25237 * calls.c (prepare_call_address): Convert funexp to Pmode before
25238 copying to temp reg.
25240 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25242 PR tree-optimization/80158
25243 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
25244 Handle possible future case of more than one alternate
25246 (replace_rhs_if_not_dup): Likewise.
25247 (replace_one_candidate): Likewise.
25249 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
25251 PR rtl-optimization/80193
25252 * ira.c (ira): Do not check allocation for LRA.
25254 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
25256 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
25257 (nvptx_output_simt_exit): Declare.
25258 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
25259 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
25260 (init_softstack_frame): Move initialization of crtl->is_leaf to...
25261 (nvptx_declare_function_name): ...here. Emit declaration of local
25262 memory space buffer for omp_simt_enter insn.
25263 (nvptx_output_unisimt_switch): New.
25264 (nvptx_output_softstack_switch): New.
25265 (nvptx_output_simt_enter): New.
25266 (nvptx_output_simt_exit): New.
25267 * config/nvptx/nvptx.h (struct machine_function): New fields
25268 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
25269 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
25270 (UNSPECV_SIMT_EXIT): Ditto.
25271 (omp_simt_enter_insn): New insn.
25272 (omp_simt_enter): New expansion.
25273 (omp_simt_exit): New insn.
25274 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
25276 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
25277 (expand_GOMP_SIMT_ENTER_ALLOC): New.
25278 (expand_GOMP_SIMT_EXIT): New.
25279 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
25280 (GOMP_SIMT_ENTER_ALLOC): Ditto.
25281 (GOMP_SIMT_EXIT): Ditto.
25282 * target-insns.def (omp_simt_enter): New insn.
25283 (omp_simt_exit): Ditto.
25284 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
25286 (lower_rec_simd_input_clauses): Implement SIMT privatization.
25287 (lower_rec_input_clauses): Likewise.
25288 (lower_lastprivate_clauses): Handle SIMT privatization.
25290 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
25291 (ompdevlow_adjust_simt_enter): New.
25292 (find_simtpriv_var_op): New.
25293 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
25294 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
25296 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
25297 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
25298 (copy_decl_for_dup_finish): Ditto.
25300 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
25302 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
25305 * config/i386/i386.c (ix86_option_override_internal): Always
25306 allow -mpreferred-stack-boundary=3 for 64-bit targets.
25308 2017-03-28 Bin Cheng <bin.cheng@arm.com>
25310 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
25312 2017-03-28 Bin Cheng <bin.cheng@arm.com>
25314 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
25315 mark new edge's irreducible flag accordign to it.
25316 (vect_do_peeling): Check loop preheader edge's irreducible flag
25317 and pass it to function slpeel_add_loop_guard.
25319 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
25321 PR tree-optimization/80218
25322 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
25323 Update block frequencies and counts.
25325 2017-03-28 Richard Biener <rguenther@suse.de>
25327 PR tree-optimization/78644
25328 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
25329 of a simplification result we may not use it at all.
25331 2017-03-28 Richard Biener <rguenther@suse.de>
25334 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
25335 without arguments, generate default definition of a SSA name.
25337 2017-03-28 Richard Biener <rguenther@suse.de>
25339 PR middle-end/80222
25340 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
25341 TYPE_REF_CAN_ALIAS_ALL references.
25342 * fold-const.c (fold_indirect_ref_1): Likewise.
25344 2017-03-28 Martin Liska <mliska@suse.cz>
25347 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
25348 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
25350 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
25351 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
25353 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
25354 (EXTRA_SPECS): Define.
25355 (SUBTARGET_EXTRA_SPECS): Likewise.
25356 (SUBTARGET_CPP_SPEC): Likewise.
25357 * config/arc/elf.h (EXTRA_SPECS): Renamed to
25358 SUBTARGET_EXTRA_SPECS.
25359 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
25361 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
25363 * config/arc/simdext.md (vst64_insn): Update pattern.
25364 (vld32wh_insn): Likewise.
25365 (vld32wl_insn): Likewise.
25366 (vld64_insn): Likewise.
25367 (vld32_insn): Likewise.
25369 2017-03-28 Marek Polacek <polacek@redhat.com>
25372 * fold-const.c (fold_comparison): Use protected_set_expr_location
25373 instead of SET_EXPR_LOCATION.
25375 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
25377 * tree.c (add_expr): Avoid name lookup warning.
25379 2017-03-27 Jeff Law <law@redhat.com>
25381 PR tree-optimization/80216
25382 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
25383 function name. Limit recursion depth.
25384 (record_temporary_equivalences): Corresponding changes.
25386 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
25388 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
25391 2017-03-27 Jakub Jelinek <jakub@redhat.com>
25394 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
25396 * cfgcleanup.c (reg_note_cfa_p): New array.
25397 (insns_have_identical_cfa_notes): New function.
25398 (old_insns_match_p): Don't cross-jump in between /f
25399 and non-/f instructions. If both i1 and i2 are frame related,
25400 verify all CFA notes, their order and content.
25402 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
25405 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
25406 HImode and SImode with zero extend to DImode to one insn.
25407 (bswap<mode>2_extenddi): Likewise.
25408 (bswapsi2_extenddi): Likewise.
25409 (bswaphi2_extendsi): Likewise.
25410 (bswaphi2): Combine bswap HImode and SImode into one insn.
25411 Separate memory insns from swapping register.
25412 (bswapsi2): Likewise.
25413 (bswap<mode>2): Likewise.
25414 (bswaphi2_internal): Delete, no longer used.
25415 (bswapsi2_internal): Likewise.
25416 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
25417 store, and gpr<-gpr swap insns.
25418 (bswap<mode>2_store): Likewise.
25419 (bswaphi2_reg): Register only splitter, combine with the splitter.
25420 (bswaphi2 splitter): Likewise.
25421 (bswapsi2_reg): Likewise.
25422 (bswapsi2 splitter): Likewise.
25423 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
25424 the insns into load, store, and register/register insns.
25425 (bswapdi2_ldbrx): Likewise.
25426 (bswapdi2_load): Likewise.
25427 (bswapdi2_store): Likewise.
25428 (bswapdi2_reg): Likewise.
25430 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
25432 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
25433 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
25435 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
25438 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
25440 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
25441 special handling for target option conflicts between dform
25442 options (-mpower9-dform, -mpower9-dform-vector,
25443 -mpower9-dform-scalar) and -mno-direct-move.
25445 2017-03-27 Richard Biener <rguenther@suse.de>
25447 PR tree-optimization/80181
25448 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
25450 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
25452 * config/arc/predicates.md (move_double_src_operand): Replace the
25453 call to move_double_src_operand with a call to address_operand.
25455 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
25457 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
25458 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
25459 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
25461 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
25463 * config/arc/predicates.md (long_immediate_loadstore_operand):
25464 Consider scaled addresses cases.
25466 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
25468 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
25469 restored when in interrupt.
25470 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
25471 doesn't have delay slot.
25473 2017-03-27 Richard Biener <rguenther@suse.de>
25476 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
25477 inlined thunk clones.
25479 2017-03-27 Jakub Jelinek <jakub@redhat.com>
25482 * asan.c (instrument_derefs): Copy over last operand from
25483 original COMPONENT_REF to the new COMPONENT_REF with
25484 DECL_BIT_FIELD_REPRESENTATIVE.
25485 * ubsan.c (instrument_object_size): Likewise.
25487 2017-03-27 Richard Biener <rguenther@suse.de>
25489 PR tree-optimization/80170
25490 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
25491 sure DR/SCEV didnt fold in constants we do not see when looking
25492 at the reference base alignment.
25494 2017-03-27 Richard Biener <rguenther@suse.de>
25496 PR middle-end/80171
25497 * gimple-fold.c (fold_ctor_reference): Properly guard against
25498 NULL return value from canonicalize_constructor_val.
25500 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
25503 * config/i386/i386.c (ix86_expand_builtin)
25504 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
25505 flags reg setting and flags reg using instructions.
25506 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
25507 clobbering instructions to zero extend op2.
25509 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
25511 * doc/install.texi (Configuration) <--with-aix-soname>:
25512 Update link to AIX ld.
25514 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
25516 PR rtl-optimization/80160
25517 PR rtl-optimization/80159
25518 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
25519 reg_alternate_class into account.
25521 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
25524 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
25525 to consider in curr_insn_transform.
25527 2017-03-24 Jakub Jelinek <jakub@redhat.com>
25529 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
25530 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
25531 and emit_mode_inner.
25533 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25535 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
25536 argument to the overloaded builtin variants. Use the new flag to
25537 deprecate certain builtin variants.
25538 * config/s390/s390-builtin-types.def: Add new builtin types.
25539 * config/s390/s390-builtins.h: Support new flags field for
25540 overloaded builtins.
25541 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
25542 (s390_macro_to_expand): Enable vector float data type.
25543 (s390_cpu_cpp_builtins_internal): Indicate support of the new
25544 builtins by incrementing the __VEC__ version number.
25545 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
25547 (s390_resolve_overloaded_builtin): Emit error messages depending
25548 on the builtin flags.
25549 * config/s390/s390.c (s390_expand_builtin): Support additional
25550 flags argument. Change error message to match the messages
25551 emitted in s390-c.c.
25552 * config/s390/s390.md: New UNSPEC_* constants.
25553 (op_type): Add new instruction types.
25554 * config/s390/vecintrin.h: Add new builtins and test data class
25556 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
25557 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
25558 (VEC_INEXACT, VEC_NOINEXACT): New constants.
25559 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
25560 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
25561 ("vec_mergel<mode>"): V_HW -> VEC_HW.
25563 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
25564 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
25565 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
25566 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
25568 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
25569 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
25570 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
25571 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
25573 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
25574 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
25575 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
25576 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
25577 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
25578 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
25579 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
25581 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
25582 ("vec_scatter_element<V_HW_4:mode>_DI")
25583 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
25584 ("vec_fpint<mode>", "vflls")
25585 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
25586 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
25587 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
25588 ("*vec_cmphe<mode>_cc"): ... these.
25590 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
25591 mode constant instead of magic value.
25593 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25595 * config/s390/s390.c (s390_expand_vec_compare): Support other
25596 vector floating point modes than just V2DF.
25597 (s390_expand_vcond): Likewise.
25598 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
25599 (s390_cannot_change_mode_class): Prevent mode changes between TF
25600 and V1TF in vector registers.
25601 * config/s390/s390.md (DF, SF): New mode attributes.
25602 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
25603 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
25604 SFmode support for VRs.
25605 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
25607 (VFT, VF_HW): New mode iterators.
25608 (vw, sdx): New mode attributes.
25609 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
25610 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
25611 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
25612 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
25613 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
25614 also the new vector floating point modes. Renaming to ...
25616 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
25617 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
25618 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
25619 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
25620 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
25621 ("vec_unordered<mode>"): ... these.
25623 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
25624 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
25625 ("*vec_extendv2df"): New insn definitions.
25627 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25629 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
25630 ("mulditi3_2", "*muldi3_sign"): New patterns.
25631 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
25632 rename the pattern definition.
25634 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25636 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
25638 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
25640 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25642 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
25643 instruction if possible.
25644 * config/s390/vector.md (vec_halfnumelts): New mode
25646 ("*vec_vllezlf<mode>"): New pattern.
25648 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25650 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
25651 ("popcountv4si2", "popcountv2di2"): Rename to ...
25652 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
25653 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
25655 ("popcount<mode>2_vxe"): New pattern.
25657 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25659 * common/config/s390/s390-common.c (processor_flags_table): Add
25661 * config.gcc: Add arch12.
25662 * config/s390/driver-native.c (s390_host_detect_local_cpu):
25663 Default to arch12 for unknown CPU model numbers.
25664 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
25665 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
25666 PROCESSOR_max sanity check.
25667 * config/s390/s390-opts.h (enum processor_type): Add
25669 * config/s390/s390.c (processor_table): Add arch12.
25670 (s390_expand_builtin): Add check for B_VXE flag.
25671 (s390_issue_rate): Add PROCESSOR_ARCH12.
25672 (s390_get_sched_attrmask): Likewise.
25673 (s390_get_unit_mask): Likewise.
25674 (s390_sched_score): Enable z13 scheduling for arch12.
25675 (s390_sched_reorder): Likewise.
25676 (s390_sched_variable_issue): Likewise.
25677 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
25679 (s390_tune_attr): Use z13 scheduling also for arch12.
25680 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
25681 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
25682 (TARGET_VXE_P): New macros.
25683 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
25684 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
25685 * config/s390/s390.opt: Add arch12 as processor_type.
25687 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25689 * config/s390/s390.md
25690 ("fixuns_truncdddi2", "fixuns_trunctddi2")
25691 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
25692 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
25694 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
25695 Rename expanders to ...
25697 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
25698 ("fixuns_truncdddi2_emu"): ... these.
25700 ("fixuns_trunc<mode>si2_emu"): New expander.
25702 ("*fixuns_truncdfdi2_z13"): Rename to ...
25703 ("*fixuns_truncdfdi2_vx"): ... this.
25705 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25707 * config/s390/2964.md: Remove the single element vector compare
25708 instructions which are no longer used.
25709 * config/s390/s390.c (s390_select_ccmode): Remove handling of
25711 (s390_canonicalize_comparison): Remove handling of DFmode
25713 (s390_expand_vec_compare_scalar): Remove function.
25714 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
25715 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
25717 ("*cmp<mode>_ccs"): Add wfcdb instruction.
25719 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25721 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
25723 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
25724 will anyway by matched by mov<mode>_64dfp.
25726 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25728 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
25729 vlef/vstef. Add missing operand to vleif.
25731 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25733 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
25734 pair for all vector types with 64 bit elements.
25735 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
25736 * config/s390/vector.md (V_HW_64): ... here.
25737 (V_128_NOSINGLE): New mode iterator.
25738 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
25739 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
25740 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
25741 ("*vec_load_pairv2di"): Change to ...
25742 ("*vec_load_pair<mode>"): ... this one.
25744 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25746 * config/s390/constraints.md: Add comments.
25747 (jKK): Reject element sizes > 8 bytes.
25748 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
25750 * config/s390/s390.md: Add the s_operand checks formerly in
25751 s390_split_ok_p to various splitters where they are still
25753 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
25754 for 128 bit vectors. Plus two splitters.
25756 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25758 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
25761 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25764 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
25765 error if the boundary argument is not constant.
25767 2017-03-24 Jakub Jelinek <jakub@redhat.com>
25769 PR rtl-optimization/80112
25770 * loop-doloop.c (doloop_condition_get): Don't check condition
25771 if cmp isn't SET with IF_THEN_ELSE src.
25773 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25775 PR tree-optimization/80158
25776 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
25777 replacing a candidate statement, also replace it for the
25778 candidate's alternate interpretation.
25779 (replace_rhs_if_not_dup): Likewise.
25780 (replace_one_candidate): Likewise.
25782 2017-03-24 Richard Biener <rguenther@suse.de>
25784 PR tree-optimization/80167
25785 * graphite-isl-ast-to-gimple.c
25786 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
25788 (translate_isl_ast_to_gimple::get_rename): Likewise.
25790 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
25792 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
25793 handling of certain combinations of target options, including the
25794 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
25795 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
25797 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25800 * config/arm/arm.md (*load_multiple): Add reload_completed to
25801 matching condition.
25803 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25804 Richard Biener <rguenth@suse.de>
25806 PR tree-optimization/79908
25807 PR tree-optimization/80136
25808 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
25809 been cast away, gimplify_and_add suffices.
25811 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
25813 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
25815 2017-03-23 Richard Biener <rguenther@suse.de>
25817 PR tree-optimization/80032
25818 * gimplify.c (gimple_push_cleanup): Forced unconditional
25819 cleanups still have to go to the conditional_cleanups
25822 2017-03-22 Jakub Jelinek <jakub@redhat.com>
25824 PR tree-optimization/80072
25825 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
25827 (next_operand_entry_id): Change type to unsigned int.
25828 (sort_by_operand_rank): Make sure to return the right return value
25829 even if unsigned fields are bigger than INT_MAX.
25830 (struct oecount): Change cnt and id type to unsigned int.
25831 (oecount_hasher::equal): Formatting fix.
25832 (oecount_cmp): Make sure to return the right return value
25833 even if unsigned fields are bigger than INT_MAX.
25834 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
25837 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
25838 TREE_READONLY on result if writing it more than once.
25841 * doc/invoke.texi (-fsanitize=thread): Document that with
25842 -fnon-call-exceptions atomics are not able to throw
25846 * tsan.c: Include tree-eh.h.
25847 (instrument_builtin_call): Call maybe_clean_eh_stmt or
25848 maybe_clean_or_replace_eh_stmt where needed.
25849 (instrument_memory_accesses): Add cfg_changed argument.
25850 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
25851 if it returned true.
25852 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
25854 PR rtl-optimization/63191
25855 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
25856 wrapper function, moved the whole old content into ...
25857 (ix86_delegitimize_address_1): ... this. New inline function.
25858 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
25859 true as last argument instead of ix86_delegitimize_address.
25861 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
25863 * config/aarch64/aarch64.c (generic_branch_cost): Copy
25864 cortexa57_branch_cost.
25866 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
25868 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
25870 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
25873 * doc/md.texi (Constraints): Document wA constraint.
25874 * config/rs6000/constraints.md (wA): New.
25875 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
25876 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
25877 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
25878 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
25880 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
25883 * gimplify.c (is_oacc_declared): New function.
25884 (oacc_default_clause): Use it to set default flags for acc declared
25885 variables inside parallel regions.
25886 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
25887 declared variables.
25888 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
25889 declare attribute to any decl as necessary.
25891 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
25894 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
25895 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
25896 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
25897 (arm_arch_lpae): This.
25898 * config/arm/arm.c (arm_arch7ve): Rename into ...
25899 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
25900 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
25903 2017-03-22 Martin Liska <mliska@suse.cz>
25906 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
25907 error message instead of an ICE.
25909 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25911 * doc/extend.texi (6.11 Additional Floating Types): Revise.
25913 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
25915 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
25917 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
25920 2017-03-21 Martin Sebor <msebor@redhat.com>
25922 * doc/extend.texi: Use "cannot" instead of "can't."
25923 * doc/hostconfig.texi: Same.
25924 * doc/install.texi: Same.
25925 * doc/invoke.texi: Same.
25926 * doc/loop.texi: Same.
25927 * doc/md.texi: Same.
25928 * doc/objc.texi: Same.
25929 * doc/rtl.texi: Same.
25930 * doc/tm.texi: Same.
25931 * doc/tm.texi.in: Same.
25932 * doc/trouble.texi: Same.
25934 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
25937 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
25938 (collect_checksum_attributes): Set it.
25939 (die_checksum_ordered): Use it.
25941 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25943 PR tree-optimization/79908
25944 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
25945 change: For a VA_ARG whose LHS has been cast away, use
25946 force_gimple_operand to construct the side effects.
25948 2017-03-21 David Malcolm <dmalcolm@redhat.com>
25950 PR translation/80001
25951 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
25952 more amenable to translation.
25953 (oacc_loop_auto_partitions): Likewise.
25955 2017-03-21 Marek Polacek <polacek@redhat.com>
25956 Martin Sebor <msebor@redhat.com>
25958 PR tree-optimization/80109
25959 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
25960 on INTEGRAL_TYPE_P.
25962 2017-03-21 Jakub Jelinek <jakub@redhat.com>
25963 Segher Boessenkool <segher@kernel.crashing.org>
25966 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
25967 check reg_used_between_p between insn and one of succ or succ2
25968 depending on if succ is artificial insn not inserted into insn
25971 2017-03-21 Martin Liska <mliska@suse.cz>
25973 PR gcov-profile/80081
25974 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
25975 * doc/gcc.texi: Include gcov-dump stuff.
25976 * doc/gcov-dump.texi: New file.
25978 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
25980 PR rtl-optimization/79150
25981 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
25982 conditional jump, if the jump is the last insn of the loop.
25984 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25985 Richard Biener <rguenth@suse.de>
25987 PR tree-optimization/79908
25988 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
25989 been cast away, use force_gimple_operand to construct the side
25992 2017-03-21 Martin Liska <mliska@suse.cz>
25994 PR libfortran/79956
25995 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
25998 2017-03-21 Brad Spengler <spender@grsecurity.net>
26001 * plugin.c (htab_hash_plugin): New function.
26002 (add_new_plugin): Use it and adjust.
26003 (parse_plugin_arg_opt): Adjust.
26004 (init_one_plugin): Likewise.
26006 2017-03-21 Richard Biener <rguenther@suse.de>
26008 PR tree-optimization/80032
26009 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
26010 if set force the cleanup to happen unconditionally.
26011 (gimplify_target_expr): Push inserted clobbers with force_uncond
26012 to avoid them being removed by control-dependent DCE.
26014 2017-03-21 Richard Biener <rguenther@suse.de>
26016 PR tree-optimization/80122
26017 * tree-inline.c (copy_bb): Do not expans va-arg packs or
26018 va_arg_pack_len when the inlined call stmt requires pack
26020 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
26022 2017-03-21 Jakub Jelinek <jakub@redhat.com>
26025 * tsan.c (instrument_builtin_call): If the memory model argument
26026 is not a constant, assume it is valid.
26029 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
26032 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
26034 PR rtl-optimization/79910
26035 * combine.c (can_combine_p): Do not allow combining an I0 or I1
26036 if its dest is used by an insn before I2 (other than the combined
26037 insns themselves, which are properly handled already).
26039 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
26042 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
26044 * combine.c (record_used_regs): New static function.
26045 (try_combine): Handle situations where there is an additional
26046 instruction between I2 and I3 which needs to have a LOG_LINK
26050 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
26052 * combine.c (try_combine): Delete redundant i1 test. Call
26053 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
26055 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
26058 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
26059 alternatives 13/14.
26061 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26063 PR tree-optimization/80054
26064 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
26065 the optimization if a PHI or any of its arguments is not dominated
26066 by the candidate's basis. Use gphi* rather than gimple* as
26068 (replace_profitable_candidates): Clean up a gimple* variable that
26069 should be a gphi* variable.
26071 2017-03-20 Martin Sebor <msebor@redhat.com>
26074 * doc/extend.texi (attribute constructor): Document present limitation.
26076 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
26079 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
26080 __POWER9_VECTOR__ #ifdef control, change template definition to
26081 use Power9-specific built-in function.
26082 (vec_any_eq): Likewise.
26083 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
26084 to control outcomes from this test.
26085 (vector_ae_<mode>p): For VEC_F modes, likewise.
26087 2017-03-20 Ian Lance Taylor <iant@google.com>
26089 * config/i386/i386.c (ix86_function_regparm): Save an extra
26090 register for -fsplit-stack with DECL_STATIC_CHAIN.
26092 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
26095 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
26096 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
26098 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
26100 * config/riscv/riscv.c (riscv_print_operand): Use "fence
26102 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
26105 2017-03-20 Marek Polacek <polacek@redhat.com>
26108 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
26110 2017-03-20 Richard Biener <rguenther@suse.de>
26112 PR tree-optimization/80113
26113 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
26114 allocate extra SSA name for PHI def.
26115 (add_close_phis_to_outer_loops): Likewise.
26116 (add_close_phis_to_merge_points): Likewise.
26117 (copy_loop_close_phi_args): Likewise.
26118 (copy_cond_phi_nodes): Likewise.
26120 2017-03-20 Martin Liska <mliska@suse.cz>
26122 PR middle-end/79753
26123 * tree-chkp.c (chkp_build_returned_bound): Do not build
26124 returned bounds for a LHS that's not a BOUNDED_P type.
26126 2017-03-20 Martin Liska <mliska@suse.cz>
26130 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
26131 COMPLEX_CST and VECTOR_CST.
26133 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26136 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
26137 target operand. A new splitter adds the clobber statement in case
26138 the target operand is dead anyway.
26140 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
26142 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
26143 to age-old versions of binutils and glibc.
26145 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
26147 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
26149 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
26151 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
26153 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
26155 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
26156 requirement for binutils 2.13.
26158 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
26160 * combine.c (try_combine): Delete redundant i1 test. Call
26161 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
26163 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
26165 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
26166 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
26168 <riscv64-*-elf>: Re-arrange section
26169 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
26170 <riscv32-*-linux>: Likewise.
26171 <riscv64-*-elf>: Likewise
26172 <riscv64-*-linux>: Likewise.
26174 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
26177 * aarch64.opt(verbose-cost-dump): Fix typo.
26179 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
26182 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
26183 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
26185 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
26187 * reload.c (find_reloads): When reloading a nonoffsettable address,
26188 use RELOAD_OTHER for it and its address reloads.
26190 PR rtl-optimization/79910
26191 * combine.c (record_used_regs): New static function.
26192 (try_combine): Handle situations where there is an additional
26193 instruction between I2 and I3 which needs to have a LOG_LINK
26196 2017-03-17 Jeff Law <law@redhat.com>
26198 PR tree-optimization/71437
26199 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
26200 conditional in the hash table first.
26201 (vrp_dom_walker::before_dom_children): Extract condition from
26202 ASSERT_EXPR. Record condition, its inverion and any implied
26203 conditions as well.
26205 2017-03-17 Marek Polacek <polacek@redhat.com>
26206 Markus Trippelsdorf <markus@trippelsdorf.de>
26208 PR tree-optimization/80079
26209 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
26212 2017-03-17 Richard Biener <rguenther@suse.de>
26214 PR middle-end/80075
26215 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
26216 Properly verify the LHS before the RHS possibly claims to be
26218 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
26221 2017-03-17 Martin Jambor <mjambor@suse.cz>
26223 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
26224 (List of -O2 options): Likewise.
26225 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
26228 2017-03-17 Tom de Vries <tom@codesourcery.com>
26230 * gcov-dump.c (print_usage): Print bug_report_url.
26232 2017-03-17 Richard Biener <rguenther@suse.de>
26234 PR middle-end/80050
26235 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
26236 (parser::peek): Likewise.
26238 2017-03-17 Richard Biener <rguenther@suse.de>
26240 PR tree-optimization/80048
26241 * sese.c (free_sese_info): Properly release rename_map and
26242 copied_bb_map elements.
26244 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
26246 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
26247 Add linked-list forward and backlinks. Insert on
26248 construction, remove on destruction.
26249 (class pass_store_merging): Add m_stores_head field.
26250 (pass_store_merging::terminate_and_process_all_chains):
26251 Iterate over m_stores_head list.
26252 (pass_store_merging::terminate_all_aliasing_chains):
26254 (pass_store_merging::execute): Check for debug stmts first.
26255 Push new chains onto the m_stores_head stack.
26257 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
26260 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
26261 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
26262 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
26264 2017-03-16 Jeff Law <law@redhat.com>
26266 PR tree-optimization/71437
26267 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
26268 member function. Implementation moved into after_dom_children
26269 member function and into the threader's thread_outgoing_edges
26271 (dom_opt_dom_walker::after_dom_children): Simplify by moving
26272 some code into new thread_outgoing_edges.
26273 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
26274 definition. Simplify marker handling (do it here). Assume we always
26275 have the available expression and the const/copies tables.
26276 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
26278 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
26279 * tree-vrp.c (equiv_stack): No longer file scoped.
26280 (vrp_dom_walker): New class.
26281 (vrp_dom_walker::before_dom_children): New member function.
26282 (vrp_dom_walker::after_dom_children): Likewise.
26283 (identify_jump_threads): Setup domwalker. Use it rather than
26284 walking edges in a random order by hand. Simplify setup/finalization.
26285 (finalize_jump_threads): Remove.
26286 (vrp_finalize): Do not call identify_jump_threads here.
26287 (execute_vrp): Do it here instead and call thread_through_all_blocks
26290 PR tree-optimization/71437
26291 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
26293 (simplify_stmt_for_jump_threading): Add basic_block argument. All
26295 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
26296 (dom_opt_dom_walker::thread_across_edge): Remove
26297 handle_dominating_asserts argument. All callers changed.
26298 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
26299 changes. Remove calls to lhs_of_dominating_assert. Other
26300 uses of handle_dominating_asserts turn into unconditional code
26301 (simplify_control_stmt_condition_1): Likewise.
26302 (simplify_control_stmt_condition): Likewise.
26303 (thread_through_normal_block, thread_across_edge): Likewise.
26304 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
26305 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
26306 object if it is not an SSA_NAME.
26307 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
26308 before calling into the VRP specific simplifiers.
26309 (identify_jump_threads): Remove handle_dominating_asserts
26312 2017-03-16 Jakub Jelinek <jakub@redhat.com>
26315 * tree-diagnostic.c (default_tree_printer): No longer static.
26316 * tree-diagnostic.h (default_tree_printer): New prototype.
26318 2017-03-16 Tamar Christina <tamar.christina@arm.com>
26320 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
26321 Change ins into fmov.
26323 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26325 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
26326 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
26327 Use h_con constraint for operand 1.
26328 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
26329 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
26331 2017-03-15 Jeff Law <law@redhat.com>
26333 PR tree-optimization/71437
26334 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
26335 (record_temporary_equivalences): Use it.
26337 PR tree-optimization/71437
26338 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
26339 tree-ssa-scopedtables.
26340 (lookup_avail_expr, build_and_record_new_cond): Likewise.
26341 (record_conditions, record_cond, vuse_eq): Likewise.
26342 (record_edge_info): Adjust to API tweak of record_conditions.
26343 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
26344 (record_temporary_equivalences, optimize_stmt): Likewise.
26345 (eliminate_redundant_computations): Likewise.
26346 (record_equivalences_from_stmt): Likewise.
26347 * tree-ssa-scopedtables.c: Include options.h and params.h.
26348 (vuse_eq): New function, moved from tree-ssa-dom.c
26349 (build_and_record_new_cond): Likewise.
26350 (record_conditions): Likewise. Accept vector of conditions rather
26351 than edge_equivalence structure for first argument.
26352 for the first argument.
26353 (avail_exprs_stack::lookup_avail_expr): New member function, moved
26354 from tree-ssa-dom.c.
26355 (avail_exprs_stack::record_cond): Likewise.
26356 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
26357 from tree-ssa-dom.c.
26358 (avail_exprs_stack): Add new member functions lookup_avail_expr
26360 (record_conditions): Declare.
26362 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
26365 * lra-constraints.c (process_alt_operands): Increase reject for
26366 reloading an input/output operand.
26368 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
26371 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
26372 insns to convert from signed/unsigned char/short to IEEE 128-bit
26374 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
26376 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
26379 * config/i386/i386.c (ix86_vector_duplicate_value): Create
26380 subreg of inner mode for values already in registers.
26382 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
26384 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
26385 iteration reg is used after the loop.
26387 2017-03-14 Martin Sebor <msebor@redhat.com>
26389 PR tree-optimization/79800
26390 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
26391 precision in negative-positive range.
26392 (format_floating): Call non-const overload with adjusted precision.
26394 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
26397 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
26400 2017-03-14 Martin Sebor <msebor@redhat.com>
26402 PR middle-end/80020
26403 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
26404 * builtins.def (aligned_alloc): Use it.
26407 * Makefile.in (GTFILES): Add calls.c.
26408 * calls.c: Include "gt-calls.h".
26410 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
26412 PR rtl-optimization/79728
26413 * regs.h (struct target_regs): New field
26414 x_contains_allocatable_regs_of_mode.
26415 (contains_allocatable_regs_of_mode): New macro.
26416 * reginfo.c (init_reg_sets_1): Initialize it, and change
26417 contains_reg_of_mode so it includes global regs as well.
26418 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
26419 rather than contains_regs_of_mode.
26421 2017-03-14 Martin Liska <mliska@suse.cz>
26423 * doc/invoke.texi: Document options that can't be combined with
26424 -fcheck-pointer-bounds.
26426 2017-03-14 Martin Liska <mliska@suse.cz>
26428 PR middle-end/79831
26429 * doc/invoke.texi (-Wchkp): Document the option.
26431 2017-03-14 Martin Liska <mliska@suse.cz>
26433 * Makefile.in: Install gcov-dump.
26435 2017-03-14 Martin Liska <mliska@suse.cz>
26437 * multiple_target.c (expand_target_clones): Bail out for
26438 an invalid attribute.
26440 2017-03-14 Richard Biener <rguenther@suse.de>
26442 * alias.c (struct alias_set_entry): Pack properly.
26443 * cfgloop.h (struct loop): Likewise.
26444 * cse.c (struct set): Likewise.
26445 * ipa-utils.c (struct searchc_env): Likewise.
26446 * loop-invariant.c (struct invariant): Likewise.
26447 * lra-remat.c (struct cand): Likewise.
26448 * recog.c (struct change_t): Likewise.
26449 * rtl.h (struct address_info): Likewise.
26450 * symbol-summary.h (function_summary): Likewise.
26451 * tree-loop-distribution.c (struct partition): Likewise.
26452 * tree-object-size.c (struct object_size_info): Likewise.
26453 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
26454 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
26455 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
26456 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
26457 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
26458 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
26459 (struct _stmt_vec_info): Likewise.
26461 2017-03-14 Martin Liska <mliska@suse.cz>
26464 * multiple_target.c (create_dispatcher_calls): Check that
26465 a target can create a function dispatcher.
26467 2017-03-14 Martin Liska <mliska@suse.cz>
26470 * multiple_target.c (expand_target_clones): Drop local.local
26471 flag for default implementation.
26473 2017-03-14 Richard Biener <rguenther@suse.de>
26475 PR tree-optimization/80030
26476 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
26478 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
26480 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
26481 gcc_fallthrough() instead of __attribute__((fallthrough));
26483 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
26485 * doc/gcc.texi: Remove "up" link to (DIR).
26486 * doc/gccint.texi: Ditto.
26488 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
26490 * doc/install.texi (Specific) <avr>: Remove reference to
26493 2017-03-13 Jeff Law <law@redhat.com>
26495 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
26496 attribute rather than comments.
26498 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
26499 match_scratch operand is highest.
26501 2017-03-13 Martin Liska <mliska@suse.cz>
26503 PR middle-end/78339
26504 * ipa-pure-const.c (warn_function_noreturn): If the declarations
26505 is a CHKP clone, use original declaration.
26507 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
26509 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
26510 (arc_conditional_register_usage): Use a different allocation order
26511 when optimizing for size.
26512 * common/config/arc/arc-common.c (arc_option_optimization_table):
26513 Section anchors default on when optimizing for size.
26515 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
26517 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
26519 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
26521 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
26522 * config/arc/arc.md (cpu_facility): Add cd variant.
26523 (*movqi_insn): Add code density variant.
26524 (*movhi_insn): Likewise.
26525 (*movqi_insn): Likewise.
26526 (*addsi3_mixed): Likewise.
26527 (subsi3_insn): Likewise.
26529 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
26531 * config/arc/arc.md (movsi_cond_exec): Update constraint.
26533 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
26535 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
26536 expressions with MINUS and UNARY ops.
26538 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26541 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
26543 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
26544 between vec_select and vector argument.
26545 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
26546 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
26547 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
26548 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
26549 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
26550 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
26552 2017-03-13 Richard Biener <rguenther@suse.de>
26555 * params.def (vect-max-peeling-for-alignment): Fix typo.
26557 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
26559 * doc/install.texi (Specific) <mips-*-*>: Remove description of
26560 issue that only occurred with binutils below 2.18.
26562 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
26564 * doc/install.texi (Specific) <cris-axis-elf>: No longer
26565 refer to binutils 2.11/2.12 minimum.
26567 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
26569 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
26570 ftp.kernel.org and simplify binutils requirement.
26572 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
26574 * doc/invoke.texi (Warning Options): Fix spelling of link-time
26576 (Optimize Options): Ditto. Also remove redundancy.
26578 2017-03-10 David Malcolm <dmalcolm@redhat.com>
26580 PR translation/79848
26581 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
26583 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
26584 to G_ to avoid double translation.
26586 2017-03-10 David Malcolm <dmalcolm@redhat.com>
26588 PR translation/79923
26589 * auto-profile.c (get_combined_location): Convert leading
26590 character of diagnostics to lower case and remove trailing period.
26591 (read_profile): Likewise for various diagnostics.
26592 * config/arm/arm.c (arm_option_override): Remove trailing period
26593 from various diagnostics.
26594 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
26595 (msp430_expand_delay_cycles): Likewise.
26597 2017-03-10 David Malcolm <dmalcolm@redhat.com>
26600 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
26601 full command-line argument, rather than just "str".
26602 (aarch64_validate_march): Likewise.
26603 (aarch64_validate_mtune): Likewise.
26605 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
26607 PR rtl-optimization/78911
26608 * lra-assigns.c (must_not_spill_p): New function.
26609 (spill_for): Use it.
26611 2017-03-10 Jakub Jelinek <jakub@redhat.com>
26613 PR tree-optimization/79981
26614 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
26615 ATOMIC_COMPARE_EXCHANGE ifn result.
26616 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
26617 IFN_ATOMIC_COMPARE_EXCHANGE.
26619 2017-03-10 David Malcolm <dmalcolm@redhat.com>
26622 * opts.c (parse_sanitizer_options): Add missing question mark to
26623 "did you mean" message.
26625 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26627 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
26629 (VMULEUH_UNS): Likewise.
26630 (VMULOUB_UNS): Likewise.
26631 (VMULOUH_UNS): Likewise.
26632 * config/rs6000/rs6000.c (builtin_function_type): Remove
26633 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
26635 2017-03-10 David Malcolm <dmalcolm@redhat.com>
26638 * read-rtl-function.c (function_reader::read_rtx_operand): Update
26639 x with result of extra_parsing_for_operand_code_0.
26640 (function_reader::extra_parsing_for_operand_code_0): Convert
26641 return type from void to rtx, returning x. When reading
26642 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
26643 larger size containing struct block_symbol.
26645 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
26647 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
26648 -mfloat128-hardware without -m64.
26650 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
26653 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
26654 entries to the case statement that marks unsigned arguments to
26655 overloaded functions.
26657 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
26659 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
26660 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
26662 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
26665 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
26666 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
26668 2017-03-10 Martin Liska <mliska@suse.cz>
26672 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
26673 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
26676 2017-03-10 Olivier Hainque <hainque@adacore.com>
26678 * tree-switch-conversion (array_value_type): Start by resetting
26679 candidate type to it's main variant.
26681 2017-03-10 Jakub Jelinek <jakub@redhat.com>
26683 PR rtl-optimization/79909
26684 * combine.c (try_combine): Use simplify_replace_rtx on individual
26685 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
26686 of the whole CALL_INSN_FUNCTION_USAGE.
26688 PR tree-optimization/79972
26689 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
26690 get_range_info on SSA_NAMEs. Formatting fixes.
26692 2017-03-10 Richard Biener <rguenther@suse.de>
26693 Jakub Jelinek <jakub@redhat.com>
26695 PR tree-optimization/77975
26696 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
26697 edge to be constant.
26698 (get_val_for): For constant x return it. Formatting fix.
26699 (loop_niter_by_eval): Avoid pointless looping if the next iteration
26700 would use the same bases as the current one.
26702 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26704 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
26705 instead of vec_select for V1TImode.
26706 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
26708 (VSX_LE_128): Add V1TI to this mode iterator.
26709 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
26710 (*vsx_le_perm_store_<mode>): Likewise.
26711 (pre-reload splitter for VSX stores): Likewise.
26712 (post-reload splitter for VSX stores): Likewise.
26713 (*vsx_xxpermdi2_le_<mode>): Likewise.
26714 (*vsx_lxvd2x2_le_<mode>): Likewise.
26715 (*vsx_stxvd2x2_le_<mode>): Likewise.
26717 2017-03-09 Michael Eager <eager@eagercon.com>
26719 Correct failures with --enable-checking=yes,rtl.
26721 * config/microblaze/microblaze.c (microblaze_expand_shift):
26722 Replace GET_CODE test with CONST_INT_P and INTVAL test with
26723 test for const0_rtx.
26724 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
26725 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
26727 2017-03-09 Richard Biener <rguenther@suse.de>
26729 PR tree-optimization/79977
26730 * graphite-scop-detection.c (scop_detection::merge_sese):
26731 Handle the case of extra exits to blocks dominating the entry.
26733 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
26735 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
26738 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
26740 PR rtl-optimization/79949
26741 * lra-constraints.c (process_alt_operands): Check memory when
26742 trying to predict a cycle. Print about the overall increase.
26744 2017-03-09 Richard Biener <rguenther@suse.de>
26746 PR middle-end/79971
26747 * gimple-expr.c (useless_type_conversion_p): Preserve
26748 TYPE_SATURATING for fixed-point types.
26750 2017-03-09 Richard Biener <rguenther@suse.de>
26753 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
26754 alignment of BLKmode params.
26756 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26759 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
26760 (VALL_NO_V2Q): Likewise.
26762 * config/aarch64/aarch64-simd.md
26763 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
26765 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
26766 VALL_NO_V2Q mode iterator.
26767 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
26769 2017-03-09 Martin Liska <mliska@suse.cz>
26771 PR tree-optimization/79631
26772 * tree-chkp-opt.c (chkp_is_constant_addr): Call
26773 tree_int_cst_sign_bit just for INTEGER constants.
26775 2017-03-09 Martin Liska <mliska@suse.cz>
26779 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
26782 2017-03-09 Marek Polacek <polacek@redhat.com>
26785 * tree.c (inchash::add_expr): Handle TREE_VEC.
26787 2017-03-09 Martin Liska <mliska@suse.cz>
26790 (chkp_narrow_size_and_offset): New function.
26791 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
26792 (void chkp_parse_bit_field_ref): New function.
26793 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
26794 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
26796 2017-03-09 Martin Liska <mliska@suse.cz>
26799 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
26800 (chkp_find_bounds_1): Remove gcc_unreachable.
26802 2017-03-09 Jakub Jelinek <jakub@redhat.com>
26805 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
26806 BUILT_IN_SYNC*, determine the access type from the size suffix and
26807 always build a MEM_REF with that type. Handle forgotten
26808 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
26811 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
26812 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
26813 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
26814 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
26815 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
26816 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
26817 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
26818 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
26819 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
26820 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
26821 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
26822 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
26823 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
26824 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
26825 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
26826 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
26827 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
26828 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
26829 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
26830 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
26831 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
26832 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
26833 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
26834 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
26835 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
26836 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
26837 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
26838 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
26839 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
26840 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
26841 definitions outside of __OPTIMIZE__ guarded section.
26844 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
26845 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
26846 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
26847 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
26850 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26852 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
26853 ("vfenez<mode>"): Add missing constraints.
26855 2017-03-08 Martin Sebor <msebor@redhat.com>
26858 * config/nds32/nds32.c (nds32_option_override):
26859 Fix misspelled diagnostic.
26861 2017-03-08 Jakub Jelinek <jakub@redhat.com>
26864 * gimplify.c (gimplify_omp_for): Replace index var in outer
26865 taskloop statement with an artificial variable and add
26866 OMP_CLAUSE_PRIVATE clause for it.
26868 2017-03-08 Richard Biener <rguenther@suse.de>
26870 PR tree-optimization/79955
26871 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
26872 for accesses that are completely outside of the variable.
26874 2017-03-08 Andrew Haley <aph@redhat.com>
26876 PR tree-optimization/79943
26877 * tree-ssa-loop-split.c (compute_new_first_bound): When
26878 calculating the new upper bound, (END-BEG) should be added, not
26881 2017-03-08 Jakub Jelinek <jakub@redhat.com>
26883 * config/avr/avr.md (setmemhi): Make sure match_dup
26884 operand number comes before match_scratch.
26886 2017-03-08 Richard Biener <rguenther@suse.de>
26888 PR tree-optimization/79920
26889 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
26890 with ncopies == 1 to ...
26891 (vect_transform_slp_perm_load): ... here. Properly compute
26892 all element loads by iterating VF times over the group. Do
26893 not handle ncopies (computed in a broken way) in
26894 vect_create_mask_and_perm.
26896 2017-03-08 Jakub Jelinek <jakub@redhat.com>
26899 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
26900 is a uniform vector, use uniform_vector_p return value instead of
26901 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
26903 2017-03-07 Marek Polacek <polacek@redhat.com>
26905 PR middle-end/79809
26906 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
26907 (alloca_call_type): Likewise.
26909 2017-03-07 Martin Liska <mliska@suse.cz>
26911 * gcov.c (process_args): Put comment to correct location.
26913 2017-03-07 Martin Liska <mliska@suse.cz>
26915 PR middle-end/68270
26916 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
26917 Use array_at_struct_end_p instead of DECL_CHAIN (field).
26918 (chkp_narrow_bounds_for_field): Likewise.
26919 (chkp_parse_array_and_component_ref): Pass one more argument to
26922 2017-03-07 Richard Biener <rguenther@suse.de>
26924 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
26927 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
26929 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
26930 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
26932 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26935 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
26936 to end of description.
26937 (PARAM_MAX_STORES_TO_MERGE): Likewise.
26939 2017-03-07 Jakub Jelinek <jakub@redhat.com>
26941 PR rtl-optimization/79901
26942 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
26944 (*avx512f_<code><mode>3<mask_name>): ... this.
26945 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
26946 iterator instead of VI8_AVX2_AVX512BW.
26948 PR rtl-optimization/79901
26949 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
26950 min/max expander, expand it using expand_vec_cond_expr.
26953 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
26956 2017-03-06 Jakub Jelinek <jakub@redhat.com>
26959 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
26960 to void * for PCH reasons.
26961 * dwarf2out.c (output_loc_operands, output_die): Cast
26962 v.val_vec.array to unsigned char *.
26964 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
26967 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
26970 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
26972 PR rtl-optimization/79571
26973 * lra-constraints.c (process_alt_operands): Calculate static
26974 reject and subtract it from overall when only addresses will be
26977 2017-03-06 Julia Koval <julia.koval@intel.com>
26980 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
26981 incoming stack boundary to 128 for 64-bit targets.
26983 2017-03-06 Richard Biener <rguenther@suse.de>
26985 PR tree-optimization/79894
26986 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
26987 to NULL after folding it.
26989 2017-03-06 Richard Biener <rguenther@suse.de>
26991 PR tree-optimization/79824
26992 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
26993 check disabling peeling for gaps.
26995 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
26997 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
26998 attributes): Document gettimeofday.
27000 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
27002 * config/s390/s390.c (s390_option_override_internal): Set
27003 PARAM_MIN_VECT_LOOP_BOUND
27005 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
27007 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
27008 * config/s390/s390.md: Likewise.
27010 2017-03-06 Jakub Jelinek <jakub@redhat.com>
27013 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
27014 (<avx2_avx512>_perm<mode>): Rename to ...
27015 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
27017 (<avx512>_perm<mode>_mask): Rename to ...
27018 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
27020 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
27021 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
27022 instead of VI8F_256_512.
27023 (avx512f_perm<mode>): New define_expand.
27024 (avx512f_perm<mode>_mask): Likewise.
27025 (avx512f_perm<mode>_1<mask_name>): New define_insn.
27026 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
27028 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
27030 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
27031 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
27033 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
27035 2017-03-06 Martin Liska <mliska@suse.cz>
27038 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
27039 when having a SSA NAME w/o VAR_DECL assigned to it.
27041 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
27043 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
27044 msa_dpsub_<su>_d): Fix MODE for vec_select.
27046 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
27048 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
27050 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
27052 2017-03-06 Richard Biener <rguenther@suse.de>
27054 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
27055 * plugin.c (register_plugin_info): Likewise.
27056 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
27058 2017-03-05 Jakub Jelinek <jakub@redhat.com>
27060 * config/i386/sse.md (sse_storehps, sse_storelps,
27061 avx_<castmode><avxsizesuffix>_<castmode>,
27062 avx512f_<castmode><avxsizesuffix>_<castmode>,
27063 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
27064 in condition that at least one operand is not a MEM.
27066 2017-03-03 Jakub Jelinek <jakub@redhat.com>
27068 PR middle-end/79805
27069 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
27070 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
27072 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
27073 gimple_call_nothrow_p flag based on whether original builtin can throw.
27074 If it can, emit following stmts on the fallthrough edge.
27075 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
27076 don't create new bb if inserting just debug stmts on the edge, try to
27077 insert them on the fallthru bb or just reset debug stmts.
27079 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
27082 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
27083 restore recog_data (including the operand rtxes inside it) around
27084 the call to get_insn_template.
27086 2017-03-03 Martin Sebor <msebor@redhat.com>
27088 PR tree-optimization/79699
27089 * context.c (context::~context): Free MPFR caches to avoid
27090 a memory leak on program exit.
27092 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27094 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
27095 Use wide_int::ulow () instead of .elt (0).
27097 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
27099 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
27100 (*pushxf): Limit oF constraint to 32bit targets and add oC
27101 constraint for 64bit targets.
27102 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
27103 (*pushdf): Change rmF constraint to rmC.
27105 2017-03-03 Martin Liska <mliska@suse.cz>
27107 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
27108 Remove unused variable.
27110 2017-03-03 Jakub Jelinek <jakub@redhat.com>
27113 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
27114 is a memory operand, increase num_memory.
27115 (ix86_expand_args_builtin): Likewise.
27117 2017-03-03 Jan Hubicka <jh@suse.cz>
27120 * ipa-devirt.c (maybe_record_node): Properly handle
27121 __cxa_pure_virtual visibility.
27123 2017-03-03 Martin Liska <mliska@suse.cz>
27125 PR tree-optimization/79803
27126 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
27128 (pass_loop_prefetch::execute): Disabled optimization if an
27129 assumption about L1 cache size is not met.
27131 2017-03-03 Martin Liska <mliska@suse.cz>
27133 PR rtl-optimization/79574
27134 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
27135 (hash_scan_set): Likewise.
27136 (dump_hash_table): Likewise.
27137 (hoist_code): Likewise.
27139 2017-03-03 Richard Biener <rguenther@suse.de>
27141 * fixed-value.c (fixed_from_string): Restore use of elt (1)
27142 in place of uhigh ().
27143 (fixed_convert_from_real): Likewise.
27145 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
27148 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
27150 2017-03-03 Richard Biener <rguenther@suse.de>
27152 PR middle-end/79818
27153 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
27154 TYPE_OVERFLOW_UNDEFINED check.
27156 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27158 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
27160 (vector_ae_<mode>_p): Likewise.
27161 (vector_nez_<mode>_p): Likewise.
27162 (vector_ne_v2di_p): Likewise.
27163 (vector_ae_v2di_p): Likewise.
27164 (vector_ne_<mode>_p): Likewise.
27165 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
27167 (vsx_tsqrt<mode>2_fe): Likewise.
27169 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
27172 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
27174 2017-03-02 Jakub Jelinek <jakub@redhat.com>
27176 PR rtl-optimization/79780
27177 * cprop.c (one_cprop_pass): When second and further conditional trap
27178 in a single basic block is turned into an unconditional trap, turn it
27179 into a deleted note to avoid RTL verification failures.
27181 2017-03-02 Richard Biener <rguenther@suse.de>
27183 * fold-const.c (const_binop): Use ulow () instead of elt (0).
27185 2017-03-02 Richard Biener <rguenther@suse.de>
27187 PR tree-optimization/79345
27189 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
27190 param and abort the walk, returning -1 if it is hit.
27191 (walk_aliased_vdefs): Take a limit param and pass it on.
27192 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
27193 defaulting to 0 and return a signed int.
27194 * tree-ssa-uninit.c (struct check_defs_data): New struct.
27195 (check_defs): New helper.
27196 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
27197 about uninitialized memory.
27198 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
27199 bogus uninitialized warning.
27200 (fixed_convert_from_real): Likewise.
27202 2017-03-02 Bin Cheng <bin.cheng@arm.com>
27204 PR tree-optimization/66768
27205 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
27206 iv_use if base object can't be determined.
27208 2017-03-02 Jakub Jelinek <jakub@redhat.com>
27210 PR tree-optimization/79345
27211 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
27212 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
27213 (get_pattern_stats): Initialize it.
27214 * genemit.c (gen_expand): Verify match_scratch numbers come after
27215 match_operand/match_dup numbers.
27216 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
27217 match_scratch numbers.
27218 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
27220 * config/s390/s390.md (trunctdsd2): Likewise.
27222 2017-03-02 Richard Biener <rguenther@suse.de>
27224 * wide-int.h (wide_int_storage::operator=): Implement in terms
27227 2017-03-02 Richard Biener <rguenther@suse.de>
27229 PR tree-optimization/79777
27230 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
27231 the to insert expression to sth existing.
27233 2017-03-01 Martin Sebor <msebor@redhat.com>
27235 PR middle-end/79692
27236 * gimple-ssa-sprintf.c
27237 (directive::known_width_and_precision): New function.
27238 (format_integer): Use it.
27239 (get_mpfr_format_length): Consider the full range of precision
27240 when computing %g output with the # flag. Set the likely byte
27241 count to 3 rather than 1 when precision is indeterminate.
27242 (format_floating): Correct the lower bound of precision.
27244 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27246 * doc/invoke.texi: Document default code model for 64-bit Linux.
27248 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
27251 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
27252 udiv rather than div since input pattern is unsigned.
27254 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
27256 * config/i386/i386.c (print_reg): Warn for values of
27257 unsupported size in integer register.
27259 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
27262 * config/rs6000/predicates.md (current_file_function_operand): Do
27263 not allow self calls to be local if the function is replaceable.
27265 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
27268 * config/rs6000/altivec.h (vec_ctz and others): Change the
27269 preprocessor macro that controls conditional compilation from
27270 _ARCH_PWR9 to __POWER9_VECTOR__.
27271 (vec_all_ne): Change parameterization of __altivec_scalar_pred
27272 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
27273 control (instead of _ARCH_PWR9 control) so that template
27274 definition uses power9-specific function.
27275 (vec_any_eq): Likewise.
27276 (vec_all_ne): Change macro definition to use a power9-specific
27277 expansion under #ifdef __POWER9_VECTOR__ control (instead of
27278 _ARCH_PWR9 control).
27279 (vec_any_eq) Likewise.
27280 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
27281 expansion for CMPNEF to remove support for xvcmpnesp instruction.
27282 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
27283 support for xvcmpnedp instruction.
27284 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
27285 macro expansion so that Power9 implementation of vec_all_ne does
27286 not use the AltiVec predicate framework.
27287 (VCMPNEH_P): Likewise.
27288 (VCMPNEW_P): Likewise.
27289 (VCMPNED_P): Likewise.
27290 (VCMPNEFP_P): Likewise.
27291 (VCMPNEDP_P): Likewise.
27292 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
27293 implementation of vec_any_eq to not use AltiVec predicate
27295 (VCMPAEH_P): Likewise.
27296 (VCMPAEW_P): Likewise.
27297 (VCMPAED_P): Likewise.
27298 (VCMPAEFP_P): Likewise.
27299 (VCMPAEDP_P): Likewise.
27300 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
27301 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
27302 not use the AltiVec predicate framework.
27303 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
27304 of vec_any_eq to not use AltiVec predicate framework.
27305 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
27306 support for predefined __POWER9_VECTOR__ macro to indicate that
27307 Power9 instruction selection is enabled.
27308 (altivec_overloaded_builtins): Remove extraneous
27309 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
27310 function argument types RS6000_BTI_bool_V16QI and
27311 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
27312 entry for overloaded function argument types RS6000_BTI_bool_V4SI
27313 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
27314 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
27315 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
27316 Power9 for implementations of vec_cmpne. Change the signature for
27317 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
27318 (representing vec_all_ne) to remove the previously described first
27319 argument of type RS6000_BTI_INTSI, as this was an artifact of
27320 reliance on the AltiVec predicate framework, which is no longer
27321 used in the implementation of these functions. Add
27322 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
27323 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
27324 since, unlike the AltiVec predicate framework implementation, we
27325 do not share function descriptors between vec_alle and vec_anyeq.
27326 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
27327 set of modes that receive special treatment even when
27328 TARGET_P9_VECTOR is true. The special treatment emits code that
27329 does not depend on Power9 instructions.
27330 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
27331 define_expand to not rely on AltiVec predicate framework.
27332 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
27334 (vector_ne_v2di_p): Change this define_expand to not rely on
27335 AltiVec predicate framework.
27336 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
27338 (vector_ne_<mode>_p): Change this define_expand to not rely on
27339 AltiVec predicate framework.
27340 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
27342 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
27343 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
27344 define_insn pattern.
27345 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
27346 define_insn pattern because the xvcmpne<VSs>. instruction is not
27348 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
27349 instruction is not supported.
27351 2017-03-01 Jakub Jelinek <jakub@redhat.com>
27353 * config/nvptx/nvptx.c: Include intl.h.
27355 2017-03-01 Martin Jambor <mjambor@suse.cz>
27358 * ipa-prop.h (ipa_bits): Removed field known.
27359 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
27360 to pointers. Adjusted their comments to warn about their sharing.
27361 (ipcp_transformation_summary): Change bits to a vector of pointers.
27362 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
27363 (ipa_get_ipa_bits_for_value): Declare.
27364 * tree-vrp.h (value_range): Mark as GTY((for_user)).
27365 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
27366 (ipa_bits_hash_table): Likewise.
27367 (ipa_vr_ggc_hash_traits): Likewise.
27368 (ipa_vr_hash_table): Likewise.
27369 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
27370 being pointers and vr_known being removed.
27371 (ipa_set_jf_unknown): Likewise.
27372 (ipa_get_ipa_bits_for_value): New function.
27373 (ipa_set_jfunc_bits): Likewise.
27374 (ipa_get_value_range): New overloaded functions.
27375 (ipa_set_jfunc_vr): Likewise.
27376 (ipa_compute_jump_functions_for_edge): Use the above functions to
27377 construct bits and vr parts of jump functions.
27378 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
27379 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
27381 (ipcp_grow_transformations_if_necessary): Also allocate
27382 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
27384 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
27385 them. Fix too long lines.
27386 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
27387 vr_known being removed.
27388 (ipa_read_jump_function): Use new setter functions to construct bits
27389 and vr parts of jump functions or set them to NULL.
27390 (write_ipcp_transformation_info): Adjust for bits being pointers.
27391 (read_ipcp_transformation_info): Likewise.
27392 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
27394 Include gt-ipa-prop.h.
27395 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
27397 (ipcp_store_bits_results): Likewise.
27398 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
27399 Do not write to existing jump functions but use a temporary instead.
27401 2017-03-01 Jakub Jelinek <jakub@redhat.com>
27404 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
27405 attempt to use its first operand as BIT_FIELD_REF base.
27407 2017-03-01 Richard Biener <rguenther@suse.de>
27409 PR middle-end/79721
27410 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
27411 interpolating formula in wrapping arithmetic.
27412 (chrec_apply): Convert chrec_evaluate return value to wanted type.
27414 2017-03-01 Jakub Jelinek <jakub@redhat.com>
27416 PR tree-optimization/79734
27417 * tree-vect-generic.c (expand_vector_condition): Optimize
27418 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
27419 Handle VEC_COND_EXPR where comparison has different inner width from
27420 type's inner width.
27422 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
27424 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
27425 markup, and similar issues. Remove @opindex entries for things
27426 that aren't options. Add missing -mmpy-option entries.
27428 2017-02-28 Jakub Jelinek <jakub@redhat.com>
27430 PR tree-optimization/79737
27431 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
27432 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
27433 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
27434 instead of byte_size. Formatting fix.
27435 (shift_bytes_in_array_right): Formatting fix.
27437 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
27440 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
27441 condition on optimize for the leaf function test.
27443 2017-02-28 Martin Liska <mliska@suse.cz>
27446 * read-rtl-function.c (function_reader::handle_unknown_directive):
27447 Bail out when one uses -flto.
27449 2017-02-28 Martin Liska <mliska@suse.cz>
27451 * common.opt: Replace space with tabular for options of <number>
27453 * config/i386/i386.opt: Show <number> value for
27454 -mlarge-data-threshold.
27455 * opts.c (print_filtered_help): Do not display number in hexadecimal
27458 2017-02-28 Martin Liska <mliska@suse.cz>
27460 * common.opt: Fix --help=option -Q for options which are of
27463 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
27465 * config/i386/i386.c (print_reg): Error out for values
27466 of 8-bit size in invalid integer register.
27468 2017-02-28 Martin Sebor <msebor@redhat.com>
27470 PR tree-optimization/79691
27471 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
27473 2017-02-28 Jakub Jelinek <jakub@redhat.com>
27476 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
27477 gcc_unreachable with output_operand_lossage.
27479 2017-02-28 Richard Biener <rguenther@suse.de>
27481 PR tree-optimization/79740
27482 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
27484 (visit_nary_op): Insert the nary into the hashtable if we
27485 pattern-matched sth.
27486 * tree-ssa-pre.c (eliminate_insert): Robustify.
27488 2017-02-28 Richard Biener <rguenther@suse.de>
27490 PR middle-end/79731
27491 * fold-const.c (decode_field_reference): Reject out-of-bound
27494 2017-02-28 Jakub Jelinek <jakub@redhat.com>
27496 * config/i386/i386.c: Include intl.h.
27497 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
27498 instead of just cond ? "..." : "...".
27499 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
27500 * coverage.c (read_counts_file): Likewise.
27501 * omp-offload.c: Include intl.h.
27502 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
27503 of just cond ? "..." : "...".
27504 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
27505 of just cond ? "..." : "...".
27507 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
27510 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
27512 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
27513 'tune for' CPU name.
27514 * config/arm/arm-cpu-data.h: Regenerated.
27516 2017-02-28 Richard Biener <rguenther@suse.de>
27518 PR tree-optimization/79732
27519 * tree-inline.c (expand_call_inline): Do not shadow var.
27521 2017-02-28 Richard Biener <rguenther@suse.de>
27523 PR tree-optimization/79723
27524 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
27525 address-space properly.
27527 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
27529 * doc/optinfo.texi (Optimization groups): Fix option used for
27531 * doc/invoke.texi (-fopt-info): Document "omp".
27532 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
27533 (OPTGROUP_ALL): Add OPTGROUP_OMP.
27534 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
27535 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
27536 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
27538 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
27540 * dumpfile.c (optgroup_options): Instead of "openmp", associate
27541 OPTGROUP_OMP with "omp".
27543 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
27546 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
27547 for arithmetic shift of unsigned V2DI.
27549 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
27551 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
27552 arc/linux.h headers.
27553 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
27554 (LINK_SPEC): Likewise.
27555 (ARC_TLS_EXTRA_START_SPEC): Likewise.
27556 (EXTRA_SPECS): Likewise.
27557 (STARTFILE_SPEC): Likewise.
27558 (ENDFILE_SPEC): Likewise.
27559 (LIB_SPEC): Likewise.
27560 (TARGET_SDATA_DEFAULT): Likewise.
27561 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
27562 (MULTILIB_DEFAULTS): Likewise.
27563 (DWARF2_UNWIND_INFO): Likewise.
27564 * config/arc/big.h: New file.
27565 * config/arc/elf.h: Likewise.
27566 * config/arc/linux.h: Likewise.
27567 * config/arc/t-uClibc: Remove.
27569 2017-02-27 Bin Cheng <bin.cheng@arm.com>
27571 PR tree-optimization/77536
27572 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
27573 (tree_transform_and_unroll_loop): Use above function to compute the
27574 estimated niter of unrolled loop and use it when scaling profile.
27575 Also use count info rather than frequency if it's non-zero.
27576 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
27577 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
27578 (vect_transform_loop): Call above function.
27580 2017-02-27 Richard Biener <rguenther@suse.de>
27582 PR tree-optimization/45397
27583 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
27584 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
27585 (visit_nary_op): Add pattern matching for CSEing sign-changed
27586 or truncated operations with wider ones.
27588 2017-02-27 Richard Biener <rguenther@suse.de>
27590 PR tree-optimization/79690
27591 * tree-vect-stmts.c (vectorizable_store): Use vector type
27592 built from the DR with address-space.
27594 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
27596 * doc/invoke.texi (Optimize Options): Refine the description
27597 of asan-use-after-return.
27599 2017-02-25 Alan Modra <amodra@gmail.com>
27601 PR rtl-optimization/79584
27602 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
27603 base, not ad->base_term, the reg within base. Remove assertion
27604 that ad->base == ad->base_term. Replace gen_int_mode using
27605 bogus mode with const0_rtx.
27607 2017-02-25 Jakub Jelinek <jakub@redhat.com>
27609 PR middle-end/79396
27610 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
27611 FMA_EXPR like tcc_binary or tcc_unary.
27613 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
27616 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
27618 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
27619 (output_loc_operands): Handle DW_OP_call_ref and
27620 DW_OP_GNU_variable_value.
27621 (struct variable_value_struct): New type.
27622 (struct variable_value_hasher): Likewise.
27623 (variable_value_hash): New variable.
27624 (string_types): Remove.
27625 (copy_loc_descr): New function.
27626 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
27627 (prepend_loc_descr_to_each): New function.
27628 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
27629 instead of add_loc_descr_to_each if the first argument is single
27630 location list and the second has multiple.
27631 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
27632 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
27633 when looking for variable value which doesn't have other location info.
27634 (loc_list_from_tree): Formatting fix.
27635 (gen_array_type_die): Simplify DW_AT_string_length handling.
27636 (adjust_string_types): Remove.
27637 (gen_subprogram_die): Don't call adjust_string_types nor test/set
27638 string_types. Call resolve_variable_values.
27639 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
27640 (resolve_addr_in_expr): Likewise. Add A argument.
27641 (copy_deref_exprloc): Remove deref argument. Adjust for the
27642 original expression being DW_OP_GNU_variable_value with optionally
27643 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
27644 optionally after it.
27645 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
27646 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
27647 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
27648 (variable_value_hasher::hash, variable_value_hasher::equal): New
27650 (resolve_variable_value_in_expr, resolve_variable_value,
27651 resolve_variable_values, note_variable_value_in_expr,
27652 note_variable_value): New functions.
27653 (dwarf2out_early_finish): Call note_variable_value on all toplevel
27656 2017-02-24 Jakub Jelinek <jakub@redhat.com>
27659 * opts.h (handle_generated_option): Add GENERATED_P argument.
27660 * opts-common.c (handle_option): Adjust function comment.
27661 (handle_generated_option): Add GENERATED_P argument, pass it to
27663 (control_warning_option): Pass false to handle_generated_option
27665 * opts.c (maybe_default_option): Pass true to handle_generated_option
27667 * optc-gen.awk: Likewise.
27669 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
27671 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
27672 a REG, look at the REG it is a SUBREG of.
27673 (splitter for cmpeqsi_t): Ditto.
27675 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
27677 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
27678 the special USEs with the pattern of the insn, not the insn itself.
27680 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
27683 * doc/invoke.texi: Document -mload-store-pairs.
27685 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
27686 Sandra Loosemore <sandra@codesourcery.com>
27688 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
27689 argument isn't a CONST_INT.
27690 (nios2_alternate_compare_const): Assert op is a CONST_INT.
27691 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
27692 (nios2_validate_compare): Bypass alternate compare logic if *op2
27693 is not a CONST_INT.
27694 (ldstwm_operation_p): Return false if first_base is not a REG or
27695 if first_offset is not a CONST_INT.
27697 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
27699 * config/cris/cris.md: Use correct operand in a define_peephole2.
27701 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
27703 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
27705 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
27707 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
27708 this_insn if it is an INSN or JUMP_INSN.
27709 (force_offsettable): Look at base, not at addr.
27710 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
27711 on things that aren't necessarily CONST_INTs.
27713 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
27715 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
27716 -mfpmath=sse is the default also for x86-32 targets with SSE2
27717 instruction set when @option{-ffast-math} is enabled
27719 2017-02-24 Jeff Law <law@redhat.com>
27721 PR rtl-optimizatoin/79286
27722 * ira.c (update_equiv_regs): Drop may_trap_p exception to
27725 2017-02-24 Richard Biener <rguenther@suse.de>
27727 PR tree-optimization/79389
27728 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
27731 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
27733 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
27734 function comment to reflect reality.
27735 (loop_exits_before_overflow): Fix typo in function description.
27737 2017-02-24 Richard Biener <rguenther@suse.de>
27739 PR tree-optimization/79389
27740 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
27741 properly that a threading opportunity exists. Detect conditional
27742 copy/constant propagation opportunities.
27744 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
27746 * config/visium/visium.md (type): Add trap.
27747 (b): New mode attribute.
27748 (*btst): Rename into...
27749 (*btst<mode>): ...this and adjust.
27750 (*cbranchsi4_btst_insn): Rename into...
27751 (*cbranch<mode>4_btst_insn): ...this and adjust.
27752 (trap): New define_insn.
27754 2017-02-23 Jakub Jelinek <jakub@redhat.com>
27756 PR tree-optimization/79389
27757 * ifcvt.c (struct noce_if_info): Add rev_cond field.
27758 (noce_reversed_cond_code): New function.
27759 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
27760 reversed_comparison_code. Formatting fix.
27761 (noce_try_store_flag): Test rev_cond != NULL in addition to
27762 reversed_comparison_code.
27763 (noce_try_store_flag_constants): Likewise.
27764 (noce_try_store_flag_mask): Likewise.
27765 (noce_try_addcc): Use rev_cond if non-NULL instead of
27766 reversed_comparison_code.
27767 (noce_try_cmove_arith): Likewise. Formatting fixes.
27768 (noce_try_minmax, noce_try_abs): Clear rev_cond.
27769 (noce_find_if_block): Initialize rev_cond.
27770 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
27771 instead of false as last argument never attempt to reverse it
27774 2017-02-23 Bin Cheng <bin.cheng@arm.com>
27776 PR tree-optimization/79663
27777 * tree-predcom.c (combine_chains): Process refs in reverse order
27778 only for ZERO length chains, and add explaining comment.
27780 2017-02-23 Jeff Law <law@redhat.com>
27782 PR tree-optimization/79578
27783 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
27784 in call to operand_equal_p.
27786 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
27789 * config/i386/cpuid.h: Fix another undefined behavior.
27791 2017-02-23 Richard Biener <rguenther@suse.de>
27793 PR tree-optimization/79683
27794 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
27795 vector types for data-refs.
27797 2017-02-23 Martin Liska <mliska@suse.cz>
27799 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
27801 2017-02-23 Jakub Jelinek <jakub@redhat.com>
27803 PR middle-end/79665
27804 * internal-fn.c (get_range_pos_neg): Moved to ...
27805 * tree.c (get_range_pos_neg): ... here. No longer static.
27806 * tree.h (get_range_pos_neg): New prototype.
27807 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
27808 are known to be in between 0 and signed maximum inclusive, try to
27809 expand both unsigned and signed divmod and use the cheaper one from
27812 2017-02-22 Jeff Law <law@redhat.com>
27814 PR tree-optimization/79578
27815 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
27816 to compare base operands.
27818 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
27821 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
27822 gpc_reg_operand instead of fpr_reg_operand.
27824 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
27826 * config/mips/mips.c (mips_return_in_memory): Force FP
27827 vector types to be returned in memory for o32 ABI.
27829 2017-02-22 Jakub Jelinek <jakub@redhat.com>
27831 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
27832 instead of DW_TAG_member for static data member declarations and don't
27833 set no_linkage_name for static inline data members.
27834 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
27837 2017-02-22 Martin Liska <mliska@suse.cz>
27839 * doc/invoke.texi: Replace inequality signs with square brackets
27842 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27844 PR tree-optimization/68644
27845 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
27847 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
27850 * lra-constraints.c (simplify_operand_subreg): Handle
27851 WORD_REGISTER_OPERATIONS targets.
27853 2017-02-22 Jakub Jelinek <jakub@redhat.com>
27856 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
27857 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
27858 elimination by swapping fld*.
27860 2017-02-22 Richard Biener <rguenther@suse.de>
27862 PR tree-optimization/79673
27863 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
27864 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
27865 irrelevant address-space qualifiers and avoiding a
27866 ADDR_SPACE_CONVERT_EXPR from fold_convert.
27868 2017-02-22 Richard Biener <rguenther@suse.de>
27870 PR tree-optimization/79666
27871 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
27872 to not symbolically negate if that may introduce undefined
27875 2017-02-22 Martin Liska <mliska@suse.cz>
27878 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
27879 * data-streamer-out.c (streamer_write_gcov_count_stream):
27881 * value-prof.c (stream_out_histogram_value): Make assert more
27882 precise based on type of counter.
27884 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
27887 * config/i386/i386.md (standard_x87sse_constant_load splitter):
27888 Use nonimmediate_operand instead of memory_operand for operand 1.
27889 (float-extend standard_x87sse_constant_load splitter): Ditto.
27891 2017-02-21 Jeff Law <law@redhat.com>
27893 PR tree-optimization/79621
27894 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
27895 blocks with edges to themselves.
27897 2017-02-21 Jakub Jelinek <jakub@redhat.com>
27900 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
27901 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
27902 Use gimple_call_builtin_p.
27905 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
27906 on temporarily removed DEBUG_INSNs.
27908 PR tree-optimization/79649
27909 * tree-loop-distribution.c (classify_partition): Give up on
27910 non-generic address space loads/stores.
27912 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
27914 * doc/loop.texi (Loop manipulation): Remove nonexistent
27915 tree_ssa_loop_version from the documentation.
27916 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
27918 2017-02-21 Jakub Jelinek <jakub@redhat.com>
27921 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
27922 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
27923 * config/rs6000/rs6000.c: Include except.h.
27924 (rs6000_expand_split_stack_prologue): Call
27925 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
27927 2017-02-21 Martin Jambor <mjambor@suse.cz>
27930 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
27931 have been analyzed.
27933 2017-02-21 Martin Jambor <mjambor@suse.cz>
27935 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
27936 for backward compatibility only.
27937 * doc/invoke.texi (Option Summary): Remove all references to
27938 -fipa-cp-alignment.
27940 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
27944 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
27946 * lra-constraints.c (curr_insn_transform): Handle
27947 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
27949 2017-02-21 Martin Liska <mliska@suse.cz>
27951 * config/i386/i386.opt: Replace -masm-dialect with -masm.
27953 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
27955 PR translation/79638
27956 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
27958 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
27961 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
27962 (arm_function_ok_for_sibcall): Return false for an indirect call by
27963 descriptor if all the argument registers are used.
27964 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
27965 alignment of the function.
27967 2017-02-21 Jakub Jelinek <jakub@redhat.com>
27969 PR tree-optimization/61441
27970 * simplify-rtx.c (simplify_const_unary_operation): For
27971 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
27972 the sNaN unmodified.
27974 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
27976 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
27977 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
27978 instead of SYSTEM_HEADER_DIR.
27980 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
27981 Martin Liška <mliska@suse.cz>
27983 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
27984 Fix typos and grammar, use active voice, and clarify.
27986 2017-02-20 Marek Polacek <polacek@redhat.com>
27988 PR middle-end/79537
27989 * gimplify.c (gimplify_expr): Handle unused *&&L;.
27992 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
27994 2017-02-20 Jakub Jelinek <jakub@redhat.com>
27997 * config/i386/i386.c (ix86_expand_builtin): Handle
27998 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
27999 ix86_builtins_isa[fcode].isa as a requirement of those
28000 flags and any other flag in the bitmask.
28001 (ix86_init_mmx_sse_builtins): Use 0 instead of
28002 ~OPTION_MASK_ISA_64BIT as mask.
28003 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
28004 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
28005 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
28006 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
28008 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
28011 * lra-constraints.c (split_reg): Check requested split mode
28012 is supported by the register.
28014 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
28016 * lra-constraints.c (simplify_operand_subreg): Remove early
28019 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
28022 * lra-constraints.c (curr_insn_transform): Tighten condition
28023 for converting SUBREG reloads from OP_OUT to OP_INOUT.
28025 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
28028 * lra-constraints.c (curr_insn_transform): Handle
28029 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
28031 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
28034 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
28036 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
28038 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
28041 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
28044 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
28046 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
28049 2017-02-18 Jakub Jelinek <jakub@redhat.com>
28051 * final.c (last_columnnum, override_columnnum): New variables.
28052 (final_start_function): Set last_columnnum, pass it to begin_prologue
28053 hook and pass 0 to dwarf2out_begin_prologue.
28054 (final_scan_insn): Update override_columnnum. Pass last_columnnum
28055 to source_line debug hook.
28056 (notice_source_line): Compute last_columnnum and for debug_column_info
28057 return true on column changes.
28058 * debug.h (struct gcc_debug_hooks): Add column argument to
28059 source_line and begin_prologue hooks.
28060 (debug_nothing_int_charstar_int_bool): Remove prototype.
28061 (debug_nothing_int_int_charstar,
28062 debug_nothing_int_int_charstar_int_bool): New prototypes.
28063 (dwarf2out_begin_prologue): Add column argument.
28064 * debug.c (do_nothing_debug_hooks): Adjust source_line and
28065 begin_prologue hooks.
28066 (debug_nothing_int_charstar_int_bool): Remove.
28067 (debug_nothing_int_int_charstar,
28068 debug_nothing_int_int_charstar_int_bool): New functions.
28069 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
28070 through to dwarf2out_source_line.
28071 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
28072 (dwarf2out_source_line): Add column argument, emit it if requested.
28073 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
28075 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
28076 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
28077 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
28078 through to dwarf2out_begin_prologue.
28079 (vmsdbgout_source_line): Add column argument, pass it through to
28080 dwarf2out_source_line.
28081 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
28082 dbxout_source_line caller.
28083 (dbxout_source_line): Add column argument.
28085 * common.opt (gno-column-info, gcolumn-info): New options.
28086 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
28087 (check_die): Also test for multiple DW_AT_decl_column attributes.
28088 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
28089 DW_AT_decl_column if requested.
28090 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
28092 (gen_variable_die): Likewise.
28093 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
28094 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
28097 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
28098 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
28099 (ix86_handle_option): Handle OPT_m3dnowa.
28100 * doc/invoke.texi (-m3dnowa): Document.
28101 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
28102 -m3dnowa instead of -m3dnow -march=athlon.
28105 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
28106 instead of gcc_assert for K, r and R code checks. Formatting fixes.
28108 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28111 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
28112 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
28113 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
28114 generator for vsx_xxpermdi_<mode>_be.
28115 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
28116 force big-endian semantics.
28117 (vsx_xxpermdi_<mode>_be): New define_expand with same
28118 implementation as previous version of vsx_xxpermdi_<mode>.
28120 2017-02-17 Jakub Jelinek <jakub@redhat.com>
28122 PR tree-optimization/79327
28123 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
28124 variable, its initialization and use.
28126 2017-02-17 Julia Koval <julia.koval@intel.com>
28128 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
28129 (OPTION_MASK_ISA_PKU_UNSET): New.
28130 (ix86_handle_option): Handle -mrdpid.
28131 * config/i386/cpuid.h (bit_RDPID): New.
28132 * config/i386/driver-i386.c (host_detect_local_cpu):
28133 Detect RDPID feature.
28134 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
28135 * config/i386/i386-c.c (ix86_target_macros_internal):
28137 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
28138 (ix86_valid_target_attribute_inner_p): Add "rdpid".
28139 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
28140 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
28141 * config/i386/i386.md (define_insn "rdpid"): New.
28142 * config/i386/i386.opt Add -mrdpid.
28143 * config/i386/immintrin.h (_rdpid_u32): New.
28145 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
28147 PR rtl-optimization/79541
28148 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
28149 instead of transforming it into USE.
28151 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
28153 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
28154 If HONOR_SNANS (SFmode) force the input to a register.
28155 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
28156 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
28157 an frsp or similar insn.
28159 2017-02-17 Martin Liska <mliska@suse.cz>
28161 PR rtl-optimization/79577
28162 * params.def (selsched-max-sched-times): Increase minimum to 1.
28164 2017-02-17 Martin Liska <mliska@suse.cz>
28166 PR rtl-optimization/79574
28167 * gcse.c (want_to_gcse_p): Prevent integer overflow.
28169 2017-02-17 Martin Liska <mliska@suse.cz>
28171 PR tree-optimization/79529
28172 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
28173 ssa_defined_default_def_p to handle cases which are implicitly
28175 * tree-ssa.c (ssa_defined_default_def_p): New function.
28176 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
28177 which are implicitly defined.
28178 * tree-ssa.h (ssa_defined_default_def_p): Declare.
28180 2017-02-17 Richard Biener <rguenther@suse.de>
28182 PR middle-end/79576
28183 * params.def (max-ssa-name-query-depth): Limit to 10.
28185 2017-02-17 Richard Biener <rguenther@suse.de>
28187 PR tree-optimization/79552
28188 * tree-ssa-structalias.c (visit_loadstore): Properly verify
28191 2017-02-17 Richard Biener <rguenther@suse.de>
28194 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
28196 2017-02-17 Marek Polacek <polacek@redhat.com>
28198 PR middle-end/79536
28199 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
28200 (fold_negate_expr): New wrapper.
28202 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
28204 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
28205 Correct terminology and de-emphasize pre-standard behavior.
28207 2017-02-16 Alan Modra <amodra@gmail.com>
28209 PR rtl-optimization/79286
28210 * ira.c (def_dominates_uses): New function.
28211 (update_equiv_regs): Don't create an equivalence for insns that
28212 may trap where the register def does not dominate the use.
28214 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
28216 PR rtl-optimization/78127
28217 * lra.c (lra): Call lra_eliminate before finish the loop after
28220 2017-02-16 Richard Biener <rguenther@suse.de>
28222 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
28224 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
28225 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
28226 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
28227 (isl_val_int_from_wi): New function.
28228 (extract_affine_gmp): Rename to ...
28229 (extract_affine_wi): ... this, take a widest_int.
28230 (extract_affine_int): Just wrap extract_affine_wi.
28231 (add_param_constraints): Use isl_val_int_from_wi.
28232 (add_loop_constraints): Likewise, and extract_affine_wi.
28234 2017-02-15 Jeff Law <law@redhat.com>
28236 PR middle-end/79521
28237 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
28238 ira_init_register_move_cost_if_necessary.
28240 2017-02-15 Martin Sebor <msebor@redhat.com>
28242 PR middle-end/32003
28243 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
28244 removed in a prior commit.
28246 2017-02-15 Bin Cheng <bin.cheng@arm.com>
28248 PR tree-optimization/79347
28249 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
28250 counters during peeling.
28252 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
28254 * Makefile.in (site.exp): Remove "set ISLVER".
28256 2017-02-15 Jakub Jelinek <jakub@redhat.com>
28259 * real.c (real_from_integer): Call real_convert even for decimal.
28261 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
28264 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
28266 2017-02-14 Andrew Pinski <apinski@cavium.com>
28268 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
28269 cores and change the partno/implementer to be correct.
28270 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
28271 the 'B" as the implementer.
28272 * config/aarch64/aarch64-tune.md: Regenerate.
28274 2017-02-14 Carl Love <cel@us.ibm.com>
28276 * config/rs6000/rs6000.c: Add case statement entry to make the
28277 xvcvuxdsp built-in argument unsigned.
28278 * config/rs6000/vsx.md: Fix the source and return operand types so they
28279 match the instruction definitions from the ISA document. Fix typo
28280 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
28283 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
28286 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
28287 member early_clobber_alts.
28288 * lra-lives.c (reg_early_clobber_p): New.
28289 (process_bb_lives): Use it.
28290 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
28291 (debug_operand_data): Initialize early_clobber_alts.
28292 (setup_operand_alternative): Set up early_clobber_alts.
28293 (collect_non_operand_hard_regs): Ditto. Pass early clobber
28294 alternatives to new_insn_reg.
28295 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
28297 (lra_update_insn_regno_info): Pass the new arg.
28299 2017-02-14 Jakub Jelinek <jakub@redhat.com>
28301 PR middle-end/79505
28302 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
28303 (new_oacc_loop_raw): Don't clear already cleared fields.
28306 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
28307 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
28308 _mm512_prefetch_i64gather_ps): New inline functions and macros.
28310 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
28313 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
28315 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
28318 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
28319 the extra instruction to the right place to store 128-bit constant
28322 2017-02-14 Martin Sebor <msebor@redhat.com>
28324 PR middle-end/79448
28325 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
28326 warning for strings of unknown length.
28328 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
28330 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
28332 2017-02-14 Jeff Law <law@redhat.com>
28335 * ira-costs.c (scan_one_insn): Initialize register move costs
28336 for pseudos seen in USE/CLOBBER insns.
28338 PR tree-optimization/79095
28339 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
28340 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
28341 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
28342 if the operands are known to be not equal, then the resulting range
28344 (intersect_ranges): If the new range is ~[0,0] and the old range is
28345 wide, then prefer ~[0,0].
28346 * tree-vrp.c (overflow_comparison_p_1): New function.
28347 (overflow_comparison_p): New function.
28348 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
28349 if NAME is used in an overflow test.
28350 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
28351 overflow check that can be expressed as an equality test, then adjust
28352 ops to be that equality test.
28354 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28356 * config/s390/s390-builtin-types.def: Remove flags argument.
28357 * config/s390/s390.c (s390_init_builtins): Likewise.
28359 2017-02-14 Martin Liska <mliska@suse.cz>
28361 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
28362 vector. Fix trailing white spaces.
28364 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
28366 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
28369 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28371 PR rtl-optimization/68664
28372 * config/arm/arm.c (arm_sched_can_speculate_insn):
28373 New function. Declare prototype.
28374 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
28376 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28378 PR rtl-optimization/68664
28379 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
28381 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
28383 2017-02-14 Amit Pawar <amit.pawar@amd.com>
28385 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
28386 max skip bytes for function, loop and jump.
28388 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
28390 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
28391 ABS_EXPR for gimple dump.
28393 2017-02-14 Jakub Jelinek <jakub@redhat.com>
28396 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
28398 PR tree-optimization/79408
28399 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
28400 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
28401 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
28402 also if rhs1 is INTEGER_CST.
28404 2017-02-14 Richard Biener <rguenther@suse.de>
28406 PR middle-end/79432
28407 * tree-into-ssa.c (insert_phi_nodes): When the function can
28408 have abnormal edges rewrite SSA names with broken use-def
28409 dominance out of SSA and register them for PHI insertion.
28411 2017-02-13 Martin Sebor <msebor@redhat.com>
28413 PR middle-end/79496
28414 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
28415 clearing info.nowrite flag when snprintf size argument is a range.
28417 2017-02-13 Jakub Jelinek <jakub@redhat.com>
28419 * cprop.c (cprop_jump): Add missing space in string literal.
28420 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
28421 (get_constraint_for_component_ref): Likewise.
28422 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
28423 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
28424 * lra-constraints.c (process_alt_operands): Likewise.
28425 * ipa-inline.c (inline_small_functions): Likewise.
28426 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
28427 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
28428 * trans-mem.c (diagnose_tm_1_op): Likewise.
28429 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
28430 (grid_parallel_clauses_gridifiable): Likewise.
28432 * config/nvptx/mkoffload.c (process): Add space in between
28435 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
28436 "MOD4_SSE_REGS" and "ALL_REGS".
28438 * spellcheck.c (test_data): Add , in between "foo" and "food".
28440 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
28443 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
28444 boundary crossing check and subsequent code generation agree.
28446 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28448 * config/aarch64/aarch64.c (has_memory_op): Delete.
28449 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
28452 2017-02-13 Jakub Jelinek <jakub@redhat.com>
28454 PR rtl-optimization/79388
28455 PR rtl-optimization/79450
28456 * combine.c (distribute_notes): When removing TEM_INSN for which
28457 corresponding dest has last value recorded, invalidate that last
28460 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28462 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
28463 of explicit '@'. Add missing assembly comment marker on branch costs
28466 2017-02-13 Nathan Sidwell <nathan@acm.org>
28468 * gengtype-lex.l (<in_struct>): Add '/'.
28470 2017-02-13 Martin Liska <mliska@suse.cz>
28473 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
28475 2017-02-13 Richard Biener <rguenther@suse.de>
28477 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
28479 * configure: Re-generate.
28480 * config.in: Likewise.
28481 * graphite-dependences.c: Simplify as if
28482 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
28483 * graphite-isl-ast-to-gimple.c: Likewise.
28484 * graphite-optimize-isl.c: Likewise.
28485 * graphite-poly.c: Likewise.
28486 * graphite-sese-to-poly.c: Likewise.
28487 * graphite.h: Likewise.
28488 * toplev.c: Include isl/version.h and use isl_version () for
28489 printing the ISL version.
28490 * doc/install.texi: Update ISL requirement.
28492 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
28494 * doc/standards.texi (Standards): Update reference to
28497 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
28499 * doc/extend.texi (Named Address Spaces): sourceware.org now
28501 * doc/install.texi (Binaries): Ditto.
28504 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
28506 * doc/cpp.texi: Replace "stringify"/"stringification" with C
28507 standard terminology "stringize"/"stringizing" throughout.
28508 * doc/cppinternals.texi: Likewise.
28510 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
28512 * doc/extend.texi: Fix some spelling mistakes and typos.
28513 * doc/invoke.texi: Likewise.
28515 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
28518 * params.def (inline-min-speedup) Change from 10 to 8.
28520 2017-02-11 Jakub Jelinek <jakub@redhat.com>
28522 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
28525 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
28528 * ipa-inline-analysis.c (get_minimal_bb): New function.
28529 (record_modified): Use it.
28530 (remap_edge_change_prob): Handle also ancestor functions.
28532 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
28534 * doc/contrib.texi (Contributors): Remove broken link into
28535 the Mauve CVS repository.
28537 2017-02-11 Jakub Jelinek <jakub@redhat.com>
28539 PR middle-end/79454
28540 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
28541 result computation whenever lhs doesn't have vector mode, not
28542 just when it has BLKmode.
28544 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
28546 * doc/makefile.texi (profiledbootstrap): Refer to the
28547 installation instructions only in textual form.
28549 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
28552 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
28554 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
28556 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
28557 (Specific): Update mingw-w64 reference.
28559 (Specific): Remove broken link to Renesas RX processor.
28561 2017-02-10 Richard Biener <rguenther@suse.de>
28563 * toplev.c (process_options): Do not mention obsolete graphite
28564 options when printing sorry message about missing graphite support.
28565 Mention -floop-nest-optimize.
28567 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
28569 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
28570 (vtst_p16): Likewise.
28571 (vtstq_p8): Likewise.
28572 (vtstq_p16): Likewise.
28574 (vtstq_p64): Likewise.
28575 * config/arm/arm_neon.h (vgetq_lane_p64): New.
28576 (vset_lane_p64): New.
28577 (vsetq_lane_p64): New.
28579 2017-02-10 Jakub Jelinek <jakub@redhat.com>
28581 PR tree-optimization/79411
28582 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
28583 stmt operands are SSA_NAMEs used in abnormal phis.
28584 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
28587 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
28590 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
28593 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
28595 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
28597 2017-02-09 Jakub Jelinek <jakub@redhat.com>
28599 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
28603 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
28604 not arbitrary TREE_CONSTANT.
28607 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
28608 "omp declare target link" attribute unless is_global_var.
28609 * omp-offload.c (find_link_var_op): Likewise.
28611 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
28612 Chung-Lin Tang <cltang@codesourcery.com>
28614 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
28616 (gimplify_adjust_omp_clauses): Don't delete TILE.
28617 (gimplify_omp_for): Deal with TILE.
28618 * internal-fn.c (expand_GOACC_TILE): New function.
28619 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
28621 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
28622 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
28624 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
28625 avoid DIV for outermost collapse var.
28626 (expand_oacc_for): Insert tile element loop as needed. Adjust.
28627 Remove out of date comments, fix whitespace.
28628 * omp-general.c (omp_extract_for_data): Deal with tiling.
28629 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
28630 adjust OLF_DIM_BASE value.
28631 (struct omp_for_data): Add tiling field.
28632 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
28633 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
28634 for auto loops. Remove default auto determining, moved to
28635 oacc_loop_fixed_partitions.
28636 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
28637 stmts, add e_mask field.
28638 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
28639 (oacc_thread_numbers): Use oacc_dim_call.
28640 (oacc_xform_tile): New.
28641 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
28642 (finish_oacc_loop): Adjust for ifns vector.
28643 (oacc_loop_discover_walk): Append loop abstraction sites to list,
28644 add case for GOACC_TILE fns.
28645 (oacc_loop_xform_loop): Delete.
28646 (oacc_loop_process): Iterate over call list directly, and add
28647 handling for GOACC_TILE fns.
28648 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
28650 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
28651 vector partitioning to outer loops. Assign 2 partitions to loops
28652 when available. Add TILE handling.
28653 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
28654 (execite_oacc_device_lower): Process GOACC_TILE fns,
28655 ignore unknown specs.
28656 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
28657 * tree.c (omp_clause_num_ops): Adjust TILE ops.
28658 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
28660 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
28662 * configure.ac (ACX_BUGURL): Update.
28663 * configure: Regenerate.
28665 2017-02-09 Richard Biener <rguenther@suse.de>
28667 PR tree-optimization/69823
28668 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
28669 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
28671 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
28673 * config/arc/arc-c.def: Add __NPS400__ definition.
28674 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
28675 (TARGET_NPS400): Define.
28677 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
28679 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
28681 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
28682 pointer, arch_info.
28683 (arc_cpu_types): Fill the arch_info field with a pointer into the
28684 arc_arch_types table.
28685 (arc_selected_cpu): Declare.
28686 * config/arc/arc.c (arc_selected_cpu): Make global.
28687 (arc_selected_arch): Delete.
28688 (arc_base_cpu): Delete.
28689 (arc_override_options): Remove references to deleted variables,
28690 update access to arch information.
28691 (ARC_OPT): Update access to arch information.
28692 (ARC_OPTX): Likewise.
28693 * config/arc/arc.h (arc_base_cpu): Remove declaration.
28694 (TARGET_ARC600): Update access to arch information.
28695 (TARGET_ARC601): Likewise.
28696 (TARGET_ARC700): Likewise.
28697 (TARGET_EM): Likewise.
28698 (TARGET_HS): Likewise.
28699 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
28702 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
28705 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
28706 condition/operands for integer GE/LE/GEU/LEU operations.
28708 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
28710 PR translation/79397
28711 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
28714 2017-02-08 Martin Jambor <mjambor@suse.cz>
28717 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
28718 whether allocation happened.
28719 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
28720 nothing was allocated.
28722 2017-02-08 Jakub Jelinek <jakub@redhat.com>
28724 PR tree-optimization/79408
28725 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
28726 constant, but SSA_NAME with a known integer range, use the minimum
28727 of that range instead of op1 to determine if modulo can be replaced
28728 with its first operand.
28730 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28732 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
28734 2017-02-08 Richard Biener <rguenther@suse.de>
28736 PR tree-optimization/71824
28737 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
28738 Check all loops contained in the merged region.
28740 2017-02-07 Andrew Pinski <apinski@cavium.com>
28742 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
28744 2017-02-07 Andrew Pinski <apinski@cavium.com>
28746 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
28747 (thunderxt88): Likewise.
28748 (thunderxt81): Disable LSE and change v8.1 to v8.
28749 (thunderxt83): Likewise.
28751 2017-02-07 Jakub Jelinek <jakub@redhat.com>
28752 Richard Biener <rguenther@suse.de>
28754 PR middle-end/79399
28755 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
28756 type from int to size_t.
28757 * ira-costs.c (struct_costs_size): Change type from int to size_t.
28759 2017-02-07 Jakub Jelinek <jakub@redhat.com>
28761 PR rtl-optimization/79386
28762 * cprop.c (bypass_conditional_jumps): Initialize
28763 bypass_last_basic_block already before splitting bbs after
28764 unconditional traps...
28765 (bypass_conditional_jumps): ... rather than here.
28768 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
28769 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
28770 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
28771 fix -masm=intel patterns.
28773 2017-02-07 Richard Biener <rguenther@suse.de>
28775 PR tree-optimization/79256
28776 PR middle-end/79278
28777 * builtins.c (get_object_alignment_2): Use min_align_of_type
28778 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
28779 and ADJUST_FIELD_ALIGN.
28781 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
28783 * doc/tm.texi: Regenerate.
28784 * stor-layout.c (layout_decl): Adjust.
28785 (update_alignment_for_field): Likewise.
28786 (place_field): Likewise.
28787 (min_align_of_type): Likewise.
28788 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
28789 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
28790 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
28791 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
28792 * config/frv/frv.c (frv_adjust_field_align): Likewise.
28793 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
28794 * config/i386/i386.c (x86_field_alignment): Likewise.
28795 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
28796 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
28797 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
28798 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
28799 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
28800 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
28804 2017-01-30 Richard Biener <rguenther@suse.de>
28806 PR tree-optimization/79256
28807 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
28808 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
28811 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
28813 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
28814 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
28815 builtins to SImode and emit a zero-extend, if necessary.
28817 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
28819 * docs/invoke.texi (RISC-V Options): Alphabetize.
28821 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
28823 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
28826 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
28828 * config/riscv/riscv.c: New file.
28829 * common/config/riscv/riscv-common.c: Likewise.
28830 * config.gcc: Likewise.
28831 * config/riscv/constraints.md: Likewise.
28832 * config/riscv/elf.h: Likewise.
28833 * config/riscv/generic.md: Likewise.
28834 * config/riscv/linux.h: Likewise.
28835 * config/riscv/multilib-generator: Likewise.
28836 * config/riscv/peephole.md: Likewise.
28837 * config/riscv/pic.md: Likewise.
28838 * config/riscv/predicates.md: Likewise.
28839 * config/riscv/riscv-builtins.c: Likewise.
28840 * config/riscv/riscv-c.c: Likewise.
28841 * config/riscv/riscv-ftypes.def: Likewise.
28842 * config/riscv/riscv-modes.def: Likewise.
28843 * config/riscv/riscv-opts.h: Likewise.
28844 * config/riscv/riscv-protos.h: Likewise.
28845 * config/riscv/riscv.h: Likewise.
28846 * config/riscv/riscv.md: Likewise.
28847 * config/riscv/riscv.opt: Likewise.
28848 * config/riscv/sync.md: Likewise.
28849 * config/riscv/t-elf-multilib: Likewise.
28850 * config/riscv/t-linux: Likewise.
28851 * config/riscv/t-linux-multilib: Likewise.
28852 * config/riscv/t-riscv: Likewise.
28853 * configure.ac: Likewise.
28854 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
28855 Waterman as RISC-V maintainers.
28856 * doc/install.texi: Add RISC-V entries.
28857 * doc/invoke.texi: Add RISC-V options section.
28858 * doc/md.texi: Add RISC-V constraints section.
28859 * configure: Regenerated.
28861 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
28864 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
28865 false values to be constant vectors with all 0 or all 1 bits set.
28866 (vcondu<mode><mode>): Likewise.
28867 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
28869 (fpmask_comparison_operator): Update comment.
28870 (vecint_comparison_operator): New predicate.
28871 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
28872 vector conditionals when the true and false values are constant
28873 vectors with all 0 bits or all 1 bits set.
28875 2017-02-06 Martin Sebor <msebor@redhat.com>
28877 PR tree-optimization/79376
28878 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
28880 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
28882 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
28883 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
28884 to simplify split condition.
28886 2017-02-06 Jakub Jelinek <jakub@redhat.com>
28888 * omp-expand.c (oxpand_omp_atomic_fetch_op,
28889 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
28892 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
28894 PR rtl-optimization/68664
28895 * target.def (can_speculate_insn): New hook.
28896 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
28897 * doc/tm.texi: Regenerate.
28898 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
28899 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
28900 (rs6000_sched_can_speculate_insn): New function.
28902 2017-02-06 Jakub Jelinek <jakub@redhat.com>
28904 PR tree-optimization/79284
28905 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
28906 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
28907 vectorizable_mask_load_store, vectorizable_operation,
28908 vect_is_simple_cond, get_same_sized_vectype): Use it instead
28909 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
28910 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
28911 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
28912 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
28913 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
28914 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
28915 is_gimple_assign (stmt). Replace another such test with
28916 is_gimple_assign (stmt).
28918 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
28921 * config/avr/avr.c (rtl-iter.h): Include it.
28922 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
28923 (avr_legitimate_combined_insn): ...and implementation.
28925 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
28927 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
28928 * config/s390/s390.c (s390_const_operand_ok)
28929 (s390_canonicalize_comparison, s390_extract_part)
28930 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
28931 (s390_contiguous_bitmask_p, s390_rtx_costs)
28932 (legitimize_pic_address): Likewise.
28933 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
28934 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
28935 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
28936 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
28937 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
28939 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
28941 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
28942 REGNO($0) == REGNO($1).
28944 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28946 * config/s390/linux.h(SIZE_TYPE): Add comment.
28948 2017-02-06 Julian Brown <julian@codesourcery.com>
28949 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
28950 Virendra Pathak <virendra.pathak@broadcom.com>
28952 * config/aarch64/aarch64-cores.def: Change the scheduler
28954 * config/aarch64/aarch64.md: Include thunderx2t99.md.
28955 * config/aarch64/thunderx2t99.md: New file.
28957 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
28959 * doc/standards.texi (Go Language): Update link to language
28962 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
28964 * tree-eh.c (lower_resx): Sanitize profile.
28965 (cleanup_empty_eh_move_lp): Likewise.
28967 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
28970 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
28972 * cfgloopmanip.h (loop_version): Update prototype.
28973 * modulo-sched.c (sms_schedule): Update call of loop_version.
28974 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
28975 * tree-parloops.c (gen_parallel_loop): Likewise.
28976 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
28977 * tree-ssa-loop-split.c (split_loop): Likewise.
28978 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
28979 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
28981 2017-02-05 Martin Liska <mliska@suse.cz>
28984 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
28986 (print_operand_address): Initialize a struct to zero.
28988 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
28990 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
28991 garbage collector only in textual form.
28993 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
28995 * doc/extend.texi (x86 specific memory model extensions for
28996 transactional memory): Simplify a phrase.
28998 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
29001 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
29002 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
29003 (atomic_storedi_1): Likewise.
29005 2017-02-04 Jakub Jelinek <jakub@redhat.com>
29007 PR tree-optimization/79338
29008 * tree-parloops.c (gather_scalar_reductions): Don't call
29009 vect_analyze_loop_form for loop->inner before destroying loop's
29012 2017-02-03 Martin Sebor <msebor@redhat.com>
29014 PR tree-optimization/79327
29015 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
29016 when precision has resulted in leading zeros.
29017 (format_integer): Adjust the likely counter to assume an unknown
29018 argument that may be zero is non-zero.
29020 2017-02-03 Jason Merrill <jason@redhat.com>
29023 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
29024 avoid copying non-taken branch.
29026 2017-02-03 Jakub Jelinek <jakub@redhat.com>
29028 PR tree-optimization/79340
29029 * tree-vect-loop.c (vectorizable_reduction): Release
29030 vec_defs elements after safe_splicing them into other vectors.
29033 PR tree-optimization/79327
29034 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
29035 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
29037 (format_integer): Use wide_int_to_tree instead of build_int_cst
29038 + to_?hwi. If argmin is NULL, just set argmin and argmax to
29039 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
29040 of shortest and longest sequence.
29042 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
29044 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
29045 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
29047 2017-02-03 Walter Lee <walt@tilera.com>
29050 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
29051 after initial stackframe link reg save.
29052 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
29054 2017-02-03 Jakub Jelinek <jakub@redhat.com>
29057 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
29058 wu for stxssp alternative.
29060 2017-02-03 Martin Sebor <msebor@redhat.com>
29062 PR tree-optimization/79352
29063 * gimple-fold.c (get_range_strlen): Add argument.
29064 (get_range_strlen): Change return type to bool.
29065 (get_maxval_strlen): Pass in a dummy argument.
29066 * gimple-fold.h (get_range_strlen): Change return type to bool.
29067 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
29068 * tree.h (array_at_struct_end_p): Add argument.
29069 * tree.c (array_at_struct_end_p): Handle it.
29071 2017-02-03 Martin Liska <mliska@suse.cz>
29074 * multiple_target.c (create_dispatcher_calls): Redirect edge
29075 from a caller of a dispatcher.
29076 (expand_target_clones): Make the clones local.
29077 (ipa_target_clone): Do both target clones and resolvers.
29078 (ipa_dispatcher_calls): Remove the pass.
29079 (pass_dispatcher_calls::gate): Likewise.
29080 (make_pass_dispatcher_calls): Likewise.
29081 * passes.def (pass_target_clone): Put as very first IPA early
29084 2017-02-03 Martin Liska <mliska@suse.cz>
29086 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
29087 in case of a function with ifunc attribute.
29089 2017-02-03 Martin Liska <mliska@suse.cz>
29091 * cgraph.c (cgraph_node::dump): Dump function version info.
29092 * symtab.c (symtab_node::dump_base): Add missing new line.
29094 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
29096 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
29097 (ifcombine_ifandif): Use it.
29099 2017-02-03 Martin Liska <mliska@suse.cz>
29101 * doc/invoke.texi: Document default value for
29102 use-after-scope-direct-emission-threshold.
29104 2017-02-03 Martin Liska <mliska@suse.cz>
29106 PR tree-optimization/79339
29107 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
29108 (format_floating): Likewise.
29110 2017-02-03 Martin Liska <mliska@suse.cz>
29113 * ipa-prop.c (ipa_node_params_t::insert): Remove current
29115 (ipa_node_params_t::remove): Likewise.
29116 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
29117 initialization from removed ipa_node_params_t::insert.
29118 (ipa_node_params::~ipa_node_params): Move from removed
29119 ipa_node_params_t::release.
29120 * symbol-summary.h (symbol_summary::m_released): New member.
29121 Do not release a summary twice. Do not allow to call finalizer
29122 for types of a summary that live in GGC memory.
29124 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
29126 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
29129 2017-02-02 Martin Sebor <msebor@redhat.com>
29131 PR middle-end/79275
29132 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
29133 (format_string): Tighten up the range of output for non-constant
29134 strings and correct the expected range for wide non-constant strings.
29136 2017-02-02 Martin Sebor <msebor@redhat.com>
29138 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
29140 PR middle-end/32003
29141 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
29143 (-fdump-tree-@var): Add to index and document how to come up
29144 with pass-specific option and dump file names.
29145 (-fdump-passes): Clarify where to look for output.
29147 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
29149 PR middle-end/77445
29150 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
29151 statistics of the analyzed path; allow threading for speed when
29152 any of BBs along the path are optimized for speed.
29154 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
29156 PR middle-end/78468
29157 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
29158 settings of the virtual registers.
29161 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
29163 * explow.c (get_dynamic_stack_size): Take known alignment of stack
29164 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
29167 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29169 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
29170 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
29172 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29174 * config/s390/s390.md: Add missing comments with the expanded
29176 * config/s390/vector.md: Likewise.
29177 * config/s390/vx-builtins.md: Likewise.
29179 2017-02-02 Jakub Jelinek <jakub@redhat.com>
29182 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
29183 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
29184 conditions on a single line.
29186 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29188 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
29189 __S390_VX__ to __VX__.
29191 2017-02-01 Andrew Pinski <apinski@cavium.com>
29193 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
29194 stmt_info to record_stmt_cost.
29195 (vect_get_known_peeling_cost): Pass stmt_info if known to
29197 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
29198 cpu_vector_cost field into
29199 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
29200 field into vec_int_stmt_cost and vec_fp_stmt_cost.
29201 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
29202 splitting of scalar_stmt_cost and vec_stmt_cost.
29203 (thunderx_vector_cost): Likewise.
29204 (cortexa57_vector_cost): LIkewise.
29205 (exynosm1_vector_cost): Likewise.
29206 (xgene1_vector_cost): Likewise.
29207 (thunderx2t99_vector_cost): Improve after the splitting of the two
29209 (aarch64_builtin_vectorization_cost): Update for the splitting of
29210 scalar_stmt_cost and vec_stmt_cost.
29212 2017-02-01 Torvald Riegel <triegel@redhat.com>
29213 Richard Henderson <rth@redhat.com>
29215 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
29216 conditional on existance of a fast atomic load.
29217 * optabs-query.c (can_atomic_load_p): New function.
29218 * optabs-query.h (can_atomic_load_p): Declare it.
29219 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
29220 no fast atomic load is available for the particular size of access.
29221 (expand_atomic_compare_and_swap): Likewise.
29222 (expand_atomic_load): Likewise.
29223 (expand_atomic_store): Likewise.
29224 (expand_atomic_fetch_op): Likewise.
29225 * testsuite/lib/target-supports.exp
29226 (check_effective_target_sync_int_128): Remove x86 because it provides
29227 no fast atomic load.
29228 (check_effective_target_sync_int_128_runtime): Likewise.
29230 2017-02-01 Richard Biener <rguenther@suse.de>
29232 * graphite.c: Include tree-vectorizer.h for find_loop_location.
29233 (graphite_transform_loops): Provide opt-info for optimized nests.
29234 * tree-parloop.c (parallelize_loops): Provide opt-info for
29235 parallelized loops.
29237 2017-02-01 Richard Biener <rguenther@suse.de>
29239 PR middle-end/79315
29240 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
29241 was not set before.
29243 2017-02-01 Richard Biener <rguenther@suse.de>
29245 PR tree-optimization/71824
29246 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
29247 Verify the loops are valid in the merged SESE region.
29248 (scop_detection::can_represent_loop_1): Check analyzing the
29249 evolution of the number of iterations in the region succeeds.
29251 2017-01-31 Ian Lance Taylor <iant@golang.org>
29253 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
29254 REG_ARGS_SIZE note to 32-bit push insns and call insn.
29256 2017-01-31 David Malcolm <dmalcolm@redhat.com>
29258 PR preprocessor/79210
29259 * input.c (get_substring_ranges_for_loc): Replace line_width
29260 assertion with error-handling.
29262 2017-01-31 Richard Biener <rguenther@suse.de>
29264 PR tree-optimization/77318
29265 * graphite-sese-to-poly.c (extract_affine): Fix assert.
29266 (create_pw_aff_from_tree): Take loop parameter.
29267 (add_condition_to_pbb): Pass loop of the condition to
29268 create_pw_aff_from_tree.
29270 2017-01-31 Jakub Jelinek <jakub@redhat.com>
29272 * config/s390/s390.c (s390_asan_shadow_offset): New function.
29273 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
29275 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
29279 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
29281 (convert_int_to_float128): Likewise.
29282 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
29283 (convert_int_to_float128): Likewise.
29284 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
29285 (UNSPEC_IEEE128_CONVERT): Likewise.
29286 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
29287 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
29288 Use local variables for IBM extended format.
29289 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
29290 (fix_trunc<mode>si2_fprs): Likewise.
29291 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
29292 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
29293 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
29294 to know that we can now have integers of all sizes in vector
29296 (fix<uns>_<mode>di2_hw): Likewise.
29297 (float<uns>_<mode>si2_hw): Likewise.
29298 (fix_<mode>si2_hw): Likewise.
29299 (fixuns_<mode>si2_hw): Likewise.
29300 (float<uns>_<mode>di2_hw): Likewise.
29301 (float_<mode>di2_hw): Likewise.
29302 (float_<mode>si2_hw): Likewise.
29303 (floatuns_<mode>di2_hw): Likewise.
29304 (floatuns_<mode>si2_hw): Likewise.
29305 (xscvqp<su>wz_<mode>): Delete, no longer used.
29306 (xscvqp<su>dz_<mode>): Likewise.
29307 (xscv<su>dqp_<mode>): Likewise.
29308 (ieee128_mfvsrd_64bit): Likewise.
29309 (ieee128_mfvsrd_32bit): Likewise.
29310 (ieee128_mfvsrwz): Likewise.
29311 (ieee128_mtvsrw): Likewise.
29312 (ieee128_mtvsrd_64bit): Likewise.
29313 (ieee128_mtvsrd_32bit): Likewise.
29315 2017-01-31 Martin Liska <mliska@suse.cz>
29318 * ipa-prop.c (ipa_free_all_node_params): Call release method
29319 instead of ~sumbol_summary to not to trigger double times
29322 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
29324 PR tree-optimization/71691
29325 * bitmap.h (class auto_bitmap): New.
29326 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
29327 is_maybe_undefined instead of ssa_undefined_value_p.
29329 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29331 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
29332 __S390_ARCH_LEVEL__ to __ARCH__.
29334 2017-01-31 Jakub Jelinek <jakub@redhat.com>
29336 PR tree-optimization/79267
29337 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
29338 if should_remove_lhs_p is true.
29340 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
29343 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
29344 (add_alignment_attribute): New.
29345 (base_type_die): Add alignment attribute.
29346 (subrange_type_die): Likewise.
29347 (modified_type_die): Likewise.
29348 (gen_array_type_die): Likewise.
29349 (gen_descr_array_type_die: Likewise.
29350 (gen_enumeration_type_die): Likewise.
29351 (gen_subprogram_die): Likewise.
29352 (gen_variable_die): Likewise.
29353 (gen_field_die): Likewise.
29354 (gen_ptr_to_mbr_type_die): Likewise.
29355 (gen_struct_or_union_type_die): Likewise.
29356 (gen_subroutine_type_die): Likewise.
29357 (gen_typedef_die): Likewise.
29358 (base_type_cmp): Compare alignment attribute.
29360 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
29363 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
29364 (setb_unsigned) New pattern for setb with CCUNS.
29365 * config/rs6000/rs6000.c (expand_block_compare): Use a different
29366 subfc./subfe sequence to avoid overflow problems. Generate a
29367 shorter sequence with cmpld/setb for power9.
29368 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
29369 for generating subfc. instruction.
29370 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
29371 now uses this instruction.
29373 2017-01-30 Ian Lance Taylor <iant@google.com>
29376 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
29377 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
29379 2017-01-30 Martin Sebor <msebor@redhat.com>
29381 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
29382 Move constant to the right of a relational operator.
29383 (get_mpfr_format_length, format_character, format_string): Ditto.
29384 (should_warn_p, maybe_warn): Same.
29386 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
29388 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
29391 * asan.c (get_translation_unit_decl): Remove function.
29392 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
29394 2017-01-30 Martin Liska <mliska@suse.cz>
29396 PR gcov-profile/79259
29397 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
29398 -fprofile-generate.
29400 2017-01-30 Martin Liska <mliska@suse.cz>
29403 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
29404 Initialize variables with NULL value.
29406 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
29409 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
29411 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
29413 2017-01-30 Richard Biener <rguenther@suse.de>
29415 PR tree-optimization/79276
29416 * tree-vrp.c (process_assert_insertions): Properly adjust common
29417 when removing a duplicate.
29419 * gcc.dg/torture/pr79276.c: New testcase.
29421 2017-01-30 Richard Biener <rguenther@suse.de>
29423 PR tree-optimization/79256
29424 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
29425 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
29427 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
29429 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
29432 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
29433 ("*r<noxa>sbg_<mode>_sll_bitmask")
29434 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
29435 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
29436 Use contiguous_bitmask_nowrap_operand.
29438 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29441 * config/rs6000/altivec.h (vec_xl): Revise #define.
29442 (vec_xst): Likewise.
29444 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
29446 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
29448 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
29450 PR rtl-optimization/79194
29451 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
29452 traps before call to bypass_conditional_jumps.
29454 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
29456 PR tree-optimization/71374
29457 * lra-constraints.c (check_conflict_input_operands): New.
29458 (match_reload): Use it.
29460 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
29463 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
29464 account to calculate conflict_set.
29466 2017-01-27 Bin Cheng <bin.cheng@arm.com>
29468 PR rtl-optimization/78559
29469 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
29470 other_insn in combine.
29472 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
29474 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
29475 uint16_type_node for BT_UINT16.
29477 2017-01-27 David Malcolm <dmalcolm@redhat.com>
29479 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
29480 "RTL Tests" to menu.
29481 (GIMPLE Tests): New node.
29482 (RTL Tests): New node.
29484 2017-01-27 Richard Biener <rguenther@suse.de>
29486 PR tree-optimization/79245
29487 * tree-loop-distribution.c (distribute_loop): Apply cost
29488 modeling also to detected patterns.
29490 2017-01-27 Richard Biener <rguenther@suse.de>
29492 PR tree-optimization/71433
29493 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
29494 (compare_assert_loc): New function.
29495 (process_assert_insertions): Sort and optimize assert locations
29496 to remove duplicates and push down identical assertions on
29497 edges to their destination block.
29499 2017-01-27 Richard Biener <rguenther@suse.de>
29501 PR tree-optimization/79244
29502 * tree-vrp.c (remove_range_assertions): Forcefully propagate
29503 out SSA names even if abnormal.
29505 2017-01-27 Jakub Jelinek <jakub@redhat.com>
29507 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
29508 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
29509 instead of MPFR_RNDN.
29511 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
29514 * arm.c (arm_option_override): Don't call build_target_option_node
29515 until after doing all option overrides.
29516 (arm_valid_target_attribute_tree): Likewise.
29518 2017-01-27 Martin Liska <mliska@suse.cz>
29520 * doc/invoke.texi (-fprofile-arcs): Document profiling support
29521 for {cd}tors and C++ {cd}tors.
29523 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
29525 * config/s390/s390.md ("*setmem_long_and")
29526 ("*setmem_long_and_31z"): Use zero_extend instead of and.
29528 2017-01-26 Martin Sebor <msebor@redhat.com>
29530 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
29533 2017-01-26 Martin Sebor <msebor@redhat.com>
29535 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
29536 HAVE_DFmode before using XFmode or DFmode.
29537 (parse_directive): Avoid using the z length modifier to avoid
29538 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
29540 PR middle-end/78703
29541 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
29542 to accept adjustment as an array.
29543 (get_int_range): New function.
29544 (struct directive): Make width and prec arrays.
29545 (directive::set_width, directive::set_precision): Call get_int_range.
29546 (format_integer, format_floating): Handle width and precision ranges.
29547 (format_string, parse_directive): Same.
29549 2017-01-26 Jakub Jelinek <jakub@redhat.com>
29552 * dwarf2out.c (generate_skeleton_bottom_up): For children with
29553 comdat_type_p set, just clone them, but keep the children in the
29557 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
29558 which have direct callers with -fvar-tracking-assignments enabled
29560 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
29561 inside of type units.
29563 2017-01-26 Martin Sebor <msebor@redhat.com>
29565 PR middle-end/78703
29566 * gimple-ssa-sprintf.c (struct result_range): Add likely and
29568 (struct format_result): Replace number_chars, number_chars_min,
29569 and number_chars_max with a single member of struct result_range.
29571 (format_result::operator+=): Adjust.
29572 (struct fmtresult): Remove bounded. Handle likely and unlikely
29574 (fmtresult::adjust_for_width_or_precision): New function.
29575 (fmtresult:type_max_digits): New function.
29576 (bytes_remaining): Handle likely and unlikely counters.
29577 (min_bytes_remaining): Remove.
29578 (format_percent): Simplify.
29579 (format_integer, format_floating): Set likely and unlikely counters.
29580 (get_string_length, format_character, format_string): Same.
29581 (format_plain, should_warn_p): New function.
29582 (maybe_warn): Call should_warn_p. Update diagnostic messages
29583 and handle those for all directives, including plain strings.
29584 (format_directive): Handle likely and unlikely counters.
29585 Remove unnecessary quoting from diagnostics. Add an informational
29587 (add_bytes): Remove.
29588 (pass_sprintf_length::compute_format_length): Simplify.
29589 (try_substitute_return_value): Handle likely and unlikely counters.
29591 2017-01-26 Carl Love <cel@us.ibm.com>
29593 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
29594 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
29596 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
29599 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
29600 endianess for subregs into account.
29601 * lra-constraints.c (lra_constraints): Do risky transformations
29602 always on the first iteration.
29603 * lra-lives.c (check_pseudos_live_through_calls): Add arg
29604 last_call_used_reg_set.
29605 (process_bb_lives): Define and use last_call_used_reg_set.
29606 * lra.c (lra): Always continue after lra_constraints on the first
29609 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
29611 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
29613 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
29615 2017-01-26 Jakub Jelinek <jakub@redhat.com>
29617 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
29618 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
29619 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
29620 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
29621 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
29622 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
29623 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
29624 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
29625 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
29627 2017-01-26 Marek Polacek <polacek@redhat.com>
29630 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
29631 for the third operand.
29633 2017-01-26 Jakub Jelinek <jakub@redhat.com>
29635 PR middle-end/79236
29636 * omp-low.c (struct omp_context): Add simt_stmt field.
29637 (scan_omp_for): Return omp_context *.
29638 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
29639 context to the _simt_ SIMD stmt.
29640 (lower_omp_for): For combined SIMD with sibling _simt_
29641 SIMD, make sure to use the same decls in _looptemp_
29642 clauses as in the sibling.
29644 2017-01-26 David Sherwood <david.sherwood@arm.com>
29646 PR middle-end/79212
29647 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
29650 2017-01-26 Jakub Jelinek <jakub@redhat.com>
29653 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
29654 emit fld b; fld a; if possible.
29656 * brig-builtins.def: Update copyright years.
29657 * config/arm/arm_acle_builtins.def: Update copyright years.
29659 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
29662 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
29663 constraint instead of o for the stxsd instruction.
29665 2017-01-25 Carl Love <cel@us.ibm.com>
29667 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
29668 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
29670 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
29672 * doc/invoke.texi (C++ Dialect Options): Fix typo.
29674 2017-01-25 Richard Biener <rguenther@suse.de>
29676 PR tree-optimization/69264
29677 * target.def (vector_alignment_reachable): Improve documentation.
29678 * doc/tm.texi: Regenerate.
29679 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
29681 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
29682 earlier changes with respect to TYPE_USER_ALIGN.
29683 (vector_alignment_reachable_p): Likewise. Improve dumping.
29685 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29688 * config/arm/arm.md (xordi3): Force constant operand into a register
29691 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29693 * doc/invoke.texi (-fstore-merging): Correct default optimization
29694 levels at which it is enabled.
29695 (-O): Move -fstore-merging from list to...
29698 2017-01-25 Richard Biener <rguenther@suse.de>
29701 * omp-expand.c: Include debug.h.
29702 (expand_omp_taskreg): Make sure to generate early debug before
29703 outlining anything from a function.
29704 (expand_omp_target): Likewise.
29705 (grid_expand_target_grid_body): Likewise.
29707 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
29710 * asan.c (get_translation_unit_decl): New function.
29711 (asan_add_global): Extract modules file name from globals
29712 TRANSLATION_UNIT_DECL name.
29714 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
29717 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
29718 for long calls with APCS frame and VFP.
29720 2017-01-24 David Malcolm <dmalcolm@redhat.com>
29722 * cfg.c (original_copy_tables_initialized_p): New function.
29723 * cfg.h (original_copy_tables_initialized_p): New decl.
29724 * cfgrtl.c (relink_block_chain): Guard the call to
29725 free_original_copy_tables with a call to
29726 original_copy_tables_initialized_p.
29727 * cgraph.h (symtab_node::native_rtl_p): New decl.
29728 * cgraphunit.c (symtab_node::native_rtl_p): New function.
29729 (symtab_node::needed_p): Don't assert for early assembly output
29730 for __RTL functions.
29731 (cgraph_node::finalize_function): Set "force_output" for __RTL
29733 (cgraph_node::analyze): Bail out early for __RTL functions.
29734 (analyze_functions): Update assertion to support __RTL functions.
29735 (cgraph_node::expand): Bail out early for __RTL functions.
29736 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
29738 * function.h (struct function): Update comment for field
29740 * gimple-expr.c: Include "tree-pass.h".
29741 (gimple_has_body_p): Return false for __RTL functions.
29742 * Makefile.in (OBJS): Add run-rtl-passes.o.
29743 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
29745 (gcc::pass_manager::get_clean_slate): New accessor.
29746 * passes.c: Include "insn-addr.h".
29747 (should_skip_pass_p): Add logging. Update logic for running
29748 "expand" to be compatible with both __GIMPLE and __RTL. Guard
29749 property-provider override so it is only done for gimple passes.
29751 (skip_pass): New function.
29752 (execute_one_pass): Call skip_pass when skipping passes.
29753 * read-md.c (md_reader::read_char): Support filtering
29754 the input to a subset of line numbers.
29755 (md_reader::md_reader): Initialize fields
29756 m_first_line and m_last_line.
29757 (md_reader::read_file_fragment): New function.
29758 * read-md.h (md_reader::read_file_fragment): New decl.
29759 (md_reader::m_first_line): New field.
29760 (md_reader::m_last_line): New field.
29761 * read-rtl-function.c (function_reader::create_function): Only
29762 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
29763 curr_properties. Set DECL_INITIAL to a dummy block.
29764 (read_rtl_function_body_from_file_range): New function.
29765 * read-rtl-function.h (read_rtl_function_body_from_file_range):
29767 * run-rtl-passes.c: New file.
29768 * run-rtl-passes.h: New file.
29770 2017-01-24 Jeff Law <law@redhat.com>
29772 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
29775 2017-01-24 Bin Cheng <bin.cheng@arm.com>
29777 PR tree-optimization/79159
29778 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
29779 (record_nonwrapping_iv): Improve boundary using above function if no
29780 value range information.
29782 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
29783 Martin Jambor <mjambor@suse.cz>
29785 * brig-builtins.def: New file.
29786 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
29787 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
29788 (DEF_HSAIL_SAT_BUILTIN): Likewise.
29789 (DEF_HSAIL_INTR_BUILTIN): Likewise.
29790 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
29791 * builtin-types.def (BT_INT8): New.
29792 (BT_INT16): Likewise.
29793 (BT_UINT8): Likewise.
29794 (BT_UINT16): Likewise.
29795 (BT_FN_ULONG): Likewise.
29796 (BT_FN_UINT_INT): Likewise.
29797 (BT_FN_UINT_ULONG): Likewise.
29798 (BT_FN_UINT_LONG): Likewise.
29799 (BT_FN_UINT_PTR): Likewise.
29800 (BT_FN_ULONG_PTR): Likewise.
29801 (BT_FN_INT8_FLOAT): Likewise.
29802 (BT_FN_INT16_FLOAT): Likewise.
29803 (BT_FN_UINT32_FLOAT): Likewise.
29804 (BT_FN_UINT16_FLOAT): Likewise.
29805 (BT_FN_UINT8_FLOAT): Likewise.
29806 (BT_FN_UINT64_FLOAT): Likewise.
29807 (BT_FN_UINT16_UINT32): Likewise.
29808 (BT_FN_UINT32_UINT16): Likewise.
29809 (BT_FN_UINT16_UINT16_UINT16): Likewise.
29810 (BT_FN_INT_PTR_INT): Likewise.
29811 (BT_FN_UINT_PTR_UINT): Likewise.
29812 (BT_FN_LONG_PTR_LONG): Likewise.
29813 (BT_FN_ULONG_PTR_ULONG): Likewise.
29814 (BT_FN_VOID_UINT64_UINT64): Likewise.
29815 (BT_FN_UINT8_UINT8_UINT8): Likewise.
29816 (BT_FN_INT8_INT8_INT8): Likewise.
29817 (BT_FN_INT16_INT16_INT16): Likewise.
29818 (BT_FN_INT_INT_INT): Likewise.
29819 (BT_FN_UINT_FLOAT_UINT): Likewise.
29820 (BT_FN_FLOAT_UINT_UINT): Likewise.
29821 (BT_FN_ULONG_UINT_UINT): Likewise.
29822 (BT_FN_ULONG_UINT_PTR): Likewise.
29823 (BT_FN_ULONG_ULONG_ULONG): Likewise.
29824 (BT_FN_UINT_UINT_UINT): Likewise.
29825 (BT_FN_VOID_UINT_PTR): Likewise.
29826 (BT_FN_UINT_UINT_PTR: Likewise.
29827 (BT_FN_UINT32_UINT64_PTR): Likewise.
29828 (BT_FN_INT_INT_UINT_UINT): Likewise.
29829 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
29830 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
29831 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
29832 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
29833 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
29834 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
29835 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
29836 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
29837 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
29838 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
29839 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
29840 * doc/frontends.texi: List BRIG FE.
29841 * doc/install.texi (Testing): Add BRIG tesring requirements.
29842 * doc/invoke.texi (Overall Options): Mention BRIG.
29843 * doc/standards.texi (Standards): Doucment BRIG HSA version.
29845 2017-01-24 Richard Biener <rguenther@suse.de>
29847 PR translation/79208
29848 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
29850 2017-01-24 Martin Jambor <mjambor@suse.cz>
29853 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
29854 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
29855 and known_contexts.
29857 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
29859 PR middle-end/79123
29860 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
29861 casts from signed to unsigned really don't have a range.
29863 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
29865 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
29866 GMP_RNDx for compatiblity.
29868 2017-01-24 Martin Liska <mliska@suse.cz>
29871 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
29872 that would prevent us to call alloca with -1 as argument.
29874 2017-01-24 Jakub Jelinek <jakub@redhat.com>
29876 * dwarf2out.c (output_compilation_unit_header, output_file_names):
29877 Avoid -Wformat-security warning.
29879 2017-01-23 Andrew Pinski <apinski@cavium.com>
29881 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
29884 2017-01-23 Martin Sebor <msebor@redhat.com>
29886 PR middle-end/78703
29887 * gimple-ssa-sprintf.c (warn_level): New global.
29888 (format_integer): Use it here and throughout the rest of the file.
29889 Use the same switch to compute sign as base.
29890 (maybe_warn): New function.
29891 (format_directive): Factor out warnings into maybe_warn.
29892 Add debugging output. Use warn_level.
29893 (add_bytes): Use warn_level.
29894 (pass_sprintf_length::compute_format_length): Add debugging output.
29895 (try_substitute_return_value): Same.
29896 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
29898 PR middle-end/78703
29899 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
29900 (struct fmtresult, format_integer, format_floating): Adjust.
29901 (fmtresult::fmtresult): Set max correctly in two argument ctor.
29902 (get_string_length, format_string,format_directive): Same.
29903 (pass_sprintf_length::compute_format_length): Same.
29904 (try_substitute_return_value): Simplify slightly.
29906 PR middle-end/78703
29907 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
29908 (fmtresult::operator+=): Outlined.
29909 (struct fmtresult): Add ctors.
29910 (struct conversion_spec): Rename...
29911 (struct directive): ...to this. Add and remove data members.
29912 (directive::set_width, directive::set_precision): New functions.
29913 (format_percent): Use fmtresult ctor.
29914 (get_width_and_precision): Remove.
29915 (format_integer): Make naming changes. Avoid computing width and
29917 (format_floating): Same. Adjust indentation.
29918 (format_character, format_none): New functions.
29919 (format_string): Moved character handling to format_character.
29920 (format_directive): Remove arguments, change return type.
29921 (parse_directive): New function.
29922 (pass_sprintf_length::compute_format_length): Move directive
29923 parsing to parse_directive.
29925 2017-01-23 Jakub Jelinek <jakub@redhat.com>
29927 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
29928 (assign_assembler_name_if_needed): ... this.
29929 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
29930 (assign_assembler_name_if_needed): ... this.
29931 (free_lang_data_in_cgraph): Adjust callers.
29932 * cgraphunit.c (cgraph_node::analyze): Likewise.
29933 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
29936 2017-01-23 Richard Biener <rguenther@suse.de>
29938 PR tree-optimization/79088
29939 PR tree-optimization/79188
29940 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
29941 resetting loop bounds after last path deletion. Reset loop
29942 bounds of the target loop, make code match the comments.
29943 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
29944 Make sure loops need no fixups.
29946 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
29948 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
29949 exponent support with double type for first argument.
29950 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
29951 type returned by __builtin_vec_extract_sig,
29952 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
29953 functions from "vector int" to "vector unsigned int" or from
29954 "vector long long int" to "vector unsigned long long int".
29955 Changed type returned by __builtin_vec_extract_exp,
29956 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
29957 functions from "vector int" to "vector unsigned int" or from
29958 "vector long long int" to "vector unsigned long long int".
29959 Changed return type of __builtin_vec_test_data_class,
29960 __builtin_vec_test_data_class_sp, and
29961 __builtin_vec_test_data_class_dp from "vector int" to
29962 "vector bool int" or from "vector long long int" to "vector bool
29963 long long int" and changed second argument type from "unsigned
29964 int" to "int". Added new overloaded function forms "vector float
29965 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
29966 "vector float __builtin_vec_insert_exp_sp (vector float, vector
29967 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
29968 double, vector unsigned long long int)" and "vector double
29969 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
29970 long int)". Changed return type of
29971 __builtin_scalar_test_data_class and
29972 __builtin_scalar_test_data_class_sp and
29973 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
29974 int" and changed second argument from "unsigned int" to "int".
29975 Changed type returned by __builtin_scalar_test_neg,
29976 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
29977 from "int" to "bool int". Added new overloaded function form
29978 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
29979 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
29980 exponent double-precision with floating point first argument.
29981 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
29982 documentation of scalar_test_data_class, scalar_test_neg,
29983 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
29984 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
29985 vec_test_data_class built-in functions to reflect refinements in
29986 their type signatures.
29988 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
29990 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
29992 (aarch64_elf_asm_destructor): Likewise.
29994 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
29996 PR rtl-optimization/78634
29997 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
29998 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
29999 * ifcvt.c (noce_try_cmove): Add missing cost check.
30001 PR rtl-optimization/71724
30002 * combine.c (if_then_else_cond): Look for situations where it is
30003 beneficial to undo the work of one of the recursive calls.
30005 2017-01-23 Bin Cheng <bin.cheng@arm.com>
30007 PR tree-optimization/70754
30008 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
30009 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
30010 combined stmt before it if not NULL.
30011 (combine_chains): Process refs reversely and compute dominance point
30014 2017-01-23 Martin Liska <mliska@suse.cz>
30016 PR tree-optimization/79196
30017 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
30018 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
30020 (strlen_optimize_stmt): Call the renamed function.
30022 2017-01-23 Michael Matz <matz@suse.de>
30024 PR tree-optimization/78384
30025 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
30027 2017-01-23 Richard Biener <rguenther@suse.de>
30029 PR tree-optimization/79186
30030 * tree-vrp.c (register_new_assert_for): Make sure we've seen
30031 both incoming edges before moving an assert.
30033 2017-01-23 Martin Jambor <mjambor@suse.cz>
30035 * ipa-prop.c (load_from_param_1): Removed.
30036 (load_from_unmodified_param): Bits from load_from_param_1 put back
30038 (load_from_param): Removed.
30039 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
30040 with stmt. Reverted back to use of load_from_unmodified_param.
30042 2017-01-23 Martin Jambor <mjambor@suse.cz>
30045 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
30046 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
30047 field a pointer to garbage collected vector, mark lattices and
30048 ipcp_orig_node with GTY((skip)).
30049 (ipa_get_param_count): Adjust to descriptors being a pointer.
30050 (ipa_get_param): Likewise.
30051 (ipa_get_type): Likewise.
30052 (ipa_get_param_move_cost): Likewise.
30053 (ipa_set_param_used): Likewise.
30054 (ipa_get_controlled_uses): Likewise.
30055 (ipa_set_controlled_uses): Likewise.
30056 (ipa_is_param_used): Likewise.
30057 (ipa_node_params_t): Move into garbage collector. New methods insert
30059 (ipa_node_params_sum): Annotate wth GTY(()).
30060 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
30062 (ipa_load_from_parm_agg): Adjust declaration.
30063 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
30064 * ipa-profile.c (ipa_profile): Likewise.
30065 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
30066 (ipa_populate_param_decls): Make descriptors parameter garbage
30068 (ipa_dump_param): Adjust to descriptors being a pointer.
30069 (ipa_alloc_node_params): Likewise.
30070 (ipa_initialize_node_params): Likewise.
30071 (load_from_param_1): Make descriptors parameter garbage collected.
30072 (load_from_unmodified_param): Likewise.
30073 (load_from_param): Likewise.
30074 (ipa_load_from_parm_agg): Likewise.
30075 (ipa_node_params::~ipa_node_params): Removed.
30076 (ipa_free_all_node_params): Remove call to delete operator.
30077 (ipa_node_params_t::insert): New.
30078 (ipa_node_params_t::remove): Likewise.
30079 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
30080 copy known_csts and known_contexts vectors.
30081 (ipa_read_node_info): Adjust to descriptors being a pointer.
30082 (ipcp_modif_dom_walker): Make m_descriptors field garbage
30084 (ipcp_transform_function): Make descriptors variable garbage
30087 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
30089 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
30090 * config/i386/avx512dqintrin.h: Ditto.
30091 * config/i386/avx512fintrin.h: Ditto.
30092 * config/i386/i386.c: Handle new builtins.
30093 * config/i386/i386-builtin.def: Add new builtins.
30094 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
30095 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
30097 2017-01-23 Jakub Jelinek <jakub@redhat.com>
30098 Martin Liska <mliska@suse.cz>
30100 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
30101 * asan.c (asan_expand_poison_ifn): Support stores and use
30102 appropriate ASAN report function.
30103 * internal-fn.c (expand_ASAN_POISON_USE): New function.
30104 * internal-fn.def (ASAN_POISON_USE): Declare.
30105 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
30106 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
30107 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
30108 ASAN_POISON calls w/o LHS.
30109 * tree-ssa.c (execute_update_addresses_taken): Create clobber
30110 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
30111 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
30112 * gimplify.c (asan_poison_variables): Add attribute
30113 use_after_scope_memory to variables that really needs to live
30115 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
30116 having the attribute.
30118 2017-01-23 Martin Liska <mliska@suse.cz>
30120 * asan.c (create_asan_shadow_var): New function.
30121 (asan_expand_poison_ifn): Likewise.
30122 * asan.h (asan_expand_poison_ifn): New declaration.
30123 * internal-fn.c (expand_ASAN_POISON): Likewise.
30124 * internal-fn.def (ASAN_POISON): New builtin.
30125 * sanopt.c (pass_sanopt::execute): Expand
30126 asan_expand_poison_ifn.
30127 * tree-inline.c (copy_decl_for_dup_finish): Make function
30129 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
30130 * tree-ssa.c (is_asan_mark_p): New function.
30131 (execute_update_addresses_taken): Rewrite local variables
30132 (identified just by use-after-scope as addressable) into SSA.
30134 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
30136 * doc/install.texi (Specific): opensource.apple.com uses https
30137 now. Remove trailing slash.
30139 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
30141 * README.Portability: Remove note on an Irix compatibility issue.
30143 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
30145 * gcov.c (INCLUDE_ALGORITHM): Define.
30146 (INCLUDE_VECTOR): Define.
30147 No longer include <vector> and <algorithm> directly.
30149 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
30151 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
30153 * doc/invoke.texi (Code Gen Options): Ditto.
30155 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
30158 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
30160 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
30162 rtl-optimization/79125
30163 * cprop.c (local_cprop_pass): Handle cases where we make an
30164 unconditional trap.
30166 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
30170 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
30171 read from, for big endian.
30173 2017-01-20 Jiong Wang <jiong.wang@arm.com>
30175 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
30176 register pauth builtins for LP64 only.
30178 2017-01-20 Marek Polacek <polacek@redhat.com>
30181 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
30184 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
30186 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
30188 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
30189 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
30190 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
30192 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30195 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
30196 in big-endian mode when they are not a single duplicated value.
30198 2017-01-20 Richard Biener <rguenther@suse.de>
30200 * BASE-VER: Bump to 7.0.1.
30202 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
30204 * omp-low.c (omplow_simd_context): New struct. Use it...
30205 (lower_rec_simd_input_clauses): ...here and...
30206 (lower_rec_input_clauses): ...here to hold common data. Adjust all
30207 references to idx, lane, max_vf, is_simt.
30209 2017-01-20 Graham Markall <graham.markall@embecosm.com>
30211 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
30214 2017-01-20 Martin Jambor <mjambor@suse.cz>
30216 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
30217 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
30219 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
30220 (GTFILES): Rename hsa.c to hsa-common.c.
30221 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
30222 * hsa-dump.c: Likewise.
30223 * hsa-gen.c: Likewise.
30224 * hsa-regalloc.c: Likewise.
30225 * ipa-hsa.c: Likewise.
30226 * omp-expand.c: Likewise.
30227 * omp-low.c: Likewise.
30228 * toplev.c: Likewise.
30230 2017-01-20 Marek Polacek <polacek@redhat.com>
30233 * doc/invoke.texi: Document -Wduplicated-branches.
30234 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
30235 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
30236 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
30237 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
30238 return 0 only when not OEP_LEXICOGRAPHIC.
30239 (fold_build_cleanup_point_expr): Use the expression
30240 location when building CLEANUP_POINT_EXPR.
30241 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
30242 * tree.c (add_expr): Handle error_mark_node.
30244 2017-01-20 Martin Liska <mliska@suse.cz>
30247 * tree-profile.c (init_ic_make_global_vars): Do not call
30249 (gimple_init_gcov_profiler): Likewise.
30251 2017-01-20 Martin Liska <mliska@suse.cz>
30254 * cgraph.h (maybe_create_reference): Remove argument and
30256 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
30258 * ipa-cp.c (create_specialized_node): Likewise.
30259 * symtab.c (symtab_node::maybe_create_reference): Handle
30260 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
30262 2017-01-20 Martin Liska <mliska@suse.cz>
30264 * read-rtl-function.c (function_reader::create_function): Use
30265 build_decl instread of build_decl_stat.
30267 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
30269 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
30270 * config/i386/avx512dqintrin.h: Ditto.
30271 * config/i386/avx512fintrin.h: Ditto.
30272 * config/i386/i386-builtin-types.def: Add new types.
30273 * config/i386/i386.c: Handle new types.
30274 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
30275 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
30276 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
30277 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
30278 (__builtin_ia32_kshiftridi): New.
30279 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
30281 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
30285 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
30286 define to rs6000_init_stack_protect_guard.
30287 (rs6000_init_stack_protect_guard): New function.
30289 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
30290 Yunqiang Su <yunqiang.su@imgtec.com>
30292 * config.gcc (supported_defaults): Add madd4.
30293 (with_madd4): Add validation.
30294 (all_defaults): Add madd4.
30295 * config/mips/mips.opt (mmadd4): New option.
30296 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
30298 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
30300 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
30301 (ISA_HAS_FUSED_MADD4): Likewise.
30302 * doc/invoke.texi (-mmadd4): Document the new option.
30303 * doc/install.texi (--with-madd4): Document the new option.
30305 2017-01-19 Jiong Wang <jiong.wang@arm.com>
30307 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
30308 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
30309 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
30310 (aarch64_init_pauth_hint_builtins): New.
30311 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
30312 (aarch64_expand_builtin): Expand new builtins.
30314 2017-01-19 Jiong Wang <jiong.wang@arm.com>
30316 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
30317 * combine-stack-adj.c (no_unhandled_cfa): Handle
30318 REG_CFA_TOGGLE_RA_MANGLE.
30319 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
30320 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
30321 info for return address signing.
30322 (aarch64_expand_epilogue): Likewise.
30324 2017-01-19 Jiong Wang <jiong.wang@arm.com>
30326 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
30327 * config/aarch64/aarch64-protos.h
30328 (aarch64_return_address_signing_enabled): New declaration.
30329 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
30331 (aarch64_expand_prologue): Sign return address before it's pushed onto
30333 (aarch64_expand_epilogue): Authenticate return address fetched from
30335 (aarch64_override_options): Sanity check for ILP32 and ISA level.
30336 (aarch64_attributes): New function attributes for "sign-return-address".
30337 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
30338 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
30339 ("*do_return"): Generate combined instructions according to key index.
30340 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
30341 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
30343 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
30344 * config/aarch64/aarch64.opt (msign-return-address=): New.
30345 * doc/extend.texi (AArch64 Function Attributes): Documents
30346 "sign-return-address=".
30347 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
30349 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
30351 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
30352 overall option summary.
30354 2017-01-19 Jiong Wang <jiong.wang@arm.com>
30356 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
30357 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
30358 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
30359 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
30361 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
30363 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
30364 -mpower9-minmax by default for -mcpu=power9.
30365 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
30366 128-bit floating point.
30368 2017-01-20 Alan Modra <amodra@gmail.com>
30370 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
30371 optimizing for size.
30373 2017-01-20 Alan Modra <amodra@gmail.com>
30376 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
30377 for strcmp and strncmp from corresponding builtin decl.
30379 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
30381 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
30382 instead of i386/rtems-64.h.
30383 * config/i386/rtems-64.h: Remove.
30385 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
30389 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
30391 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
30393 2017-01-19 Tamar Christina <tamar.christina@arm.com>
30395 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
30396 Change int to HOST_WIDE_INT.
30397 * config/aarch64/aarch64-protos.h
30398 (aarch64_simd_gen_const_vector_dup): Likewise.
30399 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
30401 2017-01-19 David Malcolm <dmalcolm@redhat.com>
30403 * langhooks-def.h (lhd_type_for_size): New decl.
30404 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
30405 * langhooks.c (lhd_type_for_size): New function, taken from
30408 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
30410 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
30411 define_bypass for CR latency.
30412 (power9-cracked-alu): Update bypass latency and remove power9-branch.
30413 (power9-alu2): Add define_bypass for CR latency.
30415 (power9-mul): Update insn latency.
30416 (power9-mul-compare): Update insn latency, bypass latency and remove
30419 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30421 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
30423 * config/aarch64/aarch64.md
30424 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
30425 aarch64_nopcrelative_literal_loads.
30426 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
30428 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
30430 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
30431 TARGET_LOONGSON_3A.
30432 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
30434 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
30437 * config.gcc (supported_defaults): Add lxc1-sxc1.
30438 (with_lxc1_sxc1): Add validation.
30439 (all_defaults): Add lxc1-sxc1.
30440 * config/mips/mips.opt (mlxc1-sxc1): New option.
30441 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
30443 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
30444 __mips_no_lxc1_sxc1.
30445 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
30446 * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
30447 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
30449 2017-01-19 Richard Biener <rguenther@suse.de>
30451 PR tree-optimization/72488
30452 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
30453 sure to restore SSA info.
30454 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
30456 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
30458 PR rtl-optimization/79121
30459 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
30460 of the inner type when shifting an extended value.
30462 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
30465 * symtab.c (symtab_node::equal_address_to): Fix comparing of
30466 interposable aliases.
30468 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
30471 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
30472 Use the evmergelohi instruction.
30473 (mov_si<mode>_e500_subreg4_2_le): Likewise.
30474 (mov_sitf_e500_subreg8_2_be): Likewise.
30475 (mov_sitf_e500_subreg12_2_le): Likewise.
30476 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
30477 (mov_si<mode>_e500_subreg4_2_be): Likewise.
30478 (mov_sitf_e500_subreg8_2_le): Likewise.
30479 (mov_sitf_e500_subreg12_2_be): Likewise.
30481 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30483 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
30484 attribute from vecsimple to vecperm.
30485 (altivec_vbpermq2): Likewise.
30487 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30490 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
30492 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
30493 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
30494 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
30495 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
30496 case where N arg is SIZE_MAX.
30497 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
30498 (cmpstrsi): Add pattern.
30500 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
30502 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30503 __builtin_vec_revb builtins.
30504 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
30505 built-in functions to support generation of the ISA 3.0 XXBR<x>
30506 vector byte reverse instructions.
30507 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
30508 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
30509 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
30510 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
30511 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
30512 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
30513 (P9V_BUILTIN_VEC_REVB): Likewise.
30514 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
30515 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
30516 (p9_xxbrq_v16qi): Likewise.
30517 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
30518 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
30519 (p9_xxbrh_v8hi): Likewise.
30520 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
30521 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
30522 vec_revb built-in functions.
30524 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
30526 PR rtl-optimization/78952
30527 * config/i386/i386.md (any_extract): New code iterator.
30528 (*insvqi_2): Use any_extract for source operand.
30529 (*insvqi_3): Use any_shiftrt for source operand.
30531 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
30533 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
30535 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
30537 2017-01-18 Matthias Klose <doko@ubuntu.com>
30539 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
30541 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30543 * config/rs6000/altivec.h (vec_bperm): Change #define.
30544 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
30545 (altivec_vbpermq2): New define_insn.
30546 (altivec_vbpermd): Likewise.
30547 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
30548 function interface.
30549 (VBPERMD): Likewise.
30550 (VBPERM): New polymorphic function interface.
30551 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
30552 Add entries for P9V_BUILTIN_VEC_VBPERM.
30553 * doc/extend.texi: Add interfaces for vec_bperm.
30555 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30557 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
30558 first letter of error messages.
30559 (s390_resolve_overloaded_builtin): Likewise.
30560 * config/s390/s390.c (s390_expand_builtin): Likewise.
30561 (s390_invalid_arg_for_unprototyped_fn): Likewise.
30562 (s390_valid_target_attribute_inner_p): Likewise.
30563 * config/s390/s390.md ("tabort"): Likewise.
30565 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
30567 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
30568 (ISA_AVOID_DIV_HILO): New macro.
30569 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
30570 (ISA_HAS_DDIV): Likewise.
30572 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
30574 * doc/invoke.texi (fabi-version): Correct number of occurrences.
30576 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
30578 * doc/invoke.texi (fabi-version): Spelling fix.
30580 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
30583 * doc/invoke.texi (fabi-version): Mention mangling fix for
30586 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
30589 * doc/invoke.texi (fabi-version): Document discriminator mangling.
30591 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
30594 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
30595 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
30597 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
30599 (stack_protect_test): Ditto.
30600 * config/rs6000/rs6000.opt (mstack-protector-guard=,
30601 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
30603 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
30604 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
30605 -mstack-protector-guard-offset=.
30606 (RS/6000 and PowerPC Options): Ditto.
30608 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
30610 * config/i386/i386.h (MASK_CLASS_P): New define.
30611 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
30612 there are no registers from different register sets also when
30613 mask registers are used. Update function comment.
30614 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
30615 to (*k/*r) and (*k/*km) alternatives.
30617 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
30619 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
30620 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
30621 (EH_RETURN_HANDLER_RTX): New define.
30622 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
30623 Force frame pointer in EH return functions.
30624 (aarch64_expand_epilogue): Add barrier for eh_return.
30625 (aarch64_final_eh_return_addr): Remove.
30626 (aarch64_eh_return_handler_rtx): New function.
30627 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
30629 (aarch64_eh_return_handler_rtx): New prototype.
30631 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30633 * config/rs6000/altivec.h (vec_rlmi): New #define.
30634 (vec_vrlnm): Likewise.
30635 (vec_rlnm): Likewise.
30636 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
30637 (UNSPEC_VRLNM): Likewise.
30638 (VIlong): New mode iterator.
30639 (altivec_vrl<VI_char>mi): New define_insn.
30640 (altivec_vrl<VI_char>nm): Likewise.
30641 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
30643 (VRLDNM): Likewise.
30644 (RLNM): New polymorphic function entry.
30645 (VRLWMI): New monomorphic function entry.
30646 (VRLDMI): Likewise.
30647 (RLMI): New polymorphic function entry.
30648 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
30649 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
30650 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
30653 2017-01-17 Jakub Jelinek <jakub@redhat.com>
30656 * dwarf2out.c (field_byte_offset): Restore the
30657 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
30658 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
30659 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
30662 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
30665 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
30667 2017-01-17 Jakub Jelinek <jakub@redhat.com>
30670 * dwarf2out.c (add_data_member_location_attribute): For constant
30671 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
30672 instead of DW_AT_data_member_location, DW_AT_bit_offset and
30673 DW_AT_byte_size attributes.
30675 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
30677 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
30678 after forcing to constant memory when the code model is medium.
30680 2017-01-17 Julia Koval <julia.koval@intel.com>
30683 * config/i386/avx512fintrin.h
30684 (_mm512_i32gather_ps): Change __addr type to void const*.
30685 (_mm512_mask_i32gather_ps): Ditto.
30686 (_mm512_i32gather_pd): Ditto.
30687 (_mm512_mask_i32gather_pd): Ditto.
30688 (_mm512_i64gather_ps): Ditto.
30689 (_mm512_mask_i64gather_ps): Ditto.
30690 (_mm512_i64gather_pd): Ditto.
30691 (_mm512_mask_i64gather_pd): Ditto.
30692 (_mm512_i32gather_epi32): Ditto.
30693 (_mm512_mask_i32gather_epi32): Ditto.
30694 (_mm512_i32gather_epi64): Ditto.
30695 (_mm512_mask_i32gather_epi64): Ditto.
30696 (_mm512_i64gather_epi32): Ditto.
30697 (_mm512_mask_i64gather_epi32): Ditto.
30698 (_mm512_i64gather_epi64): Ditto.
30699 (_mm512_mask_i64gather_epi64): Ditto.
30700 (_mm512_i32scatter_ps): Change __addr type to void*.
30701 (_mm512_mask_i32scatter_ps): Ditto.
30702 (_mm512_i32scatter_pd): Ditto.
30703 (_mm512_mask_i32scatter_pd): Ditto.
30704 (_mm512_i64scatter_ps): Ditto.
30705 (_mm512_mask_i64scatter_ps): Ditto.
30706 (_mm512_i64scatter_pd): Ditto.
30707 (_mm512_mask_i64scatter_pd): Ditto.
30708 (_mm512_i32scatter_epi32): Ditto.
30709 (_mm512_mask_i32scatter_epi32): Ditto.
30710 (_mm512_i32scatter_epi64): Ditto.
30711 (_mm512_mask_i32scatter_epi64): Ditto.
30712 (_mm512_i64scatter_epi32): Ditto.
30713 (_mm512_mask_i64scatter_epi32): Ditto.
30714 (_mm512_i64scatter_epi64): Ditto.
30715 (_mm512_mask_i64scatter_epi64): Ditto.
30716 * config/i386/avx512pfintrin.h
30717 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
30718 (_mm512_mask_prefetch_i32gather_ps): Ditto.
30719 (_mm512_mask_prefetch_i64gather_pd): Ditto.
30720 (_mm512_mask_prefetch_i64gather_ps): Ditto.
30721 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
30722 (_mm512_prefetch_i32scatter_ps): Ditto.
30723 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
30724 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
30725 (_mm512_prefetch_i64scatter_pd): Ditto.
30726 (_mm512_prefetch_i64scatter_ps): Ditto.
30727 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
30728 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
30729 * config/i386/avx512vlintrin.h
30730 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
30731 (_mm_mmask_i32gather_ps): Ditto.
30732 (_mm256_mmask_i32gather_pd): Ditto.
30733 (_mm_mmask_i32gather_pd): Ditto.
30734 (_mm256_mmask_i64gather_ps): Ditto.
30735 (_mm_mmask_i64gather_ps): Ditto.
30736 (_mm256_mmask_i64gather_pd): Ditto.
30737 (_mm_mmask_i64gather_pd): Ditto.
30738 (_mm256_mmask_i32gather_epi32): Ditto.
30739 (_mm_mmask_i32gather_epi32): Ditto.
30740 (_mm256_mmask_i32gather_epi64): Ditto.
30741 (_mm_mmask_i32gather_epi64): Ditto.
30742 (_mm256_mmask_i64gather_epi32): Ditto.
30743 (_mm_mmask_i64gather_epi32): Ditto.
30744 (_mm256_mmask_i64gather_epi64): Ditto.
30745 (_mm_mmask_i64gather_epi64): Ditto.
30746 (_mm256_i32scatter_ps): Change __addr type to void*.
30747 (_mm256_mask_i32scatter_ps): Ditto.
30748 (_mm_i32scatter_ps): Ditto.
30749 (_mm_mask_i32scatter_ps): Ditto.
30750 (_mm256_i32scatter_pd): Ditto.
30751 (_mm256_mask_i32scatter_pd): Ditto.
30752 (_mm_i32scatter_pd): Ditto.
30753 (_mm_mask_i32scatter_pd): Ditto.
30754 (_mm256_i64scatter_ps): Ditto.
30755 (_mm256_mask_i64scatter_ps): Ditto.
30756 (_mm_i64scatter_ps): Ditto.
30757 (_mm_mask_i64scatter_ps): Ditto.
30758 (_mm256_i64scatter_pd): Ditto.
30759 (_mm256_mask_i64scatter_pd): Ditto.
30760 (_mm_i64scatter_pd): Ditto.
30761 (_mm_mask_i64scatter_pd): Ditto.
30762 (_mm256_i32scatter_epi32): Ditto.
30763 (_mm256_mask_i32scatter_epi32): Ditto.
30764 (_mm_i32scatter_epi32): Ditto.
30765 (_mm_mask_i32scatter_epi32): Ditto.
30766 (_mm256_i32scatter_epi64): Ditto.
30767 (_mm256_mask_i32scatter_epi64): Ditto.
30768 (_mm_i32scatter_epi64): Ditto.
30769 (_mm_mask_i32scatter_epi64): Ditto.
30770 (_mm256_i64scatter_epi32): Ditto.
30771 (_mm256_mask_i64scatter_epi32): Ditto.
30772 (_mm_i64scatter_epi32): Ditto.
30773 (_mm_mask_i64scatter_epi32): Ditto.
30774 (_mm256_i64scatter_epi64): Ditto.
30775 (_mm256_mask_i64scatter_epi64): Ditto.
30776 (_mm_i64scatter_epi64): Ditto.
30777 (_mm_mask_i64scatter_epi64): Ditto.
30778 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
30779 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
30780 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
30781 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
30782 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
30783 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
30784 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
30785 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
30786 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
30787 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
30788 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
30789 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
30790 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
30791 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
30792 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
30793 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
30794 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
30795 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
30796 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
30797 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
30798 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
30799 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
30800 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
30801 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
30802 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
30803 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
30804 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
30805 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
30806 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
30807 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
30808 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
30809 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
30810 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
30811 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
30812 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
30813 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
30814 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
30815 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
30816 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
30817 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
30818 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
30819 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
30820 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
30821 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
30822 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
30823 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
30824 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
30825 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
30826 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
30827 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
30828 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
30829 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
30830 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
30831 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
30832 definitions accordingly.
30834 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
30835 Kuan-Lin Chen <kuanlinchentw@gmail.com>
30838 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
30841 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
30844 * ira-conflicts.c (ira_build_conflicts): Update total conflict
30845 hard regs for inner regno.
30847 2017-01-17 Martin Liska <mliska@suse.cz>
30850 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
30851 assumption and add comment.
30853 2017-01-17 Nathan Sidwell <nathan@acm.org>
30855 * ipa-visibility.c (localize_node): New function, broken out of ...
30856 (function_and_variable_visibility): ... here. Call it.
30858 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
30860 PR middle-end/77445
30861 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
30862 correctly set frequency of oudgoing edge.
30863 (duplicate_thread_path): Fix profile updating.
30865 2017-01-17 Jakub Jelinek <jakub@redhat.com>
30868 * configure.ac: Add GCC_BASE_VER.
30869 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
30870 version from BASE-VER file.
30871 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
30872 (gcc.o): Depend on $(BASEVER).
30873 * common.opt (dumpfullversion): New option.
30874 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
30875 * doc/invoke.texi: Document -dumpfullversion.
30876 * doc/install.texi: Document --with-gcc-major-version-only.
30877 * configure: Regenerated.
30879 2017-01-17 Richard Biener <rguenther@suse.de>
30881 PR tree-optimization/71433
30882 * tree-vrp.c (register_new_assert_for): Merge same asserts
30883 on all incoming edges.
30884 (process_assert_insertions_for): Handle insertions at the
30887 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
30889 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
30890 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
30892 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
30895 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
30898 2017-01-17 Alan Modra <amodra@gmail.com>
30901 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
30902 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
30903 symbolic stack limit when pic.
30905 2017-01-16 Martin Sebor <msebor@redhat.com>
30907 PR tree-optimization/78608
30908 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
30910 2017-01-16 Jeff Law <law@redhat.com>
30913 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
30914 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
30915 for several include directories that may be relative to sysroot.
30916 * config/i386/x-mingw32 (gplus_includedir): Define.
30917 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
30918 (native_system_includedir): Likewise.
30919 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
30920 override if TARGET_SYSTEM_ROOT is defined.
30921 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
30923 PR tree-optimization/79090
30924 PR tree-optimization/33562
30925 PR tree-optimization/61912
30926 PR tree-optimization/77485
30927 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
30928 and computed trims into the dump file.
30930 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
30932 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
30934 2017-01-16 Jakub Jelinek <jakub@redhat.com>
30937 * gimplify.c (gimplify_init_constructor): If want_value and
30938 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
30942 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
30943 sequence. Formatting fixes.
30944 (doloop_optimize): Formatting fixes.
30947 * gcc.c (debug_level_greater_than_spec_func): New function.
30948 (static_spec_functions): Add debug-level-gt spec function.
30949 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
30951 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
30952 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
30953 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
30954 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
30955 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
30956 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
30958 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
30960 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
30961 QImode fixups to general and mask registers only.
30963 2017-01-16 Carl Love <cel@us.ibm.com>
30965 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
30966 for built-in functions
30967 vector signed char vec_nabs (vector signed char)
30968 vector signed short vec_nabs (vector signed short)
30969 vector signed int vec_nabs (vector signed int)
30970 vector signed long long vec_nabs (vector signed long long)
30971 vector float vec_nabs (vector float)
30972 vector double vec_nabs (vector double)
30973 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
30975 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
30976 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
30977 * doc/extend.texi: Update the documentation file for the new built-in
30980 2017-01-16 Martin Sebor <msebor@redhat.com>
30982 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
30985 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30987 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
30988 UNSPEC_VSX__XXSPLTD to require special splat handling.
30990 2017-01-16 David Malcolm <dmalcolm@redhat.com>
30993 * system.h: Poison strndup.
30995 2017-01-16 Alan Modra <amodra@gmail.com>
30998 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
31001 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
31003 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
31005 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
31007 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
31008 call recog here. Assert that INSN_CODE (insn) is non-negative.
31010 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
31013 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
31015 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
31016 in the currently scheduled RTL fragment.
31018 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
31020 PR rtl-optimization/78751
31021 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
31024 2017-01-14 Jeff Law <law@redhat.com>
31026 PR tree-optimization/79090
31027 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
31028 variable length stores.
31029 (compute_trims): Delete dead assignment to *trim_tail.
31030 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
31033 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
31035 PR rtl-optimization/78626
31036 PR rtl-optimization/78727
31037 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
31038 of a block, and split such blocks after everything else is finished.
31040 2017-01-14 Alan Modra <amodra@gmail.com>
31043 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
31044 target legitimate_combined_insn.
31045 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
31046 (rs6000_legitimate_combined_insn): New function.
31047 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
31049 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
31050 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
31051 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
31053 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
31055 * doc/frontends.texi (G++ and GCC): Remove references to Java.
31057 2017-01-13 Jeff Law <law@redhat.com>
31059 PR tree-optimization/33562
31060 PR tree-optimization/61912
31061 PR tree-optimization/77485
31062 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
31064 (delete_dead_assignment): Likewise.
31065 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
31066 statement to delete_dead_call and delete_dead_assignment.
31068 2017-01-13 David Malcolm <dmalcolm@redhat.com>
31071 * substring-locations.c (format_warning_va): Strengthen case 1 so
31072 that both endpoints of the substring must be within the format
31073 range for just the substring to be printed.
31075 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
31077 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
31078 * config/i386/i386.c (ix86_target_string): Add missing options
31079 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
31080 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
31081 flags_other and ix86_target_other to flags2_other. Display unknown
31083 (ix86_valid_target_attribute_inner_p): Add missing options and
31084 reorder options by implied ISAs, as in ix86_target_string.
31086 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
31088 * hash-table.h (hash_table::too_empty_p): New function.
31089 (hash_table::expand): Use it.
31090 (hash_table::traverse): Likewise.
31091 (hash_table::empty_slot): Use sizeof (value_type) instead of
31092 sizeof (PTR) to convert bytes to elements. Shrink the table
31093 if the current size is excessive for the current number of
31096 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
31098 * ira-costs.c (record_reg_classes): Break from the inner loop
31099 early once alt_fail is known to be true. Update outer loop
31100 handling accordingly.
31102 2017-01-13 Jeff Law <law@redhat.com>
31104 * tree-ssa-dse.c (decrement_count): New function.
31105 (increment_start_addr, maybe_trim_memstar_call): Likewise.
31106 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
31107 when we know the partially dead statement is a mem* function.
31109 PR tree-optimization/61912
31110 PR tree-optimization/77485
31111 * tree-ssa-dse.c: Include expr.h.
31112 (maybe_trim_constructor_store): New function.
31113 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
31115 PR tree-optimization/33562
31116 PR tree-optimization/61912
31117 PR tree-optimization/77485
31118 * doc/invoke.texi: Document new dse-max-object-size param.
31119 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
31120 * tree-ssa-dse.c: Include params.h.
31121 (dse_store_status): New enum.
31122 (initialize_ao_ref_for_dse): New, partially extracted from
31124 (valid_ao_ref_for_dse, normalize_ref): New.
31125 (setup_live_bytes_from_ref, compute_trims): Likewise.
31126 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
31127 (maybe_trim_partially_dead_store): Likewise.
31128 (maybe_trim_complex_store): Likewise.
31129 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
31130 Track what bytes live from the original store. Return tri-state
31131 for dead, partially dead or live.
31132 (dse_dom_walker): Add constructor, destructor and new private members.
31133 (delete_dead_call, delete_dead_assignment): New extracted from
31135 (dse_optimize_stmt): Make a member of dse_dom_walker.
31136 Use initialize_ao_ref_for_dse.
31138 PR tree-optimization/33562
31139 PR tree-optimization/61912
31140 PR tree-optimization/77485
31141 * sbitmap.h (bitmap_count_bits): Prototype.
31142 (bitmap_clear_range, bitmap_set_range): Likewise.
31143 * sbitmap.c (bitmap_clear_range): New function.
31144 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
31146 2017-01-13 Martin Liska <mliska@suse.cz>
31149 * function.c (set_cfun): Add new argument force.
31150 * function.h (set_cfun): Likewise.
31151 * ipa-inline-transform.c (inline_call): Use the function when
31152 strict alising from is dropped for function we inline to.
31154 2017-01-13 Richard Biener <rguenther@suse.de>
31156 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
31157 for dumping GIMPLE INTEGER_CSTs.
31159 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31161 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
31162 to 201112L since C++17.
31164 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
31167 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
31168 if -fsanitize=kernel-address is present.
31170 2017-01-13 Richard Biener <rguenther@suse.de>
31172 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
31173 as _Literal ( type ) number in case usual suffixes do not
31174 preserve all information.
31176 2017-01-13 Richard Biener <rguenther@suse.de>
31178 PR tree-optimization/77283
31179 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
31180 and ssa-iterators.h.
31181 (is_feasible_trace): Implement a cost model based on joiner
31184 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
31187 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
31188 char or short to __float128/_Float128 directly.
31190 2017-01-12 Martin Sebor <msebor@redhat.com>
31192 to -Wformat-overflow.
31193 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
31194 (min_bytes_remaining): Same.
31195 (get_string_length): Same.
31196 (format_string): Same.
31197 (format_directive): Same.
31199 (pass_sprintf_length::handle_gimple_call): Same.
31201 2017-01-12 Jakub Jelinek <jakub@redhat.com>
31203 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
31204 info.nowrite calls with no lhs that can't throw. Return bool
31205 whether gsi_remove has been called or not.
31206 (pass_sprintf_length::handle_gimple_call): Return bool whether
31207 try_substitute_return_value called gsi_remove. Formatting fix.
31208 (pass_sprintf_length::execute): Don't use gsi_remove if
31209 handle_gimple_call returned true.
31212 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
31213 be removed due to side-effects, don't remove following barrier nor
31214 turn the successor edge into fallthru edge.
31216 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31219 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
31220 element-reversing loads and stores as not swappable.
31222 2017-01-12 Nathan Sidwell <nathan@acm.org>
31223 Nicolai Stange <nicstange@gmail.com>
31225 * combine.c (try_combine): Don't ignore result of overlap checking
31226 loop. Combine overlap & asm check into single loop.
31228 2017-01-12 Richard Biener <rguenther@suse.de>
31230 * tree-pretty-print.c (dump_generic_node): Provide -gimple
31231 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
31233 2017-01-12 Richard Biener <rguenther@suse.de>
31235 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
31236 and TS_TARGET_OPTION directly derive from TS_BASE.
31237 * tree-core.h (tree_optimization_option): Derive from tree_base.
31238 (tree_target_option): Likewise.
31240 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
31242 * config/i386/i386.c (memory_address_length): Increase len
31243 only when rip_relative_addr_p returns false.
31245 2017-01-11 Julia Koval <julia.koval@intel.com>
31247 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
31248 (OPTION_MASK_ISA_SGX_SET): New.
31249 (ix86_handle_option): Handle OPT_msgx.
31250 * config.gcc: Added sgxintrin.h.
31251 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
31252 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
31253 * config/i386/i386.c (ix86_target_string): Add -msgx.
31255 (ix86_option_override_internal): Handle new options.
31256 (ix86_valid_target_attribute_inner_p): Add sgx.
31257 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
31258 * config/i386/i386.opt: Add msgx.
31259 * config/i386/sgxintrin.h: New file.
31260 * config/i386/x86intrin.h: Add sgxintrin.h.
31262 2017-01-11 Jakub Jelinek <jakub@redhat.com>
31265 * fold-const.c (maybe_nonzero_address): Return 1 for function
31267 (tree_single_nonzero_warnv_p): Don't handle function local objects
31271 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
31274 2017-01-11 David Malcolm <dmalcolm@redhat.com>
31277 * opts.c: Include "spellcheck.h"
31278 (struct string_fragment): New struct.
31279 (struct edit_distance_traits<const string_fragment &>): New
31281 (get_closest_sanitizer_option): New function.
31282 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
31284 2017-01-11 Jakub Jelinek <jakub@redhat.com>
31286 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
31288 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
31289 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
31290 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
31291 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
31292 for initial die_offset if dwarf_split_debug_info.
31293 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
31294 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
31296 (output_skeleton_debug_sections): Formatting fix. Use
31297 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
31298 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
31300 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
31302 * config/arm/cortex-a53.md: Add bypasses for
31303 cortex_a53_r2f_cvt.
31304 (cortex_a53_r2f): Only use for transfers.
31305 (cortex_a53_f2r): Likewise.
31306 (cortex_a53_r2f_cvt): Add reservation for conversions.
31307 (cortex_a53_f2r_cvt): Likewise.
31309 2017-01-11 Tamar Christina <tamar.christina@arm.com>
31311 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
31312 to all inlined functions, change static to extern.
31314 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
31317 * config/arm/arm.c (legitimize_pic_address): Handle reference to
31319 (arm_assemble_integer): Likewise.
31321 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
31323 * config.gcc: Use new awk script to check CPU, FPU and architecture
31324 parameters for --with-... options.
31325 * config/arm/parsecpu.awk: New file
31326 * config/arm/arm-cpus.in: New file.
31327 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
31329 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
31331 * config/arm/t-arm: Update dependency rules.
31332 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
31333 of processing .def files.
31334 * config/arm/genopt.sh: Deleted.
31335 * config/arm/gentune.sh: Deleted.
31336 * config/arm/arm-cores.def: Deleted.
31337 * config/arm/arm-arches.def: Deleted.
31338 * config/arm/arm-fpus.def: Deleted.
31339 * config/arm/arm-tune.md: Regenerated.
31340 * config/arm/arm-tables.opt: Regenerated.
31341 * config/arm/arm-cpu.h: New generated file.
31342 * config/arm/arm-cpu-data.h: New generated file.
31343 * config/arm/arm-cpu-cdata.h: New generated file.
31345 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
31348 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
31350 (input_varpool_node): Unpack dynamically_initialized bit.
31352 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
31354 PR rtl-optimization/79032
31355 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
31356 the alignment of the adjusted memory reference against that of MODE,
31357 instead of the alignment of the original memory reference.
31359 2017-01-11 Martin Jambor <mjambor@suse.cz>
31361 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
31363 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
31364 decorated functions.
31366 2017-01-11 Richard Biener <rguenther@suse.de>
31368 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
31369 set range/nonnull info for PHI results. Do not set it on
31370 stmts marked for removal.
31372 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
31374 * expr.c (store_field): In the bitfield case, fetch the return value
31375 from the registers before applying a single big-endian adjustment.
31376 Always do a final load for a BLKmode value not larger than a word.
31378 2017-01-10 David Malcolm <dmalcolm@redhat.com>
31381 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
31382 that we correctly handle column numbers greater than
31383 LINE_MAP_MAX_COLUMN_NUMBER.
31385 2017-01-10 Martin Sebor <msebor@redhat.com>
31387 PR middle-end/78245
31388 * gimple-ssa-sprintf.c (get_destination_size): Call
31389 {init,fini}object_sizes.
31390 * tree-object-size.c (addr_object_size): Adjust.
31391 (pass_through_call): Adjust.
31392 (pass_object_sizes::execute): Adjust.
31393 * tree-object-size.h (fini_object_sizes): Declare.
31395 2017-01-10 Martin Sebor <msebor@redhat.com>
31397 PR tree-optimization/78775
31398 * builtins.c (get_size_range): Move...
31399 * calls.c: ...to here.
31400 (alloc_max_size): Accept zero argument.
31401 (operand_signed_p): Remove.
31402 (maybe_warn_alloc_args_overflow): Call get_size_range.
31403 * calls.h (get_size_range): Declare.
31405 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
31407 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
31408 from TI's devices.csv file as of September 2016.
31409 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
31411 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
31413 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
31414 * doc/invoke.texi: Likewise.
31415 * doc/md.texi: Likewise.
31416 * doc/objc.texi: Likewise.
31418 2017-01-10 Joshua Conner <joshconner@google.com>
31420 * config/arm/fuchsia-elf.h: New file.
31421 * config/fuchsia.h: New file.
31422 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
31423 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
31425 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
31427 2016-01-10 Richard Biener <rguenther@suse.de>
31429 PR tree-optimization/79034
31430 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
31431 Propagate out degenerate PHIs in the joiner.
31433 2017-01-10 Martin Liska <mliska@suse.cz>
31435 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
31436 (sort_congruence_classes_by_decl_uid): Likewise.
31437 (sort_congruence_class_groups_by_decl_uid): Likewise.
31438 (sem_item_optimizer::merge_classes): Sort class, groups in these
31439 classes and members in the groups by DECL_UID of declarations.
31440 This would make merge operations stable.
31442 2017-01-10 Martin Liska <mliska@suse.cz>
31444 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
31445 usage of m_classes_vec.
31446 (sem_item_optimizer::~sem_item_optimizer): Likewise.
31447 (sem_item_optimizer::get_group_by_hash): Likewise.
31448 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
31449 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
31450 (sem_item_optimizer::verify_classes): Likewise.
31451 (sem_item_optimizer::process_cong_reduction): Likewise.
31452 (sem_item_optimizer::dump_cong_classes): Likewise.
31453 (sem_item_optimizer::merge_classes): Likewise.
31454 * ipa-icf.h (congruence_class_hash): Rename from
31455 congruence_class_group_hash. Remove declaration of m_classes_vec.
31457 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
31459 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
31460 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
31461 * config.gcc: Add avx512vpopcntdqintrin.h.
31462 * config/i386/avx512vpopcntdqintrin.h: New.
31463 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
31464 * config/i386/i386-builtin-types.def: Add new types.
31465 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
31466 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
31467 __builtin_ia32_vpopcountq_v8di_mask): New.
31468 * config/i386/i386-c.c (ix86_target_macros_internal): Define
31469 __AVX512VPOPCNTDQ__.
31470 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
31471 (PTA_AVX512VPOPCNTDQ): Define.
31472 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
31473 TARGET_AVX512VPOPCNTDQ_P): Define.
31474 * config/i386/i386.opt: Add mavx512vpopcntdq.
31475 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
31476 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
31478 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
31480 PR middle-end/77484
31481 * predict.def (PRED_CALL): Set to 67.
31483 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
31485 * expr.c (store_field): In the bitfield case, if the value comes from
31486 a function call and is of an aggregate type returned in registers, do
31487 not modify the field mode; extract the value in all cases if the mode
31488 is BLKmode and the size is not larger than a word.
31490 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
31493 * config/i386/cpuid.h: Fix undefined behavior.
31495 2017-01-04 Jeff Law <law@redhat.com>
31497 PR tree-optimization/79007
31498 PR tree-optimization/67955
31499 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
31500 conservative for pt.null when flag_non_call_exceptions is on.
31502 2017-01-09 Jakub Jelinek <jakub@redhat.com>
31504 PR translation/79019
31505 PR translation/79020
31506 * params.def (PARAM_INLINE_MIN_SPEEDUP,
31507 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
31508 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
31510 * config/avr/avr.opt (maccumulate-args): Likewise.
31511 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
31512 * common.opt (freport-bug): Likewise.
31513 * cif-code.def (CIF_FINAL_ERROR): Likewise.
31514 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
31515 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
31516 translatable string.
31517 * config/i386/i386.c (function_value_32): Likewise.
31518 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
31519 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
31521 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
31522 * common/config/msp430/msp430-common.c (msp430_handle_option):
31524 * symtab.c (symtab_node::verify_base): Likewise.
31525 * opts.c (set_debug_level): Likewise.
31526 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
31527 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
31528 missing whitespace to translatable strings.
31529 * config/avr/avr.md (bswapsi2): Fix typo in comment.
31530 * config/sh/superh.h: Likewise.
31531 * config/i386/xopintrin.h: Likewise.
31532 * config/i386/znver1.md: Likewise.
31533 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
31534 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
31535 * double-int.h (struct double_int): Likewise.
31536 * double-int.c (div_and_round_double): Likewise.
31537 * wide-int.cc: Likewise.
31538 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
31539 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
31540 * cfgcleanup.c (crossjumps_occured): Renamed to ...
31541 (crossjumps_occurred): ... this.
31542 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
31545 PR tree-optimization/78899
31546 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
31547 returning bool return struct loop *, NULL for failure and the new
31549 (versionable_outer_loop_p): Don't version outer loop if it has
31550 dont_vectorized bit set.
31551 (tree_if_conversion): When versioning outer loop, ensure
31552 tree_if_conversion is performed also on the inner loop of the
31553 non-vectorizable outer loop copy.
31554 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
31555 LOOP_VECTORIZED in inner loop of the scalar outer loop and
31556 prevent vectorization of it.
31557 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
31558 the outer loop vectorization of the non-scalar version is attempted
31559 before vectorization of the inner loop in scalar version. If
31560 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
31561 vectorization of its inner loop.
31562 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
31563 has 2 inner loops, rename also on edges from bb whose single pred
31564 is outer_loop->header. Fix typo in function comment.
31566 2017-01-09 Martin Sebor <msebor@redhat.com>
31569 * asan.c (asan_emit_stack_protection): Increase local buffer size
31570 to avoid snprintf truncation warning.
31572 2017-01-09 Andrew Pinski <apinski@cavium.com>
31574 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
31575 to reference thunderx2t99 for the tuning structure
31576 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
31578 (thunderx2t99_extra_costs): This.
31579 * config/aarch64/aarch64-tune.md: Regenerate.
31580 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
31581 (vulcan_addrcost_table): This.
31582 (vulcan_regmove_cost): Rename to ...
31583 (thunderx2t99_regmove_cost): This.
31584 (vulcan_vector_cost): Rename to ...
31585 (thunderx2t99_vector_cost): this.
31586 (vulcan_branch_cost): Rename to ...
31587 (thunderx2t99_branch_cost): This.
31588 (vulcan_tunings): Rename to ...
31589 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
31590 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
31592 2017-01-09 Martin Jambor <mjambor@suse.cz>
31596 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
31597 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
31598 (propagate_vr_accross_jump_function): Use the above function for all
31599 value range computations for pass-through jump functions and type
31600 converasion from explicit value range values.
31601 (ipcp_propagate_stage): Do not attempt to deduce types of formal
31602 parameters from TYPE_ARG_TYPES.
31603 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
31604 (ipa_write_node_info): Stream type of the actual argument.
31605 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
31607 2017-01-09 Martin Liska <mliska@suse.cz>
31610 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
31611 (lookup_compiler): Do not show error message with have_E.
31613 2017-01-09 Jakub Jelinek <jakub@redhat.com>
31615 PR tree-optimization/78938
31616 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
31617 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
31618 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
31619 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
31622 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31624 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
31627 2017-01-09 Richard Biener <rguenther@suse.de>
31629 PR tree-optimization/78997
31630 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
31631 name condition properly.
31633 2017-01-09 Richard Biener <rguenther@suse.de>
31636 * dwarf2out.c (is_cxx): New overload with context.
31637 (is_naming_typedef_decl): Use it.
31639 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
31641 * invoke.texi (Option Summary): Correct spacing in option lists
31642 and add line breaks to fix over-long lines.
31644 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
31646 PR middle-end/17660
31648 * extend.texi (Common Variable Attributes): Add xref to GCC
31649 Internals manual to explain mode attribute keywords.
31651 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
31654 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
31655 and Preprocessor Options.
31656 (Options for Linking): Document -pthread here....
31657 (RS/6000 and PowerPC Options): ...not here.
31658 (Solaris 2 Options): ...or here.
31659 * doc/cppopts.texi: Document -pthread.
31661 2017-01-08 Martin Sebor <msebor@redhat.com>
31663 PR middle-end/77708
31664 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
31665 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
31666 New member functions.
31667 (format_directive): Used them.
31669 (pass_sprintf_length::handle_gimple_call): Same.
31670 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
31671 to avoid truncation for any argument.
31672 (extract_affine_mul): Same.
31673 * tree.c (get_file_function_name): Same.
31675 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
31677 PR middle-end/77484
31678 * predict.def (PRED_INDIR_CALL): Set to 86.
31680 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
31682 PR preprocessor/54124
31683 * doc/cppopts.texi: Reformat -d subtable to list the full name
31684 of the options. Add cross-reference to the docs for the general
31685 compiler -d options.
31686 * doc/invoke.texi (Developer Options): Add cross-reference to the
31687 preprocessor-specific -d option documentation.
31689 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
31691 PR preprocessor/13498
31692 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
31693 redudant material, and reflect new command-line options.
31694 (System Headers): Likewise.
31696 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
31698 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
31699 -isystem, and -idirafter. Copy-edit.
31700 * doc/cppopts.texi: Copy-edit. Remove contradiction about
31701 default for -ftrack-macro-expansion. Delete obsolete and
31702 badly-formatted implementation details about -fdebug-cpp output.
31703 * doc/cppwarnopts.texi: Copy-edit.
31705 2017-01-07 David Malcolm <dmalcolm@redhat.com>
31708 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
31709 that the transition from a max line width >= 1<<10 to narrower
31710 lines works correctly.
31712 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
31714 * doc/options.texi (PerFunction): New.
31715 * opt-functions.awk (switch_flags): Map both Optimization and
31716 PerFunction to CL_OPTIMIZATION.
31717 * opth-gen.awk: Test for PerFunction flag along with
31719 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
31720 it only when the latter is present. Skip those that don't in
31721 the hash function generator.
31722 * common.opt (fvar-tracking): Mark as PerFunction instead of
31724 (fvar-tracking-assignments): Likewise.
31725 (fvar-tracking-assignments-toggle): Likewise.
31726 (fvar-tracking-uninit): Likewise.
31728 2017-01-07 Jakub Jelinek <jakub@redhat.com>
31730 PR translation/79018
31731 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
31734 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
31737 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
31738 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
31739 TARGET_LONG_JUMP_TABLE_OFFSETS.
31740 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
31741 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
31742 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
31743 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
31744 * config/m68k/m68k.md (tablejump expander): Likewise.
31745 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
31746 TARGET_LONG_JUMP_TABLE_OFFSETS.
31747 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
31748 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
31750 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
31751 David Holsgrove <david.holsgrove@xilinx.com>
31753 * common/config/microblaze/microblaze-common.c
31754 (TARGET_EXCEPT_UNWIND_INFO): Remove.
31755 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
31757 * config/microblaze/microblaze.c (microblaze_must_save_register)
31758 (microblaze_expand_epilogue, microblaze_return_addr): Handle
31760 (microblaze_eh_return): New function.
31761 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
31762 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
31763 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
31764 * config/microblaze/microblaze.md (eh_return): New pattern.
31766 2017-01-06 Jakub Jelinek <jakub@redhat.com>
31768 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
31769 GCC_DIAGNOSTIC_STRINGIFY): Define.
31771 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
31773 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
31775 * config/arm/arm.md (<mcrr>): New.
31777 * config/arm/arm.c (arm_arch5te): New.
31778 (arm_option_override): Set arm_arch5te.
31779 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
31781 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
31782 (arm_mcrr_qualifiers): ... this. New.
31783 (MRRC_QUALIFIERS): Define to...
31784 (arm_mrrc_qualifiers): ... this. New.
31785 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
31787 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
31788 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
31789 (MRRCI, mrrc, MRRC): New.
31790 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
31791 VUNSPEC_MRRC2): New.
31793 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
31795 * config/arm/arm.md (<mcr>): New.
31797 * config/arm/arm.c (arm_coproc_builtin_available): Add
31798 support for mcr, mrc, mcr2 and mrc2.
31799 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
31800 (arm_mcr_qualifiers): ... this. New.
31801 (MRC_QUALIFIERS): Define to ...
31802 (arm_mrc_qualifiers): ... this. New.
31803 (MCR_QUALIFIERS): Define to ...
31804 (arm_mcr_qualifiers): ... this. New.
31805 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
31807 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
31808 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
31809 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
31810 VUNSPEC_MRC2): New.
31812 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
31814 * config/arm/arm.md (*ldc): New.
31818 * config/arm/arm.c (arm_coproc_builtin_available): Add
31819 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
31820 (arm_coproc_ldc_stc_legitimate_address): New.
31821 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
31822 'qualifier_const_pointer'.
31823 (LDC_QUALIFIERS): Define to...
31824 (arm_ldc_qualifiers): ... this. New.
31825 (STC_QUALIFIERS): Define to...
31826 (arm_stc_qualifiers): ... this. New.
31827 * config/arm/arm-protos.h
31828 (arm_coproc_ldc_stc_legitimate_address): New.
31829 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
31830 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
31831 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
31832 stc2, stcl, stc2l): New.
31833 * config/arm/constraints.md (Uz): New.
31834 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
31835 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
31836 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
31837 VUNSPEC_STC2L): New.
31839 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
31841 * config/arm/arm.md (<cdp>): New.
31842 * config/arm/arm.c (neon_const_bounds): Rename this ...
31843 (arm_const_bounds): ... this.
31844 (arm_coproc_builtin_available): New.
31845 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
31846 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
31847 (CDP_QUALIFIERS): Define to...
31848 (arm_cdp_qualifiers): ... this. New.
31850 (arm_expand_builtin_args): Add case for 6 arguments.
31851 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
31852 (arm_const_bounds): ... this.
31853 (arm_coproc_builtin_available): New.
31854 * config/arm/arm_acle.h (__arm_cdp): New.
31856 * config/arm/arm_acle_builtins.def (cdp): New.
31858 * config/arm/iterators.md (CDPI,CDP,cdp): New.
31859 * config/arm/neon.md: Rename all 'neon_const_bounds' to
31860 'arm_const_bounds'.
31861 * config/arm/types.md (coproc): New.
31862 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
31863 * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
31864 * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
31865 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
31867 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
31869 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
31870 (UBINOP_QUALIFIERS): New.
31872 (acle_builtin_data): New. Change comment.
31873 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
31874 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
31875 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
31876 arm_acle_builtins.def.
31877 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
31878 (arm_init_acle_builtins): New.
31879 (CRC32_BUILTIN): Remove.
31880 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
31881 crc32cb, crc32ch and crc32cw.
31882 (arm_init_crc32_builtins): Remove.
31883 (arm_init_builtins): Use arm_init_acle_builtins rather
31884 than arm_init_crc32_builtins.
31885 (arm_expand_acle_builtin): New.
31886 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
31887 * config/arm/arm_acle_builtins.def: New.
31889 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
31891 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
31892 (arm_builtin_datum): ... this.
31893 (arm_init_neon_builtin): Rename to ...
31894 (arm_init_builtin): ... this. Add a new parameters PREFIX
31895 and USE_SIG_IN_NAME.
31896 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
31897 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
31898 'arm_builtin_datum'.
31899 (arm_init_vfp_builtins): Likewise.
31900 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
31901 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
31902 (arm_expand_neon_args): Rename to ...
31903 (arm_expand_builtin_args): ... this. Rename builtin_arg
31904 enum values and differentiate between ARG_BUILTIN_MEMORY
31905 and ARG_BUILTIN_NEON_MEMORY.
31906 (arm_expand_neon_builtin_1): Rename to ...
31907 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
31908 values, arm_expand_builtin_args and add bool parameter NEON.
31909 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
31910 (arm_expand_vfp_builtin): Likewise.
31911 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
31913 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
31915 PR middle-end/77484
31916 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
31917 * predict.c (tree_estimate_probability_bb): Reverse direction of
31918 polymorphic call predictor.
31920 2017-01-06 David Malcolm <dmalcolm@redhat.com>
31922 * passes.c (execute_one_pass): Split out pass-skipping logic into...
31923 (determine_pass_name_match): ...this new function and...
31924 (should_skip_pass_p): ...this new function.
31926 2017-01-06 Nathan Sidwell <nathan@acm.org>
31928 * ipa-visibility.c (function_and_variable_visibility): Reformat
31929 comments and long lines. Remove extrneous if.
31930 * symtab.c (symtab_node::make_decl_local): Fix code format.
31931 (symtab_node::set_section_for_node): Fix comment typo.
31933 2017-01-06 Martin Liska <mliska@suse.cz>
31936 * lra-constraints.c: Rename invariant to lra_invariant.
31937 * predict.c (set_even_probabilities): Initialize e to NULL.
31939 2017-01-05 Martin Sebor <msebor@redhat.com>
31941 PR tree-optimization/78910
31942 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
31943 (format_integer): Correct off-by-one error in the handling
31944 of precision with negative numbers in signed conversions..
31946 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
31948 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
31950 2017-01-05 Jakub Jelinek <jakub@redhat.com>
31952 PR tree-optimization/71016
31953 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
31954 factor_out_conditional_conversion. Formatting fix.
31955 (factor_out_conditional_conversion): Add cond_stmt argument.
31956 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
31957 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
31960 2017-01-05 David Malcolm <dmalcolm@redhat.com>
31962 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
31963 read-rtl-function.o, and selftest-rtl.o.
31964 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
31965 (selftest::aarch64_test_loading_full_dump): New function.
31966 (selftest::aarch64_run_selftests): New function.
31967 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
31968 selftest::aarch64_run_selftests.
31969 * config/i386/i386.c
31970 (selftest::ix86_test_loading_dump_fragment_1): New function.
31971 (selftest::ix86_test_loading_call_insn): New function.
31972 (selftest::ix86_test_loading_full_dump): New function.
31973 (selftest::ix86_test_loading_unspec): New function.
31974 (selftest::ix86_run_selftests): Call the new functions.
31975 * emit-rtl.c (maybe_set_max_label_num): New function.
31976 * emit-rtl.h (maybe_set_max_label_num): New decl.
31977 * function.c (instantiate_decls): Guard call to
31978 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
31979 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
31981 * gensupport.c (gen_reader::gen_reader): Pass "false"
31982 for new "compact" param of rtx_reader.
31983 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
31984 rather than an empty string for NULL strings.
31985 * read-md.c: Potentially include config.h rather than bconfig.h.
31986 Wrap include of errors.h with #ifdef GENERATOR_FILE.
31987 (have_error): New global, copied from errors.c.
31988 (md_reader::read_name): Rename to...
31989 (md_reader::read_name_1): ...this, adding "out_loc" param,
31990 and converting "missing name or number" to returning false, rather
31992 (md_reader::read_name): Reimplement in terms of read_name_1.
31993 (md_reader::read_name_or_nil): New function.
31994 (md_reader::read_string): Handle "(nil)" by returning NULL.
31995 (md_reader::md_reader): Add new param "compact".
31996 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
31997 (md_reader::read_file): New method.
31998 * read-md.h (md_reader::md_reader): Add new param "compact".
31999 (md_reader::read_file): New method.
32000 (md_reader::is_compact): New accessor.
32001 (md_reader::read_name): Convert return type from void to file_location.
32002 (md_reader::read_name_or_nil): New decl.
32003 (md_reader::read_name_1): New decl.
32004 (md_reader::m_compact): New field.
32005 (noop_reader::noop_reader): Pass "false" for new "compact" param
32007 (rtx_reader::rtx_reader): Add new "compact" param.
32008 (rtx_reader::read_rtx_operand): Make virtual and convert return
32009 type from void to rtx.
32010 (rtx_reader::read_until): New decl.
32011 (rtx_reader::handle_any_trailing_information): New virtual function.
32012 (rtx_reader::postprocess): New virtual function.
32013 (rtx_reader::finalize_string): New virtual function.
32014 (rtx_reader::m_in_call_function_usage): New field.
32015 (rtx_reader::m_reuse_rtx_by_id): New field.
32016 * read-rtl-function.c: New file.
32017 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
32018 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
32019 (selftest::verify_three_block_rtl_cfg): New decl.
32020 * read-rtl-function.h: New file.
32021 * read-rtl.c: Potentially include config.h rather than bconfig.h.
32022 For host, include function.h, memmodel.h, and emit-rtl.h.
32023 (one_time_initialization): New function.
32024 (struct compact_insn_name): New struct.
32025 (compact_insn_names): New array.
32026 (find_code): Handle insn codes in compact dumps.
32027 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
32028 (bind_subst_iter_and_attr): Likewise.
32029 (add_condition_to_string): Likewise.
32030 (add_condition_to_rtx): Likewise.
32031 (apply_attribute_uses): Likewise.
32032 (add_current_iterators): Likewise.
32033 (apply_iterators): Likewise.
32034 (initialize_iterators): Guard usage of apply_subst_iterator with
32035 #ifdef GENERATOR_FILE.
32036 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
32037 (md_reader::read_mapping): Likewise.
32038 (add_define_attr_for_define_subst): Likewise.
32039 (add_define_subst_attr): Likewise.
32040 (read_subst_mapping): Likewise.
32041 (check_code_iterator): Likewise.
32042 (rtx_reader::read_rtx): Likewise. Move one-time initialization
32044 (one_time_initialization): New function.
32045 (rtx_reader::read_until): New method.
32046 (read_flags): New function.
32047 (parse_reg_note_name): New function.
32048 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
32049 Handle reuse_rtx ids.
32050 Wrap iterator lookup within #ifdef GENERATOR_FILE.
32051 Add parsing support for RTL dumps, mirroring the special-cases in
32052 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
32053 values, and calling handle_any_trailing_information.
32054 (rtx_reader::read_rtx_operand): Convert return type from void
32055 to rtx, returning return_rtx. Handle case 'e'. Call
32056 finalize_string on XSTR and XTMPL fields.
32057 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
32058 "(nil)" values were omitted. Call the postprocess vfunc on the
32060 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
32061 class ctor. Initialize m_in_call_function_usage. Call
32062 one_time_initialization.
32063 * rtl-tests.c (selftest::test_uncond_jump): Call
32064 set_new_first_and_last_insn.
32065 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
32066 * selftest-rtl.c: New file.
32067 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
32068 (selftest::get_insn_by_uid): New decl.
32069 * selftest-run-tests.c (selftest::run_tests): Call
32070 read_rtl_function_c_tests.
32071 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
32072 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
32075 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
32077 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
32078 operands in a special way. Assert that pos+len <= mode precision.
32080 2017-01-05 Jakub Jelinek <jakub@redhat.com>
32082 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
32083 3 argument Alias with unlimited for the negative form.
32084 (fno-vect-cost-model): Removed.
32086 2017-01-05 Martin Liska <mliska@suse.cz>
32088 * hsa-gen.c (gen_hsa_divmod): New function.
32089 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
32091 2017-01-05 Martin Liska <mliska@suse.cz>
32094 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
32097 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32099 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
32100 small constant length operands.
32102 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32104 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
32105 between loop iterations.
32107 2017-01-05 Martin Liska <mliska@suse.cz>
32110 * gimplify.c (gimplify_decl_expr): Compare to
32111 asan_poisoned_variables instread of checking flags.
32112 (gimplify_target_expr): Likewise.
32113 (gimplify_expr): Likewise.
32114 (gimplify_function_tree): Conditionally initialize
32115 asan_poisoned_variables.
32117 2017-01-04 Jeff Law <law@redhat.com>
32119 PR tree-optimizatin/78812
32120 * rtl.h (contains_mem_rtx_p): Prototype.
32121 * ifcvt.c (containts_mem_rtx_p): Move from here to...
32122 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
32123 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
32124 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
32125 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
32127 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
32129 * input.c (assert_char_at_range): Default-initialize actual_range.
32131 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
32133 * df-scan.c (df_ref_create_structure): Make regno unsigned,
32134 to match the caller.
32136 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
32138 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
32139 insns after final jump in test to emit dummy move.
32141 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
32143 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
32144 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
32146 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
32148 * multiple_target.c (create_dispatcher_calls): Init e_next.
32149 * tree-ssa-loop-split.c (split_loop): Init border.
32150 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
32153 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
32158 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
32159 (altivec_register_operand): Do not return true if the operand
32160 contains a SUBREG mixing SImode and SFmode.
32161 (vsx_register_operand): Likewise.
32162 (vsx_reg_sfsubreg_ok): New predicate.
32163 (vfloat_operand): Do not return true if the operand contains a
32164 SUBREG mixing SImode and SFmode.
32165 (vint_operand): Likewise.
32166 (vlogical_operand): Likewise.
32167 (gpc_reg_operand): Likewise.
32168 (int_reg_operand): Likewise.
32169 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
32170 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
32171 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
32173 (rs6000_emit_move_si_sf_subreg): New helper function.
32174 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
32175 fixup SUBREGs involving SImode and SFmode.
32176 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
32177 numbers for the new peephole2 optimization.
32178 (peephole2 for SFmode unions): New peephole2 to optimize cases in
32179 the GLIBC math library that do AND/IOR/XOR operations on single
32180 precision floating point.
32181 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
32182 target macros to say whether we need to avoid SUBREGs mixing
32184 (TARGET_ALLOW_SF_SUBREG): Likewise.
32185 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
32186 (UNSPEC_SI_FROM_SF): Likewise.
32187 (iorxor): Change spacing.
32188 (and_ior_xor): New iterator for AND, IOR, and XOR.
32189 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
32190 (movdi_from_sf_zero_ext): Likewise.
32191 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
32192 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
32193 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
32194 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
32195 (fms<mode>4): Likewise.
32196 (fnma<mode>4): Likewise.
32197 (fnms<mode>4): Likewise.
32198 (nfma<mode>4): Likewise.
32199 (nfms<mode>4): Likewise.
32201 2017-01-04 Marek Polacek <polacek@redhat.com>
32204 * doc/invoke.texi: Document -Wpointer-compare.
32206 2017-01-04 Jakub Jelinek <jakub@redhat.com>
32208 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
32211 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
32212 descriptions for -gdwarf-5 and emit them as uleb128 instead of
32215 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
32218 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
32219 documentation of the powerpc_popcntb_ok attribute.
32220 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
32221 code to issue warning messages if a requested CPU configuration is
32222 not supported by the binary (assembler and loader) toolchain.
32223 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
32224 made to define a built-in function that has been disabled.
32225 (paired_init_builtins): Add assertion to prevent ICE if attempt is
32226 made to define a built-in function that has been disabled.
32227 (altivec_init_builtins): Add comment explaining why definition
32228 of the DST built-in functions is not preceded by an assertion
32229 check. Add assertions to prevent ICE if attempts are made to
32230 define an altivec predicate or an abs* built-in function that has
32232 (htm_init_builtins): Add comment explaining why definition of the
32233 htm built-in functions is not preceded by an assertion check.
32235 2017-01-04 Jeff Law <law@redhat.com>
32237 PR tree-optimizatin/67955
32238 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
32239 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
32240 the points-to solution does not include pt_null. Use DECL_PT_UID
32243 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
32245 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
32246 Use gen_int_mode instead of gen_lopwart for const_int operands.
32248 2017-01-04 Jakub Jelinek <jakub@redhat.com>
32250 PR tree-optimization/71563
32251 * match.pd: Simplify X << Y into X if Y is known to be 0 or
32252 out of range value - has low bits known to be zero.
32254 2017-01-04 Alan Modra <amodra@gmail.com>
32256 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
32257 * configure: Regenerate.
32258 * config.in: Regenerate.
32260 2017-01-04 Jakub Jelinek <jakub@redhat.com>
32263 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
32264 a substring of the message, but strcmp with the whole message. Ifdef
32265 ENABLE_NLS, translate the message first using dgettext.
32267 2017-01-03 Jeff Law <law@redhat.com>
32269 PR tree-optimizatin/78856
32270 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
32271 (mark_threaded_blocks): Remove code to truncate thread paths that
32272 cross multiple loop headers. Instead invalidate the cached loop
32273 iteration information and handle case of a thread path walking
32274 into an irreducible region.
32276 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
32279 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
32280 assertions. Add support for doing the signbit if the IEEE 128-bit
32281 floating point value is in a GPR.
32282 * config/rs6000/rs6000.md (Fsignbit): Delete.
32283 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
32284 Update the length attribute if the value is in a GPR.
32285 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
32286 the sign or zero extension instruction, since the value is always 0/1.
32287 (signbit<mode>2_dm2): Delete using <Fsignbit>.
32290 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
32291 extracting SImode to a GPR register so that we can generate a
32292 store, limit the vector to be in a traditional Altivec register
32293 for the vextuwrx instruction.
32295 2017-01-03 Ian Lance Taylor <iant@google.com>
32297 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
32299 2017-01-03 Martin Sebor <msebor@redhat.com>
32301 PR tree-optimization/78696
32302 * gimple-ssa-sprintf.c (format_floating): Correct handling of
32303 precision. Use MPFR for %f for greater fidelity. Correct handling
32305 (pass_sprintf_length::compute_format_length): Set width and precision
32306 specified by asrerisk to void_node for vararg functions.
32307 (try_substitute_return_value): Adjust dump output.
32309 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
32311 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
32313 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
32315 * doc/invoke.texi (SPARC options): Document -mlra as the default.
32316 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
32317 -mlra/-mno-lra was passed to the compiler.
32319 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
32321 PR rtl-optimization/65618
32322 * emit-rtl.c (try_split): Move initialization of "before" and
32323 "after" to just before the call to emit_insn_after_setloc.
32325 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
32327 * doc/md.texi (Standard Names): Remove reference to Java frontend.
32329 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
32331 * dwarf2out.c (gen_enumeration_type_die): When
32332 -gno-strict-dwarf, add a DW_AT_encoding attribute.
32334 2017-01-03 Jakub Jelinek <jakub@redhat.com>
32336 PR tree-optimization/78965
32337 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
32338 Change first argument from const call_info & to call_info &. For %n
32339 set info.nowrite to false.
32341 PR middle-end/78901
32342 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
32343 possibly throwing calls.
32345 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
32346 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
32347 and fns handling, rather than in a separate case SSA_NAME.
32349 2017-01-02 Jeff Law <law@redhat.com>
32351 * config/darwin-driver.c (darwin_driver_init): Const-correctness
32352 fixes for first_period and second_period variables.
32354 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
32357 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
32358 (*insvqi_1): New insn pattern.
32359 (*insvqi_1_mem_rex64): Ditto.
32360 (*insvqi_2): Ditto.
32361 (*insvqi_3): Rename from *insvqi.
32363 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
32365 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
32367 * doc/cfg.texi (Edges): Remove reference to Java.
32368 (Maintaining the CFG): Ditto.
32370 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
32372 PR middle-end/77674
32373 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
32374 transparent aliases.
32376 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
32378 PR middle-end/77484
32379 * predict.def (PRED_CALL): Update hitrate.
32380 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
32381 * predict.c (tree_estimate_probability_bb): Split CALL predictor
32382 into direct/indirect/polymorphic variants.
32384 2017-01-01 Jakub Jelinek <jakub@redhat.com>
32386 Update copyright years.
32388 * gcc.c (process_command): Update copyright notice dates.
32389 * gcov-dump.c (print_version): Ditto.
32390 * gcov.c (print_version): Ditto.
32391 * gcov-tool.c (print_version): Ditto.
32392 * gengtype.c (create_file): Ditto.
32393 * doc/cpp.texi: Bump @copying's copyright year.
32394 * doc/cppinternals.texi: Ditto.
32395 * doc/gcc.texi: Ditto.
32396 * doc/gccint.texi: Ditto.
32397 * doc/gcov.texi: Ditto.
32398 * doc/install.texi: Ditto.
32399 * doc/invoke.texi: Ditto.
32401 Copyright (C) 2017 Free Software Foundation, Inc.
32403 Copying and distribution of this file, with or without modification,
32404 are permitted in any medium without royalty provided the copyright
32405 notice and this notice are preserved.