1 2016-06-29 Martin Liska <mliska@suse.cz>
4 * common.opt (flag_stack_protect): Mark the flag as optimization
6 * ipa-inline-transform.c (inline_call): Remove unnecessary call
7 of build_optimization_node.
9 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
11 PR tree-optimization/70729
12 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
13 independent in loops having positive safelen value.
14 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
15 it may be not valid after vectorization.
17 2016-06-29 Jakub Jelinek <jakub@redhat.com>
19 PR tree-optimization/71625
20 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
21 is sorted by ascending list->offset. If PTR is non-NULL and there is
22 previous strinfo, call get_stridx_plus_constant.
23 (get_stridx): Pass exp as second argument to get_addr_stridx.
24 (addr_stridxptr): Add missing list = list->next, so that there can be
25 more than one entries in the list. Bump limit from 16 to 32. Ensure
26 the list is sorted by ascending list->offset.
27 (get_stridx_plus_constant): Adjust so that it can be also called with
28 ADDR_EXPR instead of SSA_NAME as PTR.
29 (handle_char_store): Pass NULL_TREE as second argument to
32 2016-06-29 Richard Biener <rguenther@suse.de>
34 PR rtl-optimization/68961
35 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
37 2016-06-29 Richard Biener <rguenther@suse.de>
40 * alias.c (component_uses_parent_alias_set_from): Handle
41 type punning through union accesses by using the union alias set.
42 * gimple.c (gimple_get_alias_set): Remove union type punning case.
44 2016-07-29 Richard Biener <rguenther@suse.de>
46 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
47 precision not matching mode precision.
49 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
51 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
52 pa_output_arg_descriptor.
53 (call_val_symref_64bit_post_reload): Likewise.
54 (call_val_powf_64bit_post_reload): Likewise.
55 (sibcall_internal_symref_64bit): Likewise.
56 (sibcall_value_internal_symref_64bit): Likewise.
58 2016-06-28 Jakub Jelinek <jakub@redhat.com>
61 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
62 a constant, force its SUBREG_REG into memory or register instead
65 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
68 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
69 * doc/invoke.texi (AVR Options): Document it.
71 2016-06-28 Walter Lee <walt@tilera.com>
73 * config/tilegx/linux.h: Do not include arch/icache.h
74 (CLEAR_INSN_CACHE): Provide inlined definition directly.
75 * config/tilepro/linux.h: Do not include arch/icache.h
76 (CLEAR_INSN_CACHE): Provide inlined definition directly.
78 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
80 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
81 for big-endian BIT_FIELD_REF.
83 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
85 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
86 ('size' attribute): Add '128'.
88 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
89 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
90 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
91 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
92 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
93 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
94 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
95 *trunc<mode>df2_odd): Set size attribute to '128'.
96 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
97 * config/rs6000/power6.md (power6-fp): Include dfp type.
98 * config/rs6000/power7.md (power7-fp): Likewise.
99 * config/rs6000/power8.md (power8-fp): Likewise.
100 * config/rs6000/power9.md: New file.
101 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
102 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
103 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
105 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
106 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
107 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
108 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
109 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
110 dfp_dscri_<mode>): Change type attribute to dfp.
111 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
112 attribute to vecsimple.
113 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
114 and prefetch streams.
115 (rs6000_option_override_internal): Remove temporary code setting
116 tuning to power8. Don't set rs6000_sched_groups for power9.
117 (last_scheduled_insn): Change to rtx_insn *.
118 (divide_cnt, vec_load_pendulum): New variables.
119 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
120 (rs6000_issue_rate): Set issue rate for Power9.
121 (is_power9_pairable_vec_type): New.
122 (power9_sched_reorder2): New.
123 (rs6000_sched_reorder2): Call new function for Power9 specific
125 (insn_must_be_first_in_group): Remove Power9.
126 (insn_must_be_last_in_group): Likewise.
127 (force_new_group): Likewise.
128 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
129 Initialize divide_cnt/vec_load_pendulum.
130 (_rs6000_sched_context, rs6000_init_sched_context,
131 rs6000_set_sched_context): Handle context save/restore of new
134 2016-06-28 Richard Biener <rguenther@suse.de>
136 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
137 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
138 COMPONENT_REF operand.
139 (nonoverlapping_component_refs_p): Likewise.
140 * stor-layout.c (start_bitfield_representative): Mark
141 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
143 2016-06-28 Jakub Jelinek <jakub@redhat.com>
145 * Makefile.in: Don't cat ../stage_current if it does not exist.
147 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
148 last argument is a bit-field.
150 PR rtl-optimization/71673
151 * internal-fn.c (expand_arith_overflow_result_store): Use
152 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
156 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
157 expand_ifn_atomic_compare_exchange): New functions.
158 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
159 * tree.h (build_call_expr_internal_loc): Rename to ...
160 (build_call_expr_internal_loc_array): ... this. Fix up type of
162 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
163 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
164 ATOMIC_COMPARE_EXCHANGE result.
165 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
166 * gimple-fold.h (optimize_atomic_compare_exchange_p,
167 fold_builtin_atomic_compare_exchange): New prototypes.
168 * gimple-fold.c (optimize_atomic_compare_exchange_p,
169 fold_builtin_atomic_compare_exchange): New functions..
170 * tree-ssa.c (execute_update_addresses_taken): If
171 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
172 of call when finding addressable vars, and if such var becomes
173 non-addressable, call fold_builtin_atomic_compare_exchange.
175 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
178 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
179 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
181 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
183 * config/rs6000/rs6000.md ('type' attribute): Add
184 veclogical,veccmpfx,vecexts,vecmove insn types.
185 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
186 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
187 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
188 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
189 *nabs<mode>2_hw): Change type to vecmove.
190 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
191 *boolcc<mode>3_internal, *eqv<mode>3_internal,
192 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
193 *ieee_128bit_vsx_abs<mode>2_internal,
194 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
195 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
196 *ieee128_mtvsrd_32bit): Change type to veclogical.
197 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
198 *movdi_internal32, *movdi_internal64): Update insn types.
199 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
200 vsx_extract_<mode>): Change type to veclogical.
201 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
202 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
203 *vsx_sign_extend_si_v2di): Change type to vecexts.
204 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
206 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
207 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
208 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
209 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
210 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
211 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
212 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
213 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
214 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
215 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
216 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
217 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
218 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
219 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
220 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
221 (ppc7450-vecsimple): Add veclogical, vecmove.
222 (ppc7450-veccmp): Add veccmpfx.
223 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
225 (ppc8540_vector_compare): Add veccmpfx.
226 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
227 * config/rs6000/cell.md (cell-fp): Add fpsimple.
228 (cell-vecsimple): Add veclogical, vecmove.
229 (cell-veccmp): Add veccmpfx.
230 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
231 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
233 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
234 * config/rs6000/power4.md (power4-fp): Add fpsimple.
235 (power4-vecsimple): Add veclogical, vecmove.
236 (power4-veccmp): Add veccmpfx.
237 * config/rs6000/power5.md (power5-fp): Add fpsimple.
238 * config/rs6000/power6.md (power6-fp): Add fpsimple.
239 (power6-vecsimple): Add veclogical, vecmove.
240 (power6-veccmp): Add veccmpfx.
241 * config/rs6000/power7.md (power7-fp): Add fpsimple.
242 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
243 * config/rs6000/power8.md (power8-fp): Add fpsimple.
244 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
245 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
246 * config/rs6000/titan.md (titan_fp): Add fpsimple.
247 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
249 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
251 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
254 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
255 OPTION_MASK_P9_DFORM_VECTOR.
256 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
257 disable -mpower9-dform-vector when using reload.
258 (quad_address_p): Remove 'gpr_p' argument and all associated code.
259 New 'strict' argument. Update all callers. Add strict addressing
261 (rs6000_legitimate_offset_address_p): Remove call to
262 virtual_stack_registers_memory_p.
263 (rs6000_legitimize_reload_address): Add quad address support.
264 (rs6000_legitimate_address_p): Move call to quad_address_p above
265 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
266 to account for new strict usage.
267 (rs6000_output_move_128bit): Adjust quad_address_p args to account
268 for new strict usage.
269 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
271 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
278 * config/i386/i386.c (ix86_spill_class): Disable condition to
279 always return NO_REGS.
281 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
283 * predict.c: Include gimple-pretty-print.h
284 (predicted_by_loop_heuristics_p): Check also
285 PRED_LOOP_EXIT_WITH_RECURSION
286 (predict_loops): Find self recursive calls and use special purpose
287 predictors for them; dump log about decisions.
288 (pass_profile::execute): Dump info about #of iterations.
289 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
290 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
292 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
294 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
295 output_asm_insn calls and shorten long lines. Output .CALL
296 argument descriptor using pa_output_arg_descriptor. Add various
297 inline $$dyncall and other optimizations.
298 (pa_attr_length_indirect_call): Adjust ordering and lengths.
300 2016-06-25 Jakub Jelinek <jakub@redhat.com>
302 PR tree-optimization/71643
303 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
306 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
307 leak a bitmap if dep_bb is NULL.
309 PR tree-optimization/71631
310 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
311 to rewrite_expr_tree even if negate_result, move new_lhs var
312 declaration and initialization earlier, for powi_result set afterwards
313 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
314 if new_lhs != lhs, and don't shadow gsi var.
316 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
318 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
319 Add in_loop parameter.
320 (predict_loops): Add loop guard heuristics.
321 * predict.def (PRED_LOOP_GUARD): New heuristics.
323 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
325 * predict.c: Include ipa-utils.h
326 (tree_bb_level_prediction): Predict recursive calls.
327 (tree_estimate_probability_bb): Skip inexpensive calls for call
329 * predict.def (PRED_RECURSIVE_CALL): New.
331 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
333 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
334 (BU_FLOAT128_1): Likewise.
336 (COPYSIGNQ): Likewise.
337 (RS6000_BUILTIN_NANQ): Likewise.
338 (RS6000_BUILTIN_NANSQ): Likewise.
339 (RS6000_BUILTIN_INFQ): Likewise.
340 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
341 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
342 (TARGET_FOLD_BUILTIN): New #define.
343 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
344 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
345 (rs6000_fold_builtin): New target hook implementation, handling
346 folding of 128-bit NaNs and infinities.
347 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
348 entries are filled in to avoid problems during bootstrap
349 self-test; define builtins for 128-bit NaNs and infinities.
350 (rs6000_opt_mask): Add entry for float128.
351 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
352 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
353 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
354 (const_str_type_node): New #define.
355 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
356 to a define_expand that dispatches to either copysign<mode>3_soft
357 or copysign<mode>3_hard.
358 (copysign<mode>3_hard): Rename from copysign<mode>3.
359 (copysign<mode>3_soft): New define_insn.
360 * doc/extend.texi: Document new builtins.
362 2016-06-24 Jakub Jelinek <jakub@redhat.com>
364 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
365 PRIu64 instead of lu.
367 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
370 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
373 2016-06-24 Jakub Jelinek <jakub@redhat.com>
375 PR tree-optimization/71647
376 * omp-low.c (lower_rec_input_clauses): Convert
377 omp_clause_aligned_alignment (c) to size_type_node for the
378 last argument of __builtin_assume_aligned.
380 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
382 * configure.ac (calling ___tls_get_addr via GOT): New
383 assembler/linker check.
384 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
385 assembler and linker supports calling ___tls_get_addr via GOT.
386 Otherise, defined to 0.
387 * config.in: Regenerated.
388 * configure: Likewise.
389 * config/i386/constraints.md (Yb): New constraint.
390 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
391 (REG_CLASS_NAMES): Likewise.
392 (REG_CLASS_CONTENTS): Likewise.
393 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
394 the b constraint with the Yb constraint. Call ___tls_get_addr
395 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
397 (*tls_local_dynamic_base_32_gnu): Likewise.
398 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
399 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
400 (*tls_local_dynamic_base_64_<mode>): Likewise.
402 2016-06-24 Martin Liska <mliska@suse.cz>
404 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
405 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
407 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
408 argument to true if the expected number of iterations is
411 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
413 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
414 assemble for 32bit target.
415 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
416 and $ld_ix86_gld_32_opt to link for 32bit target.
417 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
418 * configure: Regenerate.
420 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
422 * config/arm/arm.c (int_log2): Delete definition and prototype.
423 (shift_op): Use exact_log2 instead of int_log2.
424 (vfp3_const_double_for_fract_bits): Likewise.
426 2016-06-24 Jakub Jelinek <jakub@redhat.com>
428 * internal-fn.c (expand_arith_set_overflow): New function.
429 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
431 (expand_arith_overflow_result_store): Likewise. Handle precision
432 smaller than mode precision.
433 * tree-vrp.c (extract_range_basic): For imag part, handle
434 properly signed 1-bit precision result.
435 * doc/extend.texi (__builtin_add_overflow): Document that last
436 argument can't be pointer to enumerated or boolean type.
437 (__builtin_add_overflow_p): Document that last argument can't
438 have enumerated or boolean type.
440 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
441 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
443 * config/rs6000/predicates.md (splat_input_operand): Rework.
444 Don't allow constants, since the insns that use this predicate
445 don't support constants. Constants are handled by other insns
446 that are created via combine. During and after register
447 allocation, only allow indexed or indirect addresses, and not
448 general addresses. Only allow modes supported by the hardware.
449 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
450 comment. Move check for using VSPLTIS<x> to a common location,
451 instead of doing it in two different places.
453 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
455 * config/i386/driver-i386.c (host_detect_local_cpu): Set
456 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
457 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
458 signature_CENTAUR_ebx.
460 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
464 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
465 (as_ix86_gas_32_opt): This.
466 (ld_ix86_tls_ldm_opt): Renamed to ...
467 (ld_ix86_gld_32_opt): This.
468 (R_386_TLS_LDM reloc): Updated.
469 (R_386_GOT32X reloc): New assembler/linker check.
470 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
471 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
473 * config.in: Regenerated.
474 * configure: Likewise.
475 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
476 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
477 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
478 if ix86_force_load_from_GOT_p returns true.
479 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
480 ix86_force_load_from_GOT_p returns true.
481 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
482 the external function address via the GOT slot.
483 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
484 HAVE_AS_IX86_GOT32X before returning false.
485 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
486 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
488 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
490 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
492 2016-06-23 Andi Kleen <ak@linux.intel.com>
494 * Makefile.in: Regenerate.
495 * doc/install.texi: Document autoprofiledbootstrap.
497 2016-06-23 Andi Kleen <ak@linux.intel.com>
499 * config/i386/gcc-auto-profile: New file.
501 2016-06-23 Martin Liska <mliska@suse.cz>
504 * predict.c (predict_loops): Revert the hunk that was removed
507 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
509 * config.gcc: Add support for arm*-*-phoenix* targets.
510 * config/arm/t-phoenix: New.
511 * config/phoenix.h: New.
513 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
514 H.J. Lu <hongjiu.lu@intel.com>
517 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
518 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
519 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
520 ix86_force_load_from_GOT_p returns true.
521 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
522 ix86_force_load_from_GOT_p returns true.
523 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
524 ix86_force_load_from_GOT_p returns true.
525 (ix86_expand_move): Load the external function address via the
526 GOT slot if ix86_force_load_from_GOT_p returns true.
527 * config/i386/predicates.md (x86_64_immediate_operand): Return
528 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
529 (x86_64_zext_immediate_operand): Ditto.
531 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
533 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
535 2016-06-22 David Malcolm <dmalcolm@redhat.com>
538 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
539 * diagnostic.c (pedwarn_at_rich_loc): New function.
540 * spellcheck.h (best_match::best_match): Add a
541 "best_distance_so_far" optional parameter.
542 (best_match::set_best_so_far): New method.
543 (best_match::get_best_distance): New accessor.
544 (best_match::get_best_candidate_length): New accessor.
546 2016-06-22 Nick Clifton <nickc@redhat.com>
548 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
549 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
550 modes are accepted as well.
551 (ucompare_loc_descriptor): Likewise.
552 (minmax_loc_descriptor): Likewise.
553 (clz_loc_descriptor): Likewise.
554 (popcount_loc_descriptor): Likewise.
555 (bswap_loc_descriptor): Likewise.
556 (rotate_loc_descriptor): Likewise.
557 (mem_loc_descriptor): Likewise.
558 (loc_descriptor): Likewise.
560 2016-06-22 David Malcolm <dmalcolm@redhat.com>
562 * common.opt (fdiagnostics-parseable-fixits): New option.
563 * diagnostic.c: Include "selftest.h".
564 (print_escaped_string): New function.
565 (print_parseable_fixits): New function.
566 (diagnostic_report_diagnostic): Call print_parseable_fixits.
567 (selftest::assert_print_escaped_string): New function.
568 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
569 (selftest::test_print_escaped_string): New function.
570 (selftest::test_print_parseable_fixits_none): New function.
571 (selftest::test_print_parseable_fixits_insert): New function.
572 (selftest::test_print_parseable_fixits_remove): New function.
573 (selftest::test_print_parseable_fixits_replace): New function.
574 (selftest::diagnostic_c_tests): New function.
575 * diagnostic.h (struct diagnostic_context): Add field
576 "parseable_fixits_p".
577 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
578 -fdiagnostics-parseable-fixits.
579 (-fdiagnostics-parseable-fixits): New option.
580 * opts.c (common_handle_option): Handle
581 -fdiagnostics-parseable-fixits.
582 * selftest-run-tests.c (selftest::run_tests): Call
583 selftest::diagnostic_c_tests.
584 * selftest.h (selftest::diagnostic_c_tests): New prototype.
586 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
588 PR tree-optimization/71488
589 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
590 comparison of boolean vectors.
591 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
592 of boolean vectors using bitwise operations.
594 2016-06-22 Andreas Schwab <schwab@suse.de>
596 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
599 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
601 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
603 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
605 * config/i386/i386.c (print_reg): Emit an error message on attempt to
608 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
610 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
611 * config/arm/arm-cores.def (cortex-a73): New entry.
612 (cortex-a73.cortex-a35): Likewise.
613 (cortex-a73.cortex-a53): Likewise.
614 * config/arm/arm-tables.opt: Regenerate.
615 * config/arm/arm-tune.md: Likewise.
616 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
617 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
618 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
619 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
620 * doc/invoke.texi (ARM Options): Document cortex-a73,
621 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
623 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
625 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
626 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
627 (cortex-a73.cortex-a35): Likewise.
628 (cortex-a73.cortex-a53): Likewise.
629 * config/aarch64/aarch64-tune.md: Regenerate.
630 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
631 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
634 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
636 * configure.ac (gcc_cv_as_compress_debug): Remove
637 --compress-debug-sections as extra as switch.
638 Handle gas --compress-debug-sections=type.
639 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
640 Handle gld --compress-debug-sections=type.
641 * configure: Regenerate.
643 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
645 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
647 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
649 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
650 (do_rewrite): likewise.
652 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
654 * common/config/mep/mep-common.c: Remove.
655 * config.gcc: Remove mep-* support.
656 * config/mep/constraints.md: Remove.
657 * config/mep/default.h: Remove.
658 * config/mep/intrinsics.h: Remove.
659 * config/mep/intrinsics.md: Remove.
660 * config/mep/ivc2-template.h: Remove.
661 * config/mep/mep-c5.cpu: Remove.
662 * config/mep/mep-core.cpu: Remove.
663 * config/mep/mep-default.cpu: Remove.
664 * config/mep/mep-ext-cop.cpu: Remove.
665 * config/mep/mep-intrin.h: Remove.
666 * config/mep/mep-ivc2.cpu: Remove.
667 * config/mep/mep-pragma.c: Remove.
668 * config/mep/mep-protos.h: Remove.
669 * config/mep/mep.c: Remove.
670 * config/mep/mep.cpu: Remove.
671 * config/mep/mep.h: Remove.
672 * config/mep/mep.md: Remove.
673 * config/mep/mep.opt: Remove.
674 * config/mep/predicates.md: Remove.
675 * config/mep/t-mep: Remove.
676 * doc/install.texi: Remove mep-* documentation.
677 * doc/md.texi: Likewise.
679 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
681 * config.gcc: Remove support for avr-rtems.
682 * config/avr/gen-avr-mmcu-specs.c: Likewise.
683 * config/avr/rtems.h: Remove.
684 * config/avr/t-rtems: Remove.
686 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
688 * config.gcc: Remove m32r-rtems support.
689 * config/m32r/rtems.h: Remove.
691 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
693 * config.gcc: Remove h8300-rtems support.
694 * config/h8300/rtems.h: Remove.
695 * config/h8300/t-rtems: Remove.
697 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
699 * config.gcc: Remove support for knetbsd.
700 * configure.ac: Likewise.
701 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
702 * config/knetbsd-gnu.h: Remove.
703 * configure: Regenerate.
705 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
707 * config.gcc: Remove support for openbsd 2 and 3.
708 * config/openbsd-oldgas.h: Remove.
710 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
712 * config.gcc: Remove interix support.
713 * config/i386/i386-interix.h: Remove.
714 * config/i386/interix.opt: Remove.
715 * config/i386/t-interix: Remove.
716 * configure: Regenerate.
717 * configure.ac: Remove interix support.
718 * doc/install.texi: Remove interix documentation.
720 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
722 * config/rs6000/rs6000.h: Add conditional preprocessing directives
723 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
726 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
728 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
729 they are both PLACEHOLDER_EXPRs.
731 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
733 * stor-layout.c (layout_type): Move setting complex MODE to
734 layout_type, instead of setting it ahead of time by the caller.
735 * tree.c (build_complex_type): Likewise.
737 2016-06-21 Martin Liska <mliska@suse.cz>
739 * predict.c (force_edge_cold): Replace imposisble with
742 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
744 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
745 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
747 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
749 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
751 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
752 Ilya Enkovich <ilya.enkovich@intel.com>
755 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
756 New member function to convert V1TImode register to SUBREG
757 TImode in debug insn.
758 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
759 after changing register mode to V1TImode.
761 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
763 * config/aarch64/aarch64-cores.def (vulcan): New core.
764 * config/aarch64/aarch64-tune.md: Regenerate.
765 * doc/invoke.texi: Document vulcan as an available option.
767 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
769 * cse.c (canon_asm_operands): New function extracted from...
770 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
771 either standalone or member of a PARALLEL.
773 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
776 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
777 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
778 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
780 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
783 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
784 constant addresses if can_create_pseudo_p.
786 2016-06-21 Jakub Jelinek <jakub@redhat.com>
788 PR tree-optimization/71588
789 * tree-ssa-strlen.c (valid_builtin_call): New function.
790 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
793 2016-06-20 Jakub Jelinek <jakub@redhat.com>
796 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
797 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
798 for conversion of scalar user var to complex type and use the
799 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
802 PR rtl-optimization/71591
803 * toplev.c (toplev::run_self_tests): If no_backend, complain and
806 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
809 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
810 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
811 space for PIC with non-v32 and the common non-PIC "jump".
813 2016-06-20 Jakub Jelinek <jakub@redhat.com>
816 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
817 returned values and add UN*/LTGT/*ORDERED cases with values matching
818 D operand modifier on vcmp for AVX.
820 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
822 * config/aarch64/aarch64.opt
823 (mpc-relative-literal-loads): Rename internal option name.
824 * config/aarch64/aarch64.c
825 (aarch64_nopcrelative_literal_loads): Rename to
826 aarch64_pcrelative_literal_loads.
827 (aarch64_expand_mov_immediate): Likewise.
828 (aarch64_secondary_reload): Likewise.
829 (aarch64_can_use_per_function_literal_pools_p): Likewise.
830 (aarch64_override_options_after_change_1): Rename and simplify logic.
831 (aarch64_classify_symbol): Merge large model checks into switch,
832 remove pc-relative load check.
834 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
836 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
837 costs relative to the cost of a register move.
839 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
841 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
842 (vcvt_n_f64_u64): Likewise.
843 (vcvt_n_s64_f64): Likewise.
844 (vcvt_n_u64_f64): Likewise.
845 (vcvt_f64_s64): Likewise.
846 (vrecpe_f64): Likewise.
847 (vcvt_f64_u64): Likewise.
848 (vrecps_f64): Likewise.
850 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
852 * config/aarch64/aarch64.md
853 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
855 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
857 * config/aarch64/aarch64-builtins.c
858 (aarch64_types_binop_uss_qualifiers): Delete.
859 (TYPES_BINOP_USS): Likewise.
860 (aarch64_types_binop_sus_qualifiers): Likewise.
861 (TYPES_BINOP_SUS): Likewise.
862 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
863 (TYPES_FCVTIMM_SUS): Likewise.
864 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
866 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
867 (fcvtzs): Use SHIFTIMM rather than BINOP.
868 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
870 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
872 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
873 costs relative to the cost of a register move.
875 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
877 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
878 Allow scalar/single vector modes to be tieable.
880 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
882 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
884 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
886 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
888 * tree.h (TYPE_ALIGN): Likewise.
890 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
893 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
895 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
897 * config/avr/avr.c (avr_print_operand): Fix "format not a string
898 literal" build warnings.
899 (avr_print_operand_address): Dito.
901 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
904 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
905 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
907 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
909 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
911 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
914 * reload1.c (reload): Pass 0 to finish_spills when called because
915 update_eliminables_and_spill returns true and remove did_spill.
916 (finish_spills): Adjust comment and document GLOBAL parameter.
918 2016-06-17 DJ Delorie <dj@redhat.com>
921 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
922 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
923 (umulqihi3_virt): Likewise.
924 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
925 (umulqihi3_real): Likewise.
927 2016-06-17 Martin Liska <mliska@suse.cz>
929 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
931 2016-06-17 Martin Liska <mliska@suse.cz>
933 * predict.def: PRED_LOOP_EXIT from 92 to 85.
935 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
937 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
939 (vaddq_f32): Likewise.
940 (vmul_f32): Likewise.
941 (vmulq_f32): Likewise.
942 (vsub_f32): Likewise.
943 (vsubq_f32): Likewise.
945 2016-06-17 Bin Cheng <bin.cheng@arm.com>
947 PR tree-optimization/71347
948 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
949 cost for all uses in group.
951 2016-06-17 Bin Cheng <bin.cheng@arm.com>
953 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
954 insert gimple seq if it's not empty.
956 2016-06-17 Bin Cheng <bin.cheng@arm.com>
958 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
960 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
962 (comp_dr_with_seg_len_pair): Ditto.
963 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
964 struct dr_with_seg_len_pair against DR_OFFSET.
965 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
968 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
970 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
972 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
974 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
975 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
976 (pa_output_millicode_call): Likewise.
977 (pa_output_call): Likewise.
978 (pa_output_indirect_call): Likewise.
979 (pa_asm_output_mi_thunk): Likewise.
981 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
983 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
985 2016-06-16 Martin Liska <mliska@suse.cz>
987 * predict.c (combine_predictions_for_insn): When we find a first
988 match predictor, we should consider just predictors with
989 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
991 (combine_predictions_for_bb): Likewise.
993 2016-06-16 Jakub Jelinek <jakub@redhat.com>
995 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
996 with base of reference to struct.
998 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
1000 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
1002 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1005 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
1006 progmem_swtable_section.
1007 (progmem_swtable_section): Remove.
1008 (avr_asm_function_rodata_section): Remove.
1009 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
1010 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
1012 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
1014 * config/i386/driver-i386.c (host_detect_local_cpu): Set
1015 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
1016 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
1017 signature_CENTAUR_ebx.
1018 * config/i386/i386.c (ix86_option_override_internal): Add
1019 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
1020 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
1021 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
1023 2016-06-16 Martin Liska <mliska@suse.cz>
1025 * predict.def: Add fortran loop preheader predictor.
1026 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
1027 fold IFN_BUILTIN_EXPECT with a known constant argument.
1029 2016-06-16 Martin Liska <mliska@suse.cz>
1031 * predict.def: Add 'Fortran' to display text of all
1032 PRED_FORTRAN_* predictors.
1034 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
1037 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
1038 [IA64_BUILTIN_NANSQ]: Ditto.
1039 (ia64_fold_builtin): New function.
1040 (TARGET_FOLD_BUILTIN): New define.
1041 (ia64_init_builtins) Declare const_string_type node.
1042 Add __builtin_nanq and __builtin_nansq builtin functions.
1043 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
1045 2016-06-16 Nick Clifton <nickc@redhat.com>
1047 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
1048 MSP430_HWMULT_ prefix to enum values.
1049 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
1050 * config/msp430/msp430.c: Update use of enum values.
1051 * config/msp430/msp430.md: Likewise.
1052 * config/msp430/msp430.opt: Likewise.
1054 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
1056 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
1057 of comparsions in the last iteration.
1059 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
1060 Joern Rennecke <joern.rennecke@embecosm.com>
1062 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
1064 (arc_needs_pcl_p): Add GOTOFFPC.
1065 (arc_legitimate_pic_addr_p): Likewise.
1066 (arc_output_pic_addr_const): Likewise.
1067 (arc_legitimize_pic_address): Generate a pc-relative address using
1069 (arc_output_libcall): Use @pcl syntax.
1070 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
1071 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
1072 (*movsi_insn): Use @pcl syntax.
1073 (doloop_begin_i): Likewise.
1075 2016-06-16 Martin Liska <mliska@suse.cz>
1077 * predict.def: Define a new predictor.
1079 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
1081 * config/arc/arc.opt (mtp-regno): Update text.
1083 2016-06-16 Renlin Li <renlin.li@arm.com>
1085 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
1087 2016-06-16 Jakub Jelinek <jakub@redhat.com>
1090 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
1091 (setcc + and peephole2): Likewise.
1093 PR rtl-optimization/71532
1094 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
1097 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
1099 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
1100 DImode constants with XXSPLTIB in vector registers.
1101 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
1102 vsx_extract_<mode>_internal{1,2} into a single insn that handles
1103 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
1104 extraction of the element at the top of the register as a scalar
1106 (vsx_extract_<mode>_internal1): Likewise.
1107 (vsx_extract_<mode>_internal2): Likewise.
1108 * config/rs6000/constraints.md (wi constraint): Remove a comment
1109 about DImode not being allowed in Altivec registers.
1110 (wB constraint): New constraint for constants that can be
1111 generated in Altivec registers with VSPLTISW/VUPKHSW.
1112 * config/rs6000/predicates.md (xxspltib_constant_split): Update
1114 (xxspltib_constant_nosplit): Likewise.
1115 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
1116 support for -mupper-regs-di to enable DImode to go into Altivec
1118 (POWERPC_MASKS): Likewise.
1119 (power7 cpu): Likewise.
1120 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
1121 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
1122 for DImode being allowed in Altivec registers. Update wi/wj
1123 constraints. Set scalar_in_vmx_p flag.
1124 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
1125 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
1126 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
1127 (rs6000_opt_masks): Add -mupper-regs-di.
1128 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
1129 direct move to use wi and not wj.
1131 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
1133 (floatunssi<mode>2_lfiwzx_mem): Likewise.
1134 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
1135 any VSX register, instead of just Altivec registers, to allow
1136 either operand to be an Altivec register or both.
1137 (fixuns_trunc<mode>di2_fctiduz): Likewise.
1138 (movdi_internal32): Add support for -mupper-regs-di. Add support
1139 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
1140 the alternatives and attributes to be lined up to be easier to
1142 (movdi_internal64): Likewise.
1143 (64-bit DImode splitters): Change predicates to only split loading
1144 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
1145 load constants in ISA 3.0 or ISA 2.07 respectively.
1146 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1147 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
1148 mention -mcpu=power9 sets these options.
1149 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
1152 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
1155 * config/avr/avr.c (avr_set_current_function): Warn misspelled
1156 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
1157 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
1158 by default to warn misspelled interrupt/ signal handler.
1159 * doc/invoke.texi (AVR Options): Document it. Update description
1160 for -nodevicelib option.
1162 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1164 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
1165 up parentheses. Use GET_MODE_UNIT_BITSIZE.
1166 (aarch64_<sur>shll2_n<mode>): Likewise.
1168 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
1171 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
1172 DECL_CONTEXT for copied arguments.
1174 2016-06-15 Alan Hayward <alan.hayward@arm.com>
1176 PR tree-optimization/71483
1177 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
1180 2016-06-15 Martin Liska <mliska@suse.cz>
1182 * predict.c (tree_predict_by_opcode): Call predict_edge_def
1183 instead of predict_edge w/o a probability.
1185 2016-06-15 Alan Hayward <alan.hayward@arm.com>
1187 PR tree-optimization/71439
1188 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
1191 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1193 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
1194 register subregs in SET_SRC.
1196 2016-06-15 Richard Biener <rguenther@suse.de>
1198 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
1201 2016-06-15 Richard Biener <rguenther@suse.de>
1203 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
1204 not consider dependences between accesses that belong to the
1206 (vect_analyze_data_ref_dependences): Do not analyze read-read
1207 or self-dependences.
1209 2016-06-14 David Malcolm <dmalcolm@redhat.com>
1211 * spellcheck-tree.c: Include spellcheck-tree.h rather than
1213 (find_closest_identifier): Reimplement in terms of
1214 best_match<tree,tree>.
1215 * spellcheck-tree.h: New file.
1216 * spellcheck.c (struct edit_distance_traits<const char *>): New
1218 (find_closest_string): Reimplement in terms of
1219 best_match<const char *, const char *>.
1220 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
1221 overload to spellcheck-tree.h.
1222 (find_closest_identifier): Likewise.
1223 (struct edit_distance_traits<T>): New template.
1224 (class best_match): New class.
1226 2016-06-14 David Malcolm <dmalcolm@redhat.com>
1228 * selftest-run-tests.c (selftest::run_tests): Call
1229 selftest::spellcheck_tree_c_tests.
1230 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
1231 * spellcheck-tree.c: Include selftest.h and stringpool.h.
1232 (selftest::test_find_closest_identifier): New function.
1233 (selftest::spellcheck_tree_c_tests): New function.
1234 * spellcheck.c (selftest::test_find_closest_string): Verify that
1235 the order of the vec does not affect the results for this case.
1236 (selftest::test_data): New array.
1237 (selftest::test_metric_conditions): New function.
1238 (selftest::spellcheck_c_tests): Add a test of case-comparison.
1239 Call selftest::test_metric_conditions.
1241 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1243 * config/rs6000/rs6000-builtin.def (commentary): Typo.
1244 (BU_P9_MISC_1): Likewise.
1245 (BU_P9_64BIT_MISC_0): Likewise.
1246 (BU_P9_MISC_0): Likewise.
1248 2016-06-14 David Malcolm <dmalcolm@redhat.com>
1250 * gcc-rich-location.c
1251 (gcc_rich_location::add_fixit_misspelled_id): New method.
1252 * gcc-rich-location.h
1253 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
1255 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
1257 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
1258 FreeBSD 11 and above.
1260 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
1262 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
1264 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1266 * expmed.h: Close parenthesis in "at your option" in copyright
1268 * lower-subreg.h: Likewise.
1270 2016-06-14 Richard Biener <rguenther@suse.de>
1273 * genmatch.c (expr::gen_transform): Use in_type for comparisons
1276 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1278 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
1280 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
1282 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
1284 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
1285 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
1287 2016-06-14 Richard Biener <rguenther@suse.de>
1289 PR tree-optimization/71522
1290 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
1291 copying into float copying.
1293 2016-06-14 Jakub Jelinek <jakub@redhat.com>
1295 PR tree-optimization/71520
1296 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
1297 (replace_block_by): Move user labels from bb1 to bb2.
1299 2016-06-14 Richard Biener <rguenther@suse.de>
1303 * expr.h (get_bit_range): Declare.
1304 * expr.c (get_bit_range): Export.
1305 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
1306 word_mode again to constrain the bitfield access.
1308 2016-06-14 Richard Biener <rguenther@suse.de>
1310 PR tree-optimization/71521
1311 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
1312 division int_const_binop against zero divisor.
1314 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
1316 * config/i386/i386.md (signbittf2): New expander.
1317 * config/i386/sse.md (ptesttf2): New insn pattern.
1319 2016-06-13 David Malcolm <dmalcolm@redhat.com>
1322 * input.c (selftest::test_reading_source_line): Avoid reading from
1323 __FILE__ by creating a tempfile with known content and reading
1326 2016-06-13 David Malcolm <dmalcolm@redhat.com>
1328 * pretty-print.c (assert_pp_format_colored): Skip the test if
1330 (test_pp_format): Remove comment about GCC_COLORS.
1332 2016-06-13 David Malcolm <dmalcolm@redhat.com>
1334 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
1335 * pretty-print.c (assert_pp_format_va): Add location param and use
1336 it with ASSERT_STREQ_AT.
1337 (assert_pp_format): Add location param and pass it to
1338 assert_pp_format_va.
1339 (assert_pp_format_colored): Likewise.
1340 (ASSERT_PP_FORMAT_1): New.
1341 (ASSERT_PP_FORMAT_2): New.
1342 (ASSERT_PP_FORMAT_3): New.
1343 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
1344 explicitly, or implicitly via the above macros.
1345 * selftest.c (selftest::pass): Use a selftest::location rather
1347 (selftest::fail): Likewise. Print the function name.
1348 (selftest::fail_formatted): Likewise.
1349 (selftest::assert_streq): Use a selftest::location rather than
1351 * selftest.h (selftest::location): New struct.
1352 (SELFTEST_LOCATION): New macro.
1353 (selftest::pass): Accept a const location & rather than file
1355 (selftest::fail): Likewise.
1356 (selftest::fail_formatted): Likewise.
1357 (selftest::assert_streq): Likewise.
1358 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
1359 (ASSERT_FALSE): Likewise.
1360 (ASSERT_EQ): Likewise.
1361 (ASSERT_NE): Likewise.
1362 (ASSERT_STREQ): Likewise.
1363 (ASSERT_PRED1): Likewise.
1364 (ASSERT_STREQ_AT): New macro.
1366 2016-06-13 David Malcolm <dmalcolm@redhat.com>
1368 * selftest.c (selftest::fail_formatted): New function.
1369 (selftest::assert_streq): New function.
1370 * selftest.h (selftests::fail_formatted): New decl.
1371 (selftest::assert_streq): New decl.
1372 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
1374 2016-06-13 Jeff Law <law@redhat.com>
1376 PR tree-optimization/71403
1377 * tree-ssa-threadbackward.c
1378 (convert_and_register_jump_thread_path): No longer accept reference
1379 to path. Do not pop items off the path anymore.
1380 (fsm_find_control_statement_thread_paths): Do not allow threading
1381 to a deeper loop nest. Pop the last item off the path here rather
1382 than in convert_and_register_jump_thread_path.
1384 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
1385 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
1387 [AArch64] Emit division using the Newton series
1389 * config/aarch64/aarch64-protos.h
1390 (cpu_approx_modes): Add new member "division".
1391 (aarch64_emit_approx_div): Declare new function.
1392 * config/aarch64/aarch64.c
1393 (generic_approx_modes): New member "division".
1394 (exynosm1_approx_modes): Likewise.
1395 (xgene1_approx_modes): Likewise.
1396 (aarch64_emit_approx_div): Define new function.
1397 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
1398 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
1399 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
1400 * doc/invoke.texi (-mlow-precision-div): Describe new option.
1402 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
1403 Wilco Dijkstra <wilco.dijkstra@arm.com>
1405 [AArch64] Emit square root using the Newton series
1407 * config/aarch64/aarch64-protos.h
1408 (aarch64_emit_approx_rsqrt): Replace with new function
1409 "aarch64_emit_approx_sqrt".
1410 (cpu_approx_modes): New member "sqrt".
1411 * config/aarch64/aarch64.c
1412 (generic_approx_modes): New member "sqrt".
1413 (exynosm1_approx_modes): Likewise.
1414 (xgene1_approx_modes): Likewise.
1415 (aarch64_emit_approx_rsqrt): Replace with new function
1416 "aarch64_emit_approx_sqrt".
1417 (aarch64_override_options_after_change_1): Handle new option.
1418 * config/aarch64/aarch64-simd.md
1419 (rsqrt<mode>2): Use new function instead.
1420 (sqrt<mode>2): New expansion and insn definitions.
1421 * config/aarch64/aarch64.md: Likewise.
1422 * config/aarch64/aarch64.opt
1423 (mlow-precision-sqrt): Add new option description.
1424 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
1426 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
1428 [AArch64] Add more choices for the reciprocal square root approximation
1430 Allow a target to prefer such operation depending on the operation mode.
1432 * config/aarch64/aarch64-protos.h
1433 (AARCH64_APPROX_MODE): New macro.
1434 (AARCH64_APPROX_{NONE,ALL}): Likewise.
1435 (cpu_approx_modes): New structure.
1436 (tune_params): New member "approx_modes".
1437 * config/aarch64/aarch64-tuning-flags.def
1438 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
1439 * config/aarch64/aarch64.c
1440 (generic_approx_modes): New core "cpu_approx_modes" structure.
1441 (exynosm1_approx_modes): Likewise.
1442 (xgene1_approx_modes): Likewise.
1443 (generic_tunings): New member "approx_modes".
1444 (cortexa35_tunings): Likewise.
1445 (cortexa53_tunings): Likewise.
1446 (cortexa57_tunings): Likewise.
1447 (cortexa72_tunings): Likewise.
1448 (exynosm1_tunings): Likewise.
1449 (thunderx_tunings): Likewise.
1450 (xgene1_tunings): Likewise.
1451 (use_rsqrt_p): New argument for the mode and use new member from
1453 (aarch64_builtin_reciprocal): Devise mode from builtin.
1454 (aarch64_optab_supported_p): New argument for the mode.
1455 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
1457 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
1459 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
1460 RS6000_BTM_MODULO flag into the set of flags that are considered
1461 to be part of the common configuration.
1463 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
1465 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
1466 difference unsigned.
1467 (vec_absdb): New macro for vector absolute difference unsigned
1469 (vec_absdh): New macro for vector absolute difference unsigned
1471 (vec_absdw): New macro for vector absolute difference unsigned word.
1472 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
1473 (vadu<mode>3): New insn.
1474 (*p9_vadu<mode>3): New insn.
1475 * config/rs6000/rs6000-builtin.def (vadub): New built-in
1477 (vaduh): New built-in definition.
1478 (vaduw): New built-in definition.
1479 (vadu): New overloaded built-in definition.
1480 (vadub): New overloaded built-in definition.
1481 (vaduh): New overloaded built-in definition.
1482 (vaduw): New overloaded built-in definition.
1483 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1484 overloaded vector absolute difference unsigned functions.
1485 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1486 the ISA 3.0 vector absolute difference unsigned built-in functions.
1488 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
1490 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
1491 update shared_lookup_references only once after changing operands.
1493 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
1496 * tree-nested.c (convert_nonlocal_omp_clauses)
1497 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
1499 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
1500 * tree.def (CASE_LABEL_EXPR): Likewise.
1502 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
1505 * input.c (test_builtins): Fix an assertion.
1507 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
1509 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
1512 (isinf<mode>2): Ditto.
1514 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
1516 * ggc-tests.c (test_finalization): Only test need_finalization_p
1517 for GCC_VERSION >= 4003.
1519 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1521 * config/s390/vecintrin.h: Fix file description in comment.
1523 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1525 * config/s390/s390-builtin-types.def: Change builtin type naming
1526 scheme to match builtin-types.def.
1528 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
1530 * fold-const.c (optimize_minmax_comparison): Remove.
1531 (fold_comparison): Remove call to the above.
1532 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
1533 New transformations.
1535 2016-06-13 Alan Hayward <alan.hayward@arm.com>
1537 PR tree-optimization/71416
1538 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
1541 2016-06-13 Martin Liska <mliska@suse.cz>
1543 * predict.c (enum predictor_reason): Prefix enum with REASON_.
1544 (combine_predictions_for_insn): Likewise.
1545 (prune_predictions_for_bb): Likewise.
1546 (combine_predictions_for_bb): Likewise.
1548 2016-06-13 Richard Biener <rguenther@suse.de>
1550 PR tree-optimization/71505
1551 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
1552 assert match comment.
1554 2016-06-13 Marek Polacek <polacek@redhat.com>
1557 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
1558 gimplify_switch_expr.
1559 (warn_switch_unreachable_r): New function.
1561 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1564 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
1567 2016-06-13 Richard Biener <rguenther@suse.de>
1570 * fold-const.c (fold_unary_loc): Preserve alignment when
1571 folding a VIEW_CONVERT_EXPR into a MEM_REF.
1573 2016-06-13 Martin Liska <mliska@suse.cz>
1576 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
1577 w/ -fsanitize=bounds.
1579 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
1581 * config/i386/i386.c (ix86_init_builtins): Calculate
1582 FLOAT128_FTYPE_CONST_STRING function type only once.
1583 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
1584 built-in functions are available for x86-32 and x86-64 targets.
1586 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
1589 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
1591 (FLOAT128_FTYPE_CONST_STRING): New function type.
1592 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
1593 [IX86_BUILTIN_NANSQ]: Ditto.
1594 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
1595 (ix86_init_builtin_types): Declare const_string_type_node.
1596 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
1598 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
1599 * doc/extend.texi (x86 Built-in Functions): Document
1600 __builtin_nanq and __builtin_nansq.
1602 2016-06-11 Jiong Wang <jiong.wang@arm.com>
1605 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
1606 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
1607 length for pop patterns.
1608 (arm_attr_length_push_multi): Update comments.
1609 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
1611 (*pop_multiple_with_writeback_and_return): Likewise.
1612 (*pop_multiple_with_return): Likewise.
1614 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
1617 * fold-const.c (optimize_bit_field_compare): Don't try to use
1618 word_mode unconditionally for reading the bit field, look at
1619 DECL_BIT_FIELD_REPRESENTATIVE instead.
1621 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
1624 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
1625 vector integer type.
1627 2016-06-10 Jakub Jelinek <jakub@redhat.com>
1630 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
1631 without LABEL_DECL, set *handled_ops_p to false instead of true.
1633 2016-06-10 Martin Sebor <msebor@redhat.com>
1636 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
1637 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
1638 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
1640 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
1641 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
1642 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
1643 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
1644 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
1645 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
1646 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
1647 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
1649 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1651 * config/arm/arm.h (pool_vector_label,
1652 return_used_this_function): Remove.
1654 2016-06-10 Jeff Law <law@redhat.com>
1656 PR tree-optimization/71335
1657 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
1658 zero length paths here.
1659 (convert_and_register_jump_thread_path): Remove hacks related to
1660 duplicated blocks in the jump thread path.
1661 (fsm_find_control_statement_thread_paths): Avoid putting the same
1662 block on the thread path twice, but ensure the thread path is
1663 unchanged from the caller's point of view.
1665 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
1667 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
1668 * predict.def (PRED_LOOP_BRANCH): Remove.
1670 2016-06-10 David Malcolm <dmalcolm@redhat.com>
1672 * Makefile.in (OBJS): Add ggc-tests.o.
1673 (GTFILES): Add ggc-tests.c.
1674 * ggc-tests.c: New file.
1675 * selftest-run-tests.c (selftest::run_tests): Call
1676 selftest::ggc_tests_c_tests.
1677 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
1679 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
1681 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
1683 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
1686 * varasm.c (place_block_symbol): Adjust alignment for asan protected
1687 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
1689 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
1691 * profile.c: Include cfgloop.h.
1692 (branch_prob): Compute estimated number of iterations.
1693 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
1694 recompute estimate number of iterations from profile.
1696 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1699 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
1700 must be grouped on top of stack. Don't force early clobber
1701 on ordinary reg outputs.
1703 2016-06-10 Richard Biener <rguenther@suse.de>
1705 * targhooks.c (default_builtin_vectorization_cost): Adjust
1708 2016-06-10 Richard Biener <rguenther@suse.de>
1710 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
1711 to fold the RHS to a constant if possible.
1713 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
1716 * tree-nested.c (convert_nonlocal_omp_clauses)
1717 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
1718 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
1719 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
1721 * gimplify.c (gimplify_adjust_omp_clauses): Discard
1723 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
1725 * omp-low.c (scan_sharing_clauses): Don't expect
1728 2016-06-10 Alan Hayward <alan.hayward@arm.com>
1730 PR tree-optimization/71407
1731 PR tree-optimization/71416
1732 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
1735 2016-06-10 Richard Biener <rguenther@suse.de>
1738 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
1740 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
1742 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
1744 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
1745 Jiong Wang <jiong.wang@arm.com>
1747 PR rtl-optimization/70751
1748 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
1749 spilled into memory.
1751 2016-06-09 Jonathan Yong <10walls@gmail.com>
1754 2015-09-21 Jonathan Yong <10walls@gmail.com>
1756 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
1757 sysroot/usr/lib/32api for additional win32 libraries,
1758 fixes failing Cygwin bootstrapping.
1760 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
1762 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
1765 2016-06-09 David Malcolm <dmalcolm@redhat.com>
1768 * pretty-print.c (pp_indent): Specify that %p is printed in a
1769 host-dependent manner.
1770 (test_pp_format): Remove the test for %p.
1772 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
1774 * config/mips/mips.c (mips_output_jump): Fix formatting.
1776 2016-06-09 Richard Biener <rguenther@suse.de>
1778 PR tree-optimization/71462
1779 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
1782 2016-06-09 Martin Liska <mliska@suse.cz>
1784 * predict.c (dump_prediction): Add new argument.
1785 (enum predictor_reason): New enum.
1786 (struct predictor_hash): New struct.
1787 (predictor_hash::hash): New function.
1788 (predictor_hash::equal): Likewise.
1789 (not_removed_prediction_p): New function.
1790 (prune_predictions_for_bb): Likewise.
1791 (combine_predictions_for_bb): Prune predictions.
1793 2016-06-09 Martin Liska <mliska@suse.cz>
1795 * predict.c (filter_predictions): New function.
1796 (remove_predictions_associated_with_edge): Use the filter
1798 (equal_edge_p): New function.
1800 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
1802 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
1803 Correct usage of @samp vs @option, add @samp where appropriate.
1804 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
1805 Add armv6s-m and document it, as it is no official ARM name.
1807 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1809 * ifcvt.c (struct noce_if_info): Add transform_name field.
1810 (noce_try_move): Set if_info->transform_name to the function name.
1811 (noce_try_ifelse_collapse): Likewise.
1812 (noce_try_store_flag): Likewise.
1813 (noce_try_inverse_constants): Likewise.
1814 (noce_try_store_flag_constants): Likewise.
1815 (noce_try_addcc): Likewise.
1816 (noce_try_store_flag_mask): Likewise.
1817 (noce_try_cmove): Likewise.
1818 (noce_try_cmove_arith): Likewise.
1819 (noce_try_minmax): Likewise.
1820 (noce_try_abs): Likewise.
1821 (noce_try_sign_mask): Likewise.
1822 (noce_try_bitop): Likewise.
1823 (noce_convert_multiple_sets): Likewise.
1824 (noce_process_if_block): Print if_info->transform_name to
1825 dump_file if transformation succeeded.
1827 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1829 * config/arm/cortex-a57.md (cortex_a57_alu):
1832 2016-06-08 Martin Sebor <msebor@redhat.com>
1833 Jakub Jelinek <jakub@redhat.com>
1837 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
1838 BUILT_IN_MUL_OVERFLOW_P): New builtins.
1839 * builtins.c: Include gimple-fold.h.
1840 (fold_builtin_arith_overflow): Handle
1841 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
1842 (fold_builtin_3): Likewise.
1843 * doc/extend.texi (Integer Overflow Builtins): Document
1844 __builtin_{add,sub,mul}_overflow_p.
1846 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
1848 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
1849 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
1851 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
1853 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
1854 Rewrite, looking one level down for records and arrays.
1856 2016-06-08 David Malcolm <dmalcolm@redhat.com>
1858 * pretty-print.c: Include "selftest.h".
1859 (pp_format): Fix comment.
1860 (identifier_to_locale): Likewise.
1861 (selftest::test_basic_printing): New function.
1862 (selftest::assert_pp_format): New function.
1863 (selftest::test_pp_format): New function.
1864 (selftest::pretty_print_c_tests): New function.
1865 * selftest-run-tests.c (selftest::run_tests): Call
1866 selftest::pretty_print_c_tests.
1867 * selftest.h (pretty_print_c_tests): New declaration.
1869 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
1871 * invoke.texi (max-loop-headers-insns): Document.
1872 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
1873 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
1874 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
1876 2016-06-08 Richard Biener <rguenther@suse.de>
1878 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
1879 on strided SLP loads and fall back to scalar loads in case
1880 we can't chunk them.
1882 2016-06-08 Richard Biener <rguenther@suse.de>
1884 PR tree-optimization/71452
1885 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
1886 type used for the SSA rewrite has enough precision to cover
1887 the dynamic type of the location.
1889 2016-06-08 Jakub Jelinek <jakub@redhat.com>
1890 Richard Biener <rguenther@suse.de>
1893 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
1894 the same as DECL_P (base0) for indirect_base0. Use equality_code
1895 in one further place.
1897 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
1899 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
1900 to one word if the field is known to overlap other words.
1901 (extract_bit_field_1): Likewise.
1902 (store_split_bit_field): Remove compensating code.
1903 (extract_split_bit_field): Likewise.
1905 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
1909 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
1911 2016-06-08 Jiong Wang <jiong.wang@arm.com>
1913 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
1915 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
1916 (arch64_addpv4sf): Delete.
1917 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
1918 "gen_aarch64_addpv4sf".
1919 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
1921 (vpadds_f32): Likewise.
1922 (vpaddq_f32): Likewise.
1923 (vpaddq_f64): Likewise.
1925 2016-06-08 Jiong Wang <jiong.wang@arm.com>
1927 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
1929 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
1930 to VALLF. Rename to "fabd<mode>3".
1931 "*fabd_scalar<mode>3): Delete.
1932 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
1934 (vabdd_f64): Likewise.
1935 (vabd_f32): Likewise.
1936 (vabd_f64): Likewise.
1937 (vabdq_f32): Likewise.
1938 (vabdq_f64): Likewise.
1940 2016-06-08 Jiong Wang <jiong.wang@arm.com>
1942 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
1944 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
1945 "aarch64_rsqrts<mode>".
1946 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
1947 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
1949 (vrsqrtsd_f64): Likewise.
1950 (vrsqrts_f32): Likewise.
1951 (vrsqrts_f64): Likewise.
1952 (vrsqrtsq_f32): Likewise.
1953 (vrsqrtsq_f64): Likewise.
1955 2016-06-08 Jiong Wang <jiong.wang@arm.com>
1957 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
1959 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
1960 "aarch64_rsqrte<mode>".
1961 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
1962 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
1964 (vrsqrted_f64): Likewise.
1965 (vrsqrte_f32): Likewise.
1966 (vrsqrte_f64): Likewise.
1967 (vrsqrteq_f32): Likewise.
1968 (vrsqrteq_f64): Likewise.
1970 2016-06-08 Jiong Wang <jiong.wang@arm.com>
1972 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
1976 * config/aarch64/aarch64-simd.md
1977 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
1978 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
1979 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
1981 (vcvt_n_f32_u32): Likewise.
1982 (vcvt_n_s32_f32): Likewise.
1983 (vcvt_n_u32_f32): Likewise.
1984 (vcvtq_n_f32_s32): Likewise.
1985 (vcvtq_n_f32_u32): Likewise.
1986 (vcvtq_n_f64_s64): Likewise.
1987 (vcvtq_n_f64_u64): Likewise.
1988 (vcvtq_n_s32_f32): Likewise.
1989 (vcvtq_n_s64_f64): Likewise.
1990 (vcvtq_n_u32_f32): Likewise.
1991 (vcvtq_n_u64_f64): Likewise.
1992 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
1993 (VSDQ_SDI): Likewise.
1994 (fcvt_target): Support V4DI, V4SI and V2SI.
1995 (FCVT_TARGET): Likewise.
1997 2016-06-08 Jiong Wang <jiong.wang@arm.com>
1999 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
2000 (TYPES_BINOP_SUS): Likewise.
2001 (aarch64_simd_builtin_data): Update include file name.
2002 (aarch64_builtins): Likewise.
2003 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
2004 for conversion between scalar float-point and fixed-point.
2008 * config/aarch64/aarch64.md
2009 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
2010 pattern for conversion between scalar float to fixed-pointer.
2011 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
2012 (UNSPEC_FCVTZS): New UNSPEC enumeration.
2013 (UNSPEC_FCVTZU): Likewise.
2014 (UNSPEC_SCVTF): Likewise.
2015 (UNSPEC_UCVTF): Likewise.
2016 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
2018 (vcvtd_n_f64_u64): Likewise.
2019 (vcvtd_n_s64_f64): Likewise.
2020 (vcvtd_n_u64_f64): Likewise.
2021 (vcvtd_n_f32_s32): Likewise.
2022 (vcvts_n_f32_u32): Likewise.
2023 (vcvtd_n_s32_f32): Likewise.
2024 (vcvts_n_u32_f32): Likewise.
2025 * config/aarch64/iterators.md (fcvt_target): Support integer to float
2027 (FCVT_TARGET): Likewise.
2028 (FCVT_FIXED2F): New iterator.
2029 (FCVT_F2FIXED): Likewise.
2030 (fcvt_fixed_insn): New define_int_attr.
2032 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
2034 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
2035 some statements was removed.
2037 2016-06-08 Alan Hayward <alan.hayward@arm.com>
2039 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
2040 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
2041 (vect_can_advance_ivs_p): likewise.
2042 (vect_update_ivs_after_vectorizer): likewise.
2043 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
2044 (vect_analyze_scalar_cycles_1): likewise.
2045 (vect_analyze_loop_operations): likewise.
2046 (report_vect_op): likewise.
2047 (vect_is_slp_reduction): likewise.
2048 (vect_is_simple_reduction): likewise.
2049 (get_initial_def_for_induction): likewise.
2050 (vect_transform_loop): likewise.
2051 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
2052 (vect_recog_sad_pattern): likewise.
2053 (vect_recog_widen_sum_pattern): likewise.
2054 (vect_recog_widening_pattern): likewise.
2055 (vect_recog_divmod_pattern): likewise.
2056 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
2057 (vect_analyze_slp_instance): likewise.
2058 (vect_transform_slp_perm_load): likewise.
2059 (vect_schedule_slp_instance): likewise.
2061 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
2063 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
2064 (return_prediction): PRED_CONST_RETURN predict return as not taken.
2065 * predict.def (PRED_CONTINUE): Change hitrate 50->67
2066 (PRED_LOOP_BRANCH): Document predictor as broken.
2067 (PRED_LOOP_EXIT): Change hitrate 91->92.
2068 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
2069 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
2070 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
2071 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
2072 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
2073 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
2074 (PRED_CALL): Chane hitrate 71->67.
2075 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
2076 (PRED_GOTO): Document as unused right now.
2077 (PRED_CONST_RETURN): Change hitrate 67->69
2078 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
2079 (PRED_NULL_RETURN): Change hitrate 91->90.
2080 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
2081 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
2082 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
2084 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
2086 * config/rs6000/altivec.h: Add __builtin_vec_mul.
2087 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
2088 special case Altivec builtin.
2089 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
2090 VSX_BUILTIN_VEC_MUL (replaced with special case code).
2091 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
2092 code for ALTIVEC_BUILTIN_VEC_MUL.
2093 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
2094 for __builtin_vec_mul.
2096 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
2098 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
2101 2016-06-07 David Malcolm <dmalcolm@redhat.com>
2103 * spellcheck.c (selftest::test_find_closest_string): New function.
2104 (spellcheck_c_tests): Call the above.
2106 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2108 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
2110 2016-06-07 Jakub Jelinek <jakub@redhat.com>
2112 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
2113 Yv=Yv,C alternatives.
2115 2016-06-07 Richard Biener <rguenther@suse.de>
2118 * common.opt (ffast-math): Make Optimization.
2120 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
2121 Prachi Godbole <prachi.godbole@imgtec.com>
2123 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
2124 `fabs' and `fneg' type attributes.
2125 (p5600_fpu_fabs): Add `fmove' to the comment.
2127 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
2129 * gimple.c: Include builtins.h
2130 (gimple_inexpensive_call_p): New function.
2131 * gimple.h (gimple_inexpensive_call_p): Declare.
2132 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
2133 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
2136 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
2138 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
2139 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
2140 warning_at_rich_loc, warning_n, pedwarn, permerror,
2141 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
2142 sorry, fatal_error, internal_error, internal_error_no_backtrace):
2145 2016-06-07 Richard Biener <rguenther@suse.de>
2147 PR tree-optimization/71428
2148 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
2149 BIT_FIELD_REF op vs. load.
2151 2016-06-07 Richard Biener <rguenther@suse.de>
2154 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
2157 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
2159 * config/pa/pa.md (call): Generate indirect long calls to non-local
2160 functions on TARGET_64BIT.
2161 (call_value): Likewise.
2163 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
2165 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
2166 pattern and subsequent splitters.
2167 (call_val_reg_64bit_post_reload): Likewise.
2169 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
2172 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
2173 propagate_op_to_single_use.
2175 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
2178 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
2180 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
2182 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
2183 (enum x86_dirflag_state): New enum.
2184 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
2185 (machine_function): Remove needs_cld.
2186 (ix86_current_function_needs_cld): Remove.
2187 * config/i386/i386.c (ix86_set_func_type): Set
2188 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
2189 (ix86_expand_prologue): Do not emit CLD here.
2190 (ix86_dirflag_mode_needed): New function.
2191 (ix86_dirflag_mode_entry): Ditto.
2192 (ix86_mode_needed): Handle X86_DIRFLAG entity.
2193 (ix86_mode_after): Ditto.
2194 (ix86_mode_entry): Ditto.
2195 (ix86_mode_exit): Ditto.
2196 (ix86_emit_mode_set): Ditto.
2197 * config/i386/i386.md (strmov_singleop): Set
2198 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
2199 Do not set ix86_current_function_needs_cld.
2201 (strset_singleop): Ditto.
2203 (cmpstrnqi_nz_1): Ditto.
2204 (cmpstrnqi_1): Ditto.
2205 (strlenqi_1): Ditto.
2207 2016-06-06 Jakub Jelinek <jakub@redhat.com>
2209 PR tree-optimization/71259
2210 * tree-vect-slp.c (vect_get_constant_vectors): For
2211 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
2212 one for constant op, and use COND_EXPR for non-constant.
2214 2016-06-06 David Malcolm <dmalcolm@redhat.com>
2216 * Makefile.in (OBJS): Add function-tests.o,
2217 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
2218 selftest-run-tests.o.
2219 (OBJS-libcommon): Add selftest.o.
2220 (OBJS-libcommon-target): Add selftest.o.
2221 (all.internal): Add "selftest".
2222 (all.cross): Likewise.
2223 (selftest): New phony target.
2224 (s-selftest): New target.
2225 (selftest-gdb): New phony target.
2226 (COLLECT2_OBJS): Add selftest.o.
2227 * bitmap.c: Include "selftest.h".
2228 (selftest::test_gc_alloc): New function.
2229 (selftest::test_set_range): New function.
2230 (selftest::test_clear_bit_in_middle): New function.
2231 (selftest::test_copying): New function.
2232 (selftest::test_bitmap_single_bit_set_p): New function.
2233 (selftest::bitmap_c_tests): New function.
2234 * common.opt (fself-test): New.
2235 * diagnostic-show-locus.c: Include "selftest.h".
2236 (make_range): New function.
2237 (test_range_contains_point_for_single_point): New function.
2238 (test_range_contains_point_for_single_line): New function.
2239 (test_range_contains_point_for_multiple_lines): New function.
2240 (assert_eq): New function.
2241 (test_get_line_width_without_trailing_whitespace): New function.
2242 (selftest::diagnostic_show_locus_c_tests): New function.
2243 * et-forest.c: Include "selftest.h".
2244 (selftest::test_single_node): New function.
2245 (selftest::test_simple_tree): New function.
2246 (selftest::test_disconnected_nodes): New function.
2247 (selftest::et_forest_c_tests): New function.
2248 * fold-const.c: Include "selftest.h".
2249 (selftest::assert_binop_folds_to_const): New function.
2250 (selftest::assert_binop_folds_to_nonlvalue): New function.
2251 (selftest::test_arithmetic_folding): New function.
2252 (selftest::fold_const_c_tests): New function.
2253 * function-tests.c: New file.
2254 * gimple.c: Include "selftest.h".
2255 Include "gimple-pretty-print.h".
2256 (selftest::verify_gimple_pp): New function.
2257 (selftest::test_assign_single): New function.
2258 (selftest::test_assign_binop): New function.
2259 (selftest::test_nop_stmt): New function.
2260 (selftest::test_return_stmt): New function.
2261 (selftest::test_return_without_value): New function.
2262 (selftest::gimple_c_tests): New function.
2263 * hash-map-tests.c: New file.
2264 * hash-set-tests.c: New file.
2265 * input.c: Include "selftest.h".
2266 (selftest::assert_loceq): New function.
2267 (selftest::test_accessing_ordinary_linemaps): New function.
2268 (selftest::test_unknown_location): New function.
2269 (selftest::test_builtins): New function.
2270 (selftest::test_reading_source_line): New function.
2271 (selftest::input_c_tests): New function.
2272 * rtl-tests.c: New file.
2273 * selftest-run-tests.c: New file.
2274 * selftest.c: New file.
2275 * selftest.h: New file.
2276 * spellcheck.c: Include "selftest.h".
2277 (selftest::levenshtein_distance_unit_test_oneway): New function,
2278 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
2279 (selftest::levenshtein_distance_unit_test): Likewise.
2280 (selftest::spellcheck_c_tests): Likewise.
2281 * toplev.c: Include selftest.h.
2282 (toplev::run_self_tests): New.
2283 (toplev::main): Handle -fself-test.
2284 * toplev.h (toplev::run_self_tests): New.
2285 * tree.c: Include "selftest.h".
2286 (selftest::test_integer_constants): New function.
2287 (selftest::test_identifiers): New function.
2288 (selftest::test_labels): New function.
2289 (selftest::tree_c_tests): New function.
2290 * tree-cfg.c: Include "selftest.h".
2291 (selftest::push_fndecl): New function.
2292 (selftest::test_linear_chain): New function.
2293 (selftest::test_diamond): New function.
2294 (selftest::test_fully_connected): New function.
2295 (selftest::tree_cfg_c_tests): New function.
2296 * vec.c: Include "selftest.h".
2297 (selftest::safe_push_range): New function.
2298 (selftest::test_quick_push): New function.
2299 (selftest::test_safe_push): New function.
2300 (selftest::test_truncate): New function.
2301 (selftest::test_safe_grow_cleared): New function.
2302 (selftest::test_pop): New function.
2303 (selftest::test_safe_insert): New function.
2304 (selftest::test_ordered_remove): New function.
2305 (selftest::test_unordered_remove): New function.
2306 (selftest::test_block_remove): New function.
2307 (selftest::reverse_cmp): New function.
2308 (selftest::test_qsort): New function.
2309 (selftest::vec_c_tests): New function.c.
2310 * wide-int.cc: Include selftest.h and wide-int-print.h.
2311 (selftest::from_int <wide_int>): New function.
2312 (selftest::from_int <offset_int>): New function.
2313 (selftest::from_int <widest_int>): New function.
2314 (selftest::assert_deceq): New function.
2315 (selftest::assert_hexeq): New function.
2316 (selftest::test_printing <VALUE_TYPE>): New function template.
2317 (selftest::test_ops <VALUE_TYPE>): New function template.
2318 (selftest::test_comparisons <VALUE_TYPE>): New function template.
2319 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
2321 (selftest::wide_int_cc_tests): New function.
2323 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2326 * ifcvt.c (noce_try_ifelse_collapse): New function.
2328 (noce_process_if_block): Call noce_try_ifelse_collapse.
2329 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
2330 (simplify_ternary_operation): Use the above to simplify
2331 conditional CLZ/CTZ expressions.
2333 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2336 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
2337 define_insn_and_split.
2339 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2342 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
2344 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
2347 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
2348 Implicitly clobber memory for basic asm with non-empty assembler
2349 string. Use targetm.md_asm_adjust also here.
2350 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
2351 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
2352 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
2353 non-empty assembler string.
2354 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
2355 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
2356 (decode_asm_operands): Handle basic asm in PARALLEL block.
2357 (extract_insn): Handle basic asm in PARALLEL block.
2358 * doc/extend.texi: Mention new behavior of basic asm.
2359 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
2360 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
2361 branch_needs_nop_p): Use asm_noperands.
2363 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
2365 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
2366 Include the M7 SPARC DFA scheduler.
2367 New attribute v3pipe.
2368 Annotate insns with v3pipe where appropriate.
2369 Define cpu_feature vis4.
2370 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
2371 Add (V8QI "8") to vbits.
2372 Add insns {add,sub}v8qi3
2373 Add insns ss{add,sub}v8qi3
2374 Add insns us{add,sub}{v8qi,v4hi}3
2375 Add insns {min,max}{v8qi,v4hi,v2si}3
2376 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
2377 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
2378 * config/sparc/niagara4.md: Add a comment explaining the
2379 discrepancy between the documented latenty numbers and the
2381 * config/sparc/niagara7.md: New file.
2382 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
2383 supports SPARC5 and VIS 4.0 instructions.
2384 * configure: Regenerate.
2385 * config.in: Likewise.
2386 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
2387 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
2388 TARGET_CPU_niagara7.
2389 (ASM_CPU64_DEFAULT_SPEC): Likewise.
2390 (CPP_CPU_SPEC): Handle niagara7.
2391 (ASM_CPU_SPEC): Likewise.
2392 * config/sparc/sparc-opts.h (processor_type): Add
2394 (mvis4): New option.
2395 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
2396 (AS_NIAGARA7_FLAG): Define.
2397 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
2398 (CPP_CPU64_DEFAULT_SPEC): Likewise.
2399 (CPP_CPU_SPEC): Handle niagara7.
2400 (ASM_CPU_SPEC): Likewise.
2401 * config/sparc/sparc.c (niagara7_costs): Define.
2402 (sparc_option_override): Handle niagara7 and adjust cache-related
2403 parameters with better values for niagara cpus. Also support VIS4.
2404 (sparc32_initialize_trampoline): Likewise.
2405 (sparc_use_sched_lookahead): Likewise.
2406 (sparc_issue_rate): Likewise.
2407 (sparc_register_move_cost): Likewise.
2408 (dump_target_flag_bits): Support VIS4.
2409 (sparc_vis_init_builtins): Likewise.
2410 (sparc_builtins): Likewise.
2411 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
2413 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
2415 * config/sparc/sparc.opt (sparc_processor_type): New value
2417 * config/sparc/visintrin.h (__attribute__): Prototypes for the
2419 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
2421 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
2424 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
2426 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
2428 2016-06-06 Richard Biener <rguenther@suse.de>
2430 PR tree-optimization/71398
2431 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
2434 2016-06-05 James Bowman <james.bowman@ftdichip.com>
2436 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
2437 ft32_expand_prolog, ft32_expand_epilogue):
2438 Handle pretend_args.
2439 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
2440 * config/ft32/ft32.md: Add pretend_returner.
2442 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
2445 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
2446 Copy op1 RTX to avoid invalid sharing.
2447 (ix86_expand_vector_move_misalign): Ditto.
2449 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
2451 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
2454 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
2456 * predict.c (predicted_by_loop_heuristics_p): New function.
2457 (predict_iv_comparison): Use it.
2458 (predict_loops): Walk from innermost loops; do not predict edges
2459 leaving multiple loops multiple times; implement
2460 PRED_LOOP_ITERATIONS_MAX heuristics.
2461 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
2463 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
2465 * cfg.c (check_bb_profile): Do not report mismatched profiles when
2466 only edges out of BB are EH edges.
2468 2016-06-04 Martin Sebor <msebor@redhat.com>
2469 Marcin Baczyński <marbacz@gmail.com>
2472 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
2473 a void expression in a void function.
2475 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
2477 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
2478 aux; dump reasons of decisions.
2479 (should_duplicate_loop_header_p): Likewise.
2480 (do_while_loop_p): Likewise.
2481 (ch_base::copy_headers): Dump asi num insns duplicated.
2483 2016-06-04 Jakub Jelinek <jakub@redhat.com>
2485 PR tree-optimization/71405
2486 * tree-ssa.c (execute_update_addresses_taken): For clobber with
2487 incompatible type, build a new clobber with the right type instead
2488 of building a VIEW_CONVERT_EXPR around it.
2490 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
2492 PR tree-optimization/52171
2493 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
2494 by_pieces_ninsns instead of move_by_pieces_ninsns.
2496 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
2498 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
2499 for reg+reg addressing mode.
2501 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2503 * rs6000-c.c (c/c-tree.h): Add #include.
2504 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
2505 in C++ when found in the base position of vec_ld or vec_st.
2507 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
2509 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
2510 use of profile unless profile status is PROFILE_READ.
2511 * profile.c (compute_branch_probabilities): Set profile status
2512 only after reporting predictor hitrates.
2514 2016-06-03 Joseph Myers <joseph@codesourcery.com>
2518 * common.opt (ffp-int-builtin-inexact): New option.
2519 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
2520 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
2521 (ceil@var{m}2): Document dependence on this option.
2522 * ipa-inline-transform.c (inline_call): Handle
2523 flag_fp_int_builtin_inexact.
2524 * ipa-inline.c (can_inline_edge_p): Likewise.
2525 * config/i386/i386.md (rintxf2): Do not test
2526 flag_unsafe_math_optimizations.
2527 (rint<mode>2_frndint): New define_insn.
2528 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
2529 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
2530 for 387 instead of extending and truncating.
2531 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
2532 !flag_trapping_math instead of flag_unsafe_math_optimizations.
2533 Change to frndint<mode>2_<rounding>.
2534 (frndintxf2_<rounding>_i387): Likewise. Change to
2535 frndint<mode>2_<rounding>_i387.
2536 (<rounding_insn>xf2): Likewise.
2537 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
2538 !flag_trapping_math instead of flag_unsafe_math_optimizations for
2539 x87. Test TARGET_ROUND || !flag_trapping_math ||
2540 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
2541 SSE. Use ROUND_NO_EXC in constant operand of
2542 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
2543 for 387 instead of extending and truncating.
2545 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
2546 Julia Koval <julia.koval@intel.com>
2558 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
2559 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
2560 all registers, except for function return registers if there are
2561 no caller-saved registers.
2562 (ix86_set_func_type): New function.
2563 (ix86_set_current_function): Call ix86_set_func_type to set
2564 no_caller_saved_registers and func_type. Call reinit_regs if
2565 caller-saved registers are changed. Don't allow MPX, SSE, MMX
2566 nor x87 instructions in interrupt handler nor function with
2567 no_caller_saved_registers attribute.
2568 (ix86_function_ok_for_sibcall): Return false if there are no
2569 caller-saved registers.
2570 (type_natural_mode): Don't warn ABI change for MMX in interrupt
2572 (ix86_function_arg_advance): Skip for callee in interrupt handler.
2573 (ix86_function_arg): Return special arguments in interrupt handler.
2574 (ix86_promote_function_mode): Promote pointer to word_mode only
2575 for normal functions.
2576 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
2578 (ix86_epilogue_uses): New function.
2579 (ix86_hard_regno_scratch_ok): Likewise.
2580 (ix86_save_reg): Preserve all registers in interrupt handler
2581 after reload. Preserve all registers, except for function return
2582 registers, if there are no caller-saved registers after reload.
2583 (find_drap_reg): Always use callee-saved register if there are
2584 no caller-saved registers.
2585 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
2586 for interrupt handler.
2587 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
2588 Emit cld instruction if stringops are used in interrupt handler
2589 or interrupt handler isn't a leaf function.
2590 (ix86_expand_epilogue): Generate interrupt return for interrupt
2591 handler and pop the 'ERROR_CODE' off the stack before interrupt
2592 return in exception handler.
2593 (ix86_expand_call): Disallow calling interrupt handler directly.
2594 If there are no caller-saved registers, mark all registers that
2595 are clobbered by the call which returns as clobbered.
2596 (ix86_handle_no_caller_saved_registers_attribute): New function.
2597 (ix86_handle_interrupt_attribute): Likewise.
2598 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
2600 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
2601 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
2602 accumulation in interrupt function if stack may be realigned to
2604 (EPILOGUE_USES): New.
2605 (function_type): New enum.
2606 (machine_function): Add func_type and no_caller_saved_registers.
2607 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
2608 (interrupt_return): New pattern.
2609 * doc/extend.texi: Document x86 interrupt and
2610 no_caller_saved_registers attributes.
2612 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
2614 PR tree-optimization/52171
2615 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
2616 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
2617 Look for constant strings. Move some code to emit_block_cmp_hints
2619 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
2620 * defaults.h (COMPARE_MAX_PIECES): New macro.
2621 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
2622 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
2623 (clear_by_pieces_1): Don't declare. Move definition before use.
2624 (can_do_by_pieces): New static function.
2625 (can_move_by_pieces): Use it. Return bool.
2626 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
2627 OP. All callers changed. Handle COMPARE_BY_PIECES.
2628 (class pieces_addr); New.
2629 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
2630 pieces_addr::adjust, pieces_addr::increment_address,
2631 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
2633 (class op_by_pieces_d): New.
2634 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
2636 (class move_by_pieces_d, class compare_by_pieces_d,
2637 class store_by_pieces_d): New subclasses of op_by_pieces_d.
2638 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
2639 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
2640 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
2641 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
2642 compare_by_pieces_d::finish_mode): New member functions.
2643 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
2645 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
2646 (emit_block_cmp_hints): New function.
2647 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
2648 use the newly defined classes.
2649 * expr.h (by_pieces_constfn): New typedef.
2650 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
2651 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
2652 (move_by_pieces_ninsns): Don't declare.
2653 (can_move_by_pieces): Change return value to bool.
2654 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
2655 (compare_by_pieces_branch_ratio): New hook.
2656 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
2657 (by_pieces_ninsns): Declare.
2658 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
2660 (default_compare_by_pieces_branch_ratio): New function.
2661 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
2662 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
2663 * doc/tm.texi: Regenerate.
2664 * tree-ssa-strlen.c: Include "builtins.h".
2665 (handle_builtin_memcmp): New static function.
2666 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
2667 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
2669 2016-06-03 Alan Hayward <alan.hayward@arm.com>
2671 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
2672 relevant stmts which are simple and invariant.
2673 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
2674 instead of simple and invariant
2676 2016-06-03 Alan Hayward <alan.hayward@arm.com>
2678 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
2679 (vectorizable_reduction): Check for new relevant state.
2680 (vectorizable_live_operation): vectorize live stmts using
2681 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
2682 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
2683 (vect_stmt_relevant_p): Check for stmts which are only used live.
2684 (process_use): Use of a stmt does not inherit it's live value.
2685 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
2686 (vect_analyze_stmt): Check for new relevant state.
2687 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
2688 outside the loop, but not inside it.
2690 2016-06-03 Alan Hayward <alan.hayward@arm.com>
2692 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
2693 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
2694 (vect_get_vec_def_for_operand): Split out code.
2696 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
2698 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
2700 2016-06-03 Alan Hayward <alan.hayward@arm.com>
2702 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
2704 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2706 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
2708 2016-06-03 Jakub Jelinek <jakub@redhat.com>
2711 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
2712 to noreturn e->callee->decl that has void return type and void
2713 arguments, adjust gimple_call_fntype and remove lhs even if it had
2714 previously addressable type.
2716 2016-06-02 Jeff Law <law@redhat.com>
2718 PR tree-optimization/71328
2719 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
2720 error when checking for a jump back onto the copied path.
2722 2016-06-02 David Malcolm <dmalcolm@redhat.com>
2724 * config/microblaze/microblaze.c (get_branch_target): Add return
2725 NULL_RTX for the non-CALL_P case.
2726 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
2727 (insert_wic): Remove unused local "j".
2729 2016-06-02 Martin Liska <mliska@suse.cz>
2731 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
2733 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
2734 Julia Koval <julia.koval@intel.com>
2736 * function.c (assign_parm_setup_stack): Force source into a
2738 * target.def (function_incoming_arg): Update documentation to
2739 allow arbitrary address computation based on hard register.
2740 * doc/tm.texi: Regenerated.
2742 2016-06-02 Martin Liska <mliska@suse.cz>
2744 * predict.c (combine_predictions_for_bb): Fix first match in
2745 cases where a first predictor contains more than one occurence
2746 in list of predictors. Take the best value in such case.
2748 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2750 PR rtl-optimization/71295
2751 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
2752 offset would go over the size of the inner mode reject it.
2754 2016-06-02 Jakub Jelinek <jakub@redhat.com>
2756 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
2757 x=x,x and v=v,m instead of x=x,m.
2759 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
2760 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
2761 alternative to v=rm,C.
2763 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
2764 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
2765 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
2766 instead of vex for the last two above mentioned alternatives.
2768 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2771 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
2773 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
2775 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
2777 2016-06-01 David Malcolm <dmalcolm@redhat.com>
2779 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
2780 from int to unsigned.
2782 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
2784 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
2785 alternatives, eliminating preferred register class. Add support
2786 for the MTVSRDD instruction in ISA 3.0.
2787 (vsx_splat_v4si_internal): Use splat_input_operand instead of
2788 reg_or_indexed_operand.
2789 (vsx_splat_v4sf_internal): Likewise.
2791 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
2794 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
2795 for loading up all 0's or all 1's.
2797 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
2799 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
2801 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
2803 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
2805 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
2806 * gcc.c (set_source_date_epoch_envvar): New function, sets
2807 the SOURCE_DATE_EPOCH environment variable to the current time.
2809 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
2811 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
2812 the factor for live Phi nodes.
2814 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
2816 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
2817 * tree-parloops.c (parallelize_loops): likewise.
2818 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
2819 tree_unswitch_outer_loop): likewise.
2821 2016-06-01 Jakub Jelinek <jakub@redhat.com>
2824 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
2825 around creation of the temporary.
2827 2016-06-01 Richard Biener <rguenther@suse.de>
2829 PR tree-optimization/71366
2830 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
2831 (unloop_loops): Move removing edges here ...
2832 (try_unroll_loop_completely): ... from here.
2833 (try_peel_loop): ... and here.
2834 (tree_unroll_loops_completely_1): Track parent loops via
2835 bitmap of header BBs.
2836 (tree_unroll_loops_completely): Adjust for that.
2838 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
2840 * config/rs6000/altivec.h (vec_slv): New macro.
2841 (vec_srv): New macro.
2842 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
2843 (UNSPEC_VSRV): New value.
2846 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
2847 (vsrv): New builtin definition.
2848 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
2849 define argument types for new builtin.
2850 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
2852 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
2855 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
2856 Jocelyn Mayer <l_indien@magic.fr>
2859 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
2860 detect processor family for signature_CENTAUR_ebx.
2861 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
2862 signature_CENTAUR_ebx.
2863 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
2864 <default>: Pass x86-64 for has_longmode.
2866 2016-06-01 Nathan Sidwell <nathan@acm.org>
2868 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
2871 2016-06-01 Richard Biener <rguenther@suse.de>
2873 PR tree-optimization/71261
2874 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
2875 of stmts successfully put in the bool pattern. Remove
2876 single-use restriction.
2877 (adjust_bool_pattern_cast): Add cast at the use site via the
2878 pattern def sequence.
2879 (adjust_bool_pattern): Remove recursion, maintain a hash-map
2880 of patterned defs. Use the pattern def seqence instead of
2881 multiple independent patterns.
2882 (sort_after_uid): New qsort compare function.
2883 (adjust_bool_stmts): New function to process stmts in the bool
2884 pattern in IL order.
2885 (vect_recog_bool_pattern): Adjust.
2886 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
2887 (ifcvt_walk_pattern_tree): Likewise.
2888 (stmt_is_root_of_bool_pattern): Likewise.
2889 (ifcvt_repair_bool_pattern): Likewise.
2890 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
2892 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
2894 * loop-unroll.c (decide_unroll_constant_iterations,
2895 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
2896 likely upper bounds.
2897 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
2899 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
2901 * tree-core.h (enum omp_clause_code): Remove
2902 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
2904 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2906 * config/arm/sync.md (arm_store_exclusive<mode>):
2907 Use 'H' output modifier on operands[2] rather than creating a new
2908 entry in out-of-bounds memory of the operands array.
2909 (arm_store_release_exclusivedi): Likewise.
2911 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2913 * config/arm/arm.c (arm_fusion_enabled_p): New function.
2914 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
2915 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
2916 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
2918 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
2920 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
2921 into account live statements for mask producers.
2923 2016-06-01 Richard Biener <rguenther@suse.de>
2925 PR tree-optimization/71311
2926 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
2927 restrict to non-INTEGER_CST @0.
2929 2016-06-01 Richard Biener <rguenther@suse.de>
2931 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
2932 (relational patterns): Use :c to avoid pattern duplications.
2934 2016-06-01 Richard Biener <rguenther@suse.de>
2936 * genmatch.c (comparison_code_p): New predicate.
2937 (swap_tree_comparison): New function.
2938 (commutate): Add for_vec parameter to append new for entries.
2939 Support commutating relational operators by swapping it alongside
2941 (lower_commutative): Adjust.
2942 (dt_simplify::gen): Do not pass artificial operators to gen
2944 (decision_tree::gen): Do not add artificial operators as parameters.
2945 (parser::parse_expr): Verify operator commutativity when :c is
2946 applied. Allow :C to override this.
2947 * match.pd: Adjust patterns to use :C instead of :c where required.
2949 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
2951 PR tree-optimization/71077
2952 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
2953 the combining step, use boolean_false_node and boolean_true_node
2954 as the designated false/true return values.
2956 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
2958 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
2959 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
2960 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
2963 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
2965 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
2966 of flags impliying the register renaming.
2967 * toplev.c (process_options): Do not imply flag_rename_registers with
2970 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
2972 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
2973 default implementation.
2975 2016-05-31 Nathan Sidwell <nathan@acm.org>
2977 * dwarf2out.c (cur_line_info_table): Add GTY marker.
2979 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
2981 * config/sh/constraints.md (b): Remove constraint.
2982 * config/sh/predicates.md (arith_reg_operand): Remove
2984 * config/sh/sh-modes.def (PDI): Remove.
2985 * config/sh/sh.c (sh_target_reg_class,
2986 sh_optimize_target_register_callee_saved): Remove functions.
2987 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
2988 (sh_expand_epilogue): Update comment.
2989 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
2990 sh_secondary_reload): Remove TARGET_REGS related code.
2991 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
2992 TARGET_REGISTER_P): Remove macros.
2993 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
2994 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
2995 TR1_REG, TR2_REG): Remove constants.
2996 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
2998 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
3000 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
3001 define_expand patterns.
3002 (adddi3_compact): Rename to adddi3.
3003 (subdi3_compact): Rename to subdi3.
3004 (*negdi2): Rename to negdi2.
3005 (*abs<mode>2): Rename to abs<mode>2.
3007 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
3009 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
3010 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
3011 (atomic_sub_fetchsi): ... this new pattern.
3012 (mvtc): Add CC_REG clobber.
3014 2016-05-31 Marek Polacek <polacek@redhat.com>
3016 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
3018 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3020 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
3021 aarch64_fusion_enabled_p to check for fusion capabilities.
3023 2016-05-31 Richard Biener <rguenther@suse.de>
3025 PR tree-optimization/71352
3026 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
3027 minus one and a negate.
3029 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3031 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
3032 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
3034 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
3035 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
3036 Remove use of aarch64_simd_attr_length_move, set length attribute
3038 (*aarch64_be_movoi): Likewise.
3039 (*aarch64_be_movci): Likewise.
3040 (*aarch64_be_movxi): Likewise.
3042 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
3044 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
3045 It no longer does that.
3046 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
3048 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
3050 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
3051 attribute __unused__.
3053 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
3055 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
3056 * config/arm/arm.c (arm_arch_thumb1): Define.
3057 (arm_option_override): Initialize arm_arch_thumb1.
3058 * config/arm/arm.h (arm_arch_thumb1): Declare.
3059 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
3060 support Thumb-1 ISA.
3062 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
3065 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
3066 `Yv' for scalar operand.
3068 2016-05-31 Tom de Vries <tom@codesourcery.com>
3070 PR tree-optimization/69068
3071 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
3072 phis with more than two args.
3074 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
3076 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
3077 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
3080 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
3082 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
3084 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
3086 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
3087 cpu_32, cpu_64, tune_32 and tune_64.
3088 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
3090 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
3092 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
3094 2016-05-30 Andi Kleen <ak@linux.intel.com>
3096 * auto-profile.c (read_profile): Replace asserts with errors
3097 when file does not exist.
3098 * gcov-io.c (gcov_read_words): Dito.
3100 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
3102 * tree-cfg.c (print_loop): Print likely upper bounds.
3104 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
3106 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
3107 * opts.c (default_options): Enable peel loops at -O3.
3108 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
3109 (try_peel_loop): Do not re-peel already peeled loops;
3110 use likely upper bounds; fix profile updating.
3111 (pass_complete_unroll::execute): Initialize peeled_loops.
3113 2016-05-30 Martin Liska <mliska@suse.cz>
3115 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
3116 computed costs by frequency of BB they belong to.
3117 (get_scaled_computation_cost_at): New function.
3119 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
3120 Marc Glisse <marc.glisse@inria.fr>
3122 PR tree-optimization/71289
3123 * match.pd (-1 / B < A, A > -1 / B): New transformations.
3125 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
3127 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
3129 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
3131 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
3132 for peeled copies; avoid underflow when updating estimates; correctly
3135 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
3137 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
3138 r236875. Corrected oe3 to oe2 as obvious.
3140 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
3144 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
3145 that inserted stmt will not dominate stmts that defines its operand.
3146 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
3147 (rewrite_expr_tree_parallel): Likewise.
3149 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
3152 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
3153 all fields including stmt_to_insert are swapped.
3155 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
3157 * predict.h (force_edge_cold): Declare.
3158 * predict.c (force_edge_cold): New function.
3159 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
3161 (canonicalize_loop_induction_variables): Fix formating.
3163 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
3165 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
3166 (visium_expand_copysign): Use gen_int_mode directly.
3167 (visium_compute_frame_size): Minor tweaks.
3169 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
3171 * tree-vect-loop.c (vect_analyze_loop_2): Use
3172 likely_max_stmt_executions_int.
3174 2016-05-30 Tom de Vries <tom@codesourcery.com>
3176 PR tree-optimization/69067
3177 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
3179 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
3182 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
3183 New peepholes to remove unneeded fild/fistp pairs.
3184 (define_peephole2 atomic_loaddi_fpu): Ditto.
3186 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
3188 * predict.c (maybe_hot_frequency_p): Avoid division.
3190 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
3192 * doc/install.texi: Use https for shop.fsf.org.
3194 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
3196 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
3197 likely_max_stmt_executions_int.
3199 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
3201 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
3202 likely_max_stmt_executions_int.
3204 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
3206 * profile.c (compute_branch_probabilities): Do not report hitrates
3208 (branch_prob): Report hitrates here.
3209 * predict.c (gimple_predict_edge): Do not assert profile status;
3210 fix formatting issues.
3212 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
3214 * predict.c (edge_predicted_by_p): New function.
3215 (predict_paths_for_bb): Do not put multiple predictions of the same type
3218 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
3220 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
3223 2016-05-28 Alan Modra <amodra@gmail.com>
3225 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
3227 2016-05-28 Alan Modra <amodra@gmail.com>
3229 PR rtl-optimization/71275
3230 * ira.c (ira): Free dominance info.
3232 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
3234 * doc/sourcebuild.texi: New address for upstream Go repository.
3236 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
3238 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
3239 (TARGET_ARM_V7M): Likewise.
3241 2016-05-26 Jeff Law <law@redhat.com>
3243 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
3244 (thread_across_edge): Remove calls to find_jump_threads_backwards.
3245 * passes.def: Add jump threading passes before DOM/VRP.
3246 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
3247 argument to a basic block from an edge. Remove tests which are
3249 (pass_data_thread_jumps, class pass_thread_jumps): New.
3250 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
3251 (make_pass_thread_jumps): Likewise.
3252 * tree-pass.h (make_pass_thread_jumps): Declare.
3254 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
3256 * config/visium/visium-protos.h (split_double_move): Rename into...
3257 (visium_split_double_move): ...this.
3258 (visium_split_double_add): Declare.
3259 * config/visium/visium.c (split_double_move): Rename into...
3260 (visium_split_double_move): ...this.
3261 (visium_split_double_add): New function.
3262 (visium_expand_copysign): Renumber operands for consistency.
3263 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
3264 (DFmode move splitter): Likewise.
3265 (*addi3_insn): Split by means of visium_split_double_add.
3266 (*adddi3_insn_flags): Delete.
3267 (*plus_plus_sltu<subst_arith>): New insn.
3268 (*subdi3_insn): Split by means of visium_split_double_add.
3269 (subdi3_insn_flags): Delete.
3270 (*minus_minus_sltu<subst_arith>): New insn.
3271 (*negdi2_insn): Split by means of visium_split_double_add.
3272 (*negdi2_insn_flags): Delete.
3274 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
3276 * configure.ac: Treat a --with-headers option without argument
3277 the same as the default (i.e. consult sys-include directory).
3278 * configure: Regenerate.
3280 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3282 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
3283 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
3285 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
3286 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
3288 2016-05-27 Jiong Wang <jiong.wang@arm.com>
3291 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
3292 tree-stdarg analysis results.
3293 (aarch64_setup_incoming_varargs): Likewise.
3295 2016-05-27 Jiong Wang <jiong.wang@arm.com>
3297 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
3298 va_list_gpr_counter_field and va_list_fpr_counter_field.
3300 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
3303 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
3304 * config/aarch64/aarch64.c
3305 (aarch64_cannot_change_mode_class): Remove function.
3306 * config/aarch64/aarch64-protos.h
3307 (aarch64_cannot_change_mode_class): Remove.
3309 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
3311 * cfgloop.c (record_niter_bound): Record likely upper bounds.
3312 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
3313 get_likely_max_loop_iterations_int): New.
3314 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
3315 any_likely_upper_bound.
3316 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
3318 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
3319 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
3321 (unroll_loop_constant_iterations): Likewise.
3322 (unroll_loop_runtime_iterations): Likewise.
3323 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
3324 * lto-streamer-out.c (output_cfg): Likewise.
3325 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
3327 (canonicalize_loop_induction_variables): Dump likely upper bounds.
3328 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
3329 (likely_max_loop_iterations): New.
3330 (likely_max_loop_iterations_int): New.
3331 (likely_max_stmt_executions): New.
3332 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
3333 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
3334 likely_max_stmt_executions): Declare.
3336 2016-05-27 Marek Polacek <polacek@redhat.com>
3339 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
3341 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3343 * config/s390/s390.md (2x risbg splitters): Use
3344 reg_overlap_mentioned_p instead of rtx_equal_p.
3346 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
3348 * combine.c (make_compound_operation): Take known zero bits into
3349 account when checking for possible zero_extend.
3351 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3353 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
3354 Use const_int_operand for operand 2 predicate. Simplify expand code
3357 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
3360 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
3363 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3365 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
3366 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
3367 that returns CC_SESWPmode and CC_ZESWPmode.
3368 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
3370 (aarch64_rtx_costs): Likewise.
3372 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3374 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
3375 for ISA 3.0 min/max support.
3376 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
3377 conditional move support.
3378 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
3379 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
3381 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
3382 conditional moves where the comparison type is different from move
3384 (fp_minmax): New code iterator for smin/smax.
3385 (minmax): New code attributes for min/max.
3386 (SMINMAX): Likewise.
3387 (smax<mode>3): Combine min, max insns into one insn using the
3388 fp_minmax code iterator. Add support for ISA 3.0 min/max
3389 instructions that don't need -ffast-math.
3390 (s<minmax><mode>3): Likewise.
3391 (smax<mode>3_vsx): Likewise.
3392 (smin<mode>3): Likewise.
3393 (s<minmax><mode>3_vsx): Likewise.
3394 (smin<mode>3_vsx): Likewise.
3395 (pre-VSX min/max splitters): Likewise.
3396 (s<minmax><mode>3_fpr): Likewise.
3397 (movsfcc): Rewrite floating point conditional moves to combine
3398 SFmode/DFmode into a single insn.
3399 (mov<mode>cc): Likewise.
3400 (movdfcc): Likewise.
3401 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
3402 SFDF2 iterators to handle all combinations.
3403 (fseldfsf4): Likewise.
3404 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
3405 (fseldfdf4): Likewise.
3406 (fselsfdf4): Likewise.
3407 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
3408 comparison instructions that set a 0/-1 mask, and use it for
3409 floating point conditional move via XXSEL.
3410 (fpmask<mode>): Likewise.
3411 (xxsel<mode>): Likewise.
3412 * config/rs6000/predicates.md (min_max_operator): Delete, no
3414 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
3415 instructions that generate a 0/-1 mask for use with XXSEL.
3416 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
3417 say whether floating point min/max is available, either through
3418 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
3419 (TARGET_MINMAX_DF): Likewise.
3421 2016-05-27 Alan Modra <amodra@gmail.com>
3423 PR rtl-optimization/71275
3424 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
3425 for update_equiv_regs and combine_and_move_insns.
3427 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
3429 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
3430 if_then_else or cond RTXes to calculate attribute value.
3431 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
3432 <attr "length_immediate>: Ditto.
3433 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
3434 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
3435 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
3436 <attr "type">: Ditto.
3437 <attr "prefix_data16">: Ditto.
3438 <attr "prefix_extra">: Ditto.
3439 <attr "length_immediate">: Ditto.
3440 <attr "prefix">: Ditto.
3441 (vec_set<mode>_0) <attr "isa">: Ditto.
3442 <attr "prefix_extra">: Ditto.
3443 <attr "length_immediate">: Ditto.
3444 <attr "prefix">: Ditto.
3445 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
3446 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
3447 (sse2_storelpd) <attr "prefix_data16">: Ditto.
3448 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
3449 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
3450 <attr "length_immediate">: Ditto.
3451 <attr "prefix">: Ditto.
3452 (sse2_movsd) <attr "length_immediate">: Ditto.
3453 <attr "prefix">: Ditto.
3454 (vec_concatv2df) <attr "isa">: Ditto.
3455 <attr "prefix">: Ditto.
3456 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
3457 (*vec_extractv2di_1) <attr "isa">: Ditto.
3458 <attr "type">: Ditto.
3459 <attr "length_immediate">: Ditto.
3460 <attr "prefix_rex">: Ditto.
3461 <attr "prefix_extra">: Ditto.
3462 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
3463 <attr "prefix_extra">: Ditto.
3464 <attr "length_immediate">: Ditto.
3465 (vec_concatv2di) <attr "isa">: Ditto.
3466 <attr "prefix_extra">: Ditto.
3467 <attr "length_immediate">: Ditto.
3468 <attr "prefix">: Ditto.
3470 2016-05-26 Martin Liska <mliska@suse.cz>
3472 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
3474 (operator+): Likewise.
3475 (operator-): Likewise.
3476 (comp_cost::operator+=): Likewise.
3477 (comp_cost::operator-=): Likewise.
3478 (comp_cost::operator/=): Likewise.
3479 (comp_cost::operator*=): Likewise.
3480 (operator<): Likewise.
3481 (operator==): Likewise.
3482 (operator<=): Likewise.
3484 (infinite_cost_p): Likewise.
3485 (add_costs): Likewise.
3486 (sub_costs): Likewise.
3487 (compare_costs): Likewise.
3488 (set_group_iv_cost): Use the newly introduced functions.
3489 (get_address_cost): Likewise.
3490 (get_shiftadd_cost): Likewise.
3491 (force_expr_to_var_cost): Likewise.
3492 (split_address_cost): Likewise.
3493 (ptr_difference_cost): Likewise.
3494 (difference_cost): Likewise.
3495 (get_computation_cost_at): Likewise.
3496 (determine_group_iv_cost_generic): Likewise.
3497 (determine_group_iv_cost_address): Likewise.
3498 (determine_group_iv_cost_cond): Likewise.
3499 (autoinc_possible_for_pair): Likewise.
3500 (determine_group_iv_costs): Likewise.
3501 (cheaper_cost_pair): Likewise.
3502 (iv_ca_recount_cost): Likewise.
3503 (iv_ca_set_no_cp): Likewise.
3504 (iv_ca_set_cp): Likewise.
3505 (iv_ca_cost): Likewise.
3506 (iv_ca_new): Likewise.
3507 (iv_ca_dump): Likewise.
3508 (iv_ca_narrow): Likewise.
3509 (iv_ca_prune): Likewise.
3510 (iv_ca_replace): Likewise.
3511 (try_add_cand_for): Likewise.
3512 (try_improve_iv_set): Likewise.
3513 (find_optimal_iv_set): Likewise.
3515 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
3517 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
3518 that internal functions will clobber all caller-saved registers.
3520 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
3522 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
3523 Return a better case_values_threshold when optimizing.
3525 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
3527 * config/aarch64/aarch64-simd.md (aarch64_combinez):
3528 Add ? to integer variant.
3529 (aarch64_combinez_be): Likewise.
3531 2016-05-26 Jakub Jelinek <jakub@redhat.com>
3533 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
3534 instead of x constraint.
3535 (vcvtps2ph256<mask_name>): Likewise.
3537 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
3538 alternative. Formatting fix.
3540 * config/i386/sse.md
3541 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
3543 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
3544 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
3545 maybe_evex prefix instead of vex.
3546 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
3547 EXT_REX_SSE_REG_P (op0) case in the splitter.
3549 2016-05-25 Jeff Law <law@redhat.com>
3551 PR tree-optimization/71272
3552 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
3553 Update comments. Add test for empty path.
3555 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
3557 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
3558 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
3559 special case builtin.
3560 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3561 code for ALTIVEC_BUILTIN_VEC_CMPNE.
3562 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3563 for __builtin_vec_cmpne.
3565 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
3567 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
3568 redundant test and bail out if the type of the new operand is not
3569 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
3571 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
3573 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
3574 (x_ix86_target_flags_explicit): Remove.
3575 * config/i386/i386.c (ix86_function_specific_save): Do not copy
3576 x_ix86_target_flags_explicit.
3577 (ix86_function_specific_restore): Ditto.
3579 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
3580 H.J. Lu <hongjiu.lu@intel.com>
3583 * common/config/i386/i386-common.c
3584 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
3585 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
3586 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
3587 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
3588 (-mgeneral-regs-only): Add new option.
3589 * config/i386/i386.c (ix86_option_override_internal): Don't enable
3590 x87 instructions if only general registers are allowed.
3591 (ix86_target_string): Add ix86_flags argument. Handle additional
3592 flags options through ix86_flags argument. Update all callers.
3593 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
3595 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3597 PR rtl-optimization/66940
3598 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
3599 decrementing desired_val will not overflow before performing these
3602 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
3604 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
3605 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
3606 * config/i386/i386.c (enum ix86_builtins): Add
3607 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
3608 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
3609 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
3610 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
3611 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
3612 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
3613 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
3614 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
3615 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
3616 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
3617 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
3618 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
3619 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
3620 __builtin_ia32_cvtps2dq512_mask.
3621 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
3622 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
3623 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
3624 * config/i386/sse.md
3625 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
3627 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
3628 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
3630 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
3631 (avx512f_vec_pack_sfix_v8df): New define_expand.
3632 (avx512f_roundpd512): Rename to ...
3633 (avx512f_round<castmode>512): ... this. Change iterator.
3634 (avx512f_roundps512_sfix): New define_expand.
3635 (round<mode>2_sfix): Change iterator.
3637 2016-05-25 Nick Clifton <nickc@redhat.com>
3639 * config/msp430/msp430.c (msp430_attr): Produce an error if a
3640 static interrupt handler is detected.
3641 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
3642 default linker script.
3643 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
3644 the low part of a symbolic pointer.
3646 2016-05-25 Richard Biener <rguenther@suse.de>
3648 PR tree-optimization/71261
3649 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
3650 interesting stmt instead of immediate uses when looking
3651 for the use operand to replace.
3653 2016-05-25 Martin Liska <mliska@suse.cz>
3655 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
3657 2016-05-25 Richard Biener <rguenther@suse.de>
3659 PR tree-optimization/71264
3660 * tree-vect-stmts.c (vect_init_vector): Properly deal with
3663 2016-05-25 Martin Liska <mliska@suse.cz>
3665 PR tree-optimization/71239
3666 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
3667 if DECL_SIZE is NULL.
3669 2016-05-25 Richard Biener <rguenther@suse.de>
3671 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
3672 * tree-if-conv.c (pass_data_if_conversion): Use it.
3674 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
3676 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
3677 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
3678 * varpool.c (varpool_node::get_availability): Likewise.
3680 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
3682 * config/rs6000/altivec.md (VNEG iterator): New iterator for
3683 VNEGW/VNEGD instructions.
3684 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
3685 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
3686 support for ISA 3.0 VNEGW/VNEGD instructions.
3688 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
3690 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
3691 pointers inside OACC_DATA regions.
3692 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
3693 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
3694 (gimplify_adjust_omp_clauses): Fix typo in comment.
3696 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
3698 * config/rs6000/altivec.md (VParity): New mode iterator for vector
3699 parity built-in functions.
3700 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
3702 (p9v_parity<mode>2): Likewise.
3703 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
3705 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
3706 (parity<mode>2): ISA 3.0 expander for vector parity.
3707 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
3709 (BU_P9_64BIT_MISC_0): Likewise.
3710 (BU_P9_MISC_0): Likewise.
3711 (BU_P9V_AV_1): Likewise.
3712 (BU_P9V_AV_2): Likewise.
3713 (BU_P9V_AV_3): Likewise.
3714 (BU_P9V_AV_P): Likewise.
3715 (BU_P9V_VSX_1): Likewise.
3716 (BU_P9V_OVERLOAD_1): Likewise.
3717 (BU_P9V_OVERLOAD_2): Likewise.
3718 (BU_P9V_OVERLOAD_3): Likewise.
3719 (VCTZB): Add vector count trailing zeros support.
3723 (VPRTYBD): Add vector parity support.
3724 (VPRTYBQ): Likewise.
3725 (VPRTYBW): Likewise.
3726 (VCTZ): Add overloaded vector count trailing zeros support.
3727 (VPRTYB): Add overloaded vector parity support.
3728 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3729 overloaded vector count trailing zeros and parity instructions.
3730 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
3731 vector parity support.
3732 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
3733 trailing zeros support.
3734 (vec_cntlz): Likewise.
3735 (vec_vctzb): Likewise.
3736 (vec_vctzd): Likewise.
3737 (vec_vctzh): Likewise.
3738 (vec_vctzw): Likewise.
3739 (vec_vprtyb): Add ISA 3.0 vector parity support.
3740 (vec_vprtybd): Likewise.
3741 (vec_vprtybw): Likewise.
3742 (vec_vprtybq): Likewise.
3743 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3744 the ISA 3.0 vector count trailing zeros and vector parity built-in
3747 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
3749 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
3750 when there is stmt_to_insert.
3752 2016-05-24 Martin Sebor <msebor@redhat.com>
3755 * tree.h (complete_or_array_type_p): New inline function.
3757 2016-05-24 Jakub Jelinek <jakub@redhat.com>
3759 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
3760 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
3761 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
3763 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
3764 Limit 1st alternative to noavx isa, split 2nd alternative into one
3765 noavx and one avx alternative, use *x and Bm in the former and
3766 x and m in the latter.
3768 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
3769 of sse4 for the first alternative, drop %v from the template
3770 and d operand modifier. Split second alternative into one sse4_noavx
3771 and one avx alternative, use *x instead of *v in the former and v
3772 instead of *v in the latter.
3773 (*sse4_1_extractps): Use noavx isa instead of * for the first
3774 alternative, drop %v from the template. Split second alternative into
3775 one noavx and one avx alternative, use *x instead of *v in the
3776 former and v instead of *v in the latter.
3777 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
3778 with noavx and the last one with avx.
3779 (sse4_1_phminposuw): Guard first alternative with noavx isa,
3780 split the second one into one noavx and one avx alternative,
3781 use *x and Bm in the former and x and m in the latter one.
3782 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
3785 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
3786 first two alternatives to noavx, use *x instead of *v in the second
3787 one, add avx alternative without *.
3788 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
3789 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
3790 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
3792 2016-05-24 Jeff Law <law@redhat.com>
3794 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
3795 New function, extracted from...
3796 (fsm_find_control_statement_thread_paths): Here. Use the new function.
3797 Allow simple copies and constant initializations in the SSA chain.
3799 2016-05-24 Marek Polacek <polacek@redhat.com>
3802 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
3805 2016-05-24 Jakub Jelinek <jakub@redhat.com>
3808 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
3809 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
3810 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
3811 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
3812 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
3814 2016-05-24 Richard Biener <rguenther@suse.de>
3816 PR tree-optimization/71240
3817 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
3820 2016-05-24 Richard Biener <rguenther@suse.de>
3822 PR tree-optimization/71230
3823 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
3825 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
3827 * tree-vectorizer.h (vectorizable_comparison): Delete.
3828 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
3829 PURE_SLP_STMT check.
3830 * tree-vect-stmts.c (vectorizable_call): Likewise.
3831 (vectorizable_simd_clone_call): Likewise.
3832 (vectorizable_conversion): Likewise.
3833 (vectorizable_assignment): Likewise.
3834 (vectorizable_shift): Likewise.
3835 (vectorizable_operation): Likewise.
3836 (vectorizable_load): Likewise.
3837 (vectorizable_condition): Likewise.
3838 (vectorizable_store): Likewise. Assert that we don't have
3840 (vectorizable_comparison): Make static. Remove redundant
3841 PURE_SLP_STMT check.
3842 (vect_transform_stmt): Assert that we always have an slp_node
3845 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3847 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
3848 operands[2] against 1 with comparison against CONST1_RTX.
3849 (<shift>di3_neon): Likewise.
3850 * config/arm/predicates.md (const0_operand): Replace with comparison
3853 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3855 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
3856 operands[2] against 1 with comparison against CONST1_RTX.
3857 (ashrdi3): Likewise.
3858 (lshrdi3): Likewise.
3859 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
3861 (ashrsi3): Likewise.
3862 (lshrsi3): Likewise.
3863 (rotrsi3): Likewise.
3864 (define_split above *compareqi_eq0): Likewise.
3865 (define_split above "prologue"): Likewise.
3866 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
3867 * config/arm/predicates.md (shift_operator): Likewise.
3868 (shift_nomul_operator): Likewise.
3869 (sat_shift_operator): Likewise.
3870 (thumb1_cmp_operand): Likewise.
3871 (const_neon_scalar_shift_amount_operand): Replace manual range
3872 check with IN_RANGE.
3873 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
3874 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
3876 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3878 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
3879 with HOST_WIDE_INT_1.
3881 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
3882 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
3883 (arm_canonicalize_comparison): Likewise.
3884 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
3886 (thumb1_size_rtx_costs): Likewise.
3887 (vfp_const_double_index): Replace cast of 1 to unsigned
3888 HOST_WIDE_INT with HOST_WIDE_INT_1U.
3889 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
3891 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
3892 HOST_WIDE_INT with HOST_WIDE_INT_1U.
3893 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
3894 HOST_WIDE_INT with HOST_WIDE_INT_1.
3896 2016-05-24 Marek Polacek <polacek@redhat.com>
3898 * tree-cfg.h (should_remove_lhs_p): New predicate.
3899 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
3900 * gimplify.c (gimplify_modify_expr): Likewise.
3901 * tree-cfg.c (verify_gimple_call): Likewise.
3902 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
3903 * gimple-fold.c: Include "tree-cfg.h".
3904 (gimple_fold_call): Use should_remove_lhs_p.
3906 2016-05-24 Richard Biener <rguenther@suse.de>
3908 PR tree-optimization/71253
3909 * cfganal.h (control_dependences): Make robust against edge
3911 (control_dependences::control_dependences): Remove edge_list argument.
3912 (control_dependences::get_edge): Remove.
3913 (control_dependences::get_edge_src): Add.
3914 (control_dependences::get_edge_dest): Likewise.
3915 (control_dependences::m_el): Make a vector of edge src/dest index.
3916 * cfganal.c (control_dependences::find_control_dependence): Adjust.
3917 (control_dependences::control_dependences): Likewise.
3918 (control_dependences::~control_dependence): Likewise.
3919 (control_dependences::get_edge): Remove.
3920 (control_dependences::get_edge_src): Add.
3921 (control_dependences::get_edge_dest): Likewise.
3922 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
3924 (perform_tree_ssa_dce): Adjust.
3925 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
3927 (pass_loop_distribution::execute): Adjust. Do loop destroying
3928 conditional on changed.
3930 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3933 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
3934 return. Reindent transformation comment and mention the ARM state
3937 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
3940 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
3941 after build_and_add_sum creates new use stmt.
3943 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
3945 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
3946 load_lanes/grouped_load classification comes first. Don't check
3947 whether the vectorization factor is a multiple of the group size
3950 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
3952 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
3953 GROUP_GAP for single-element interleaving.
3954 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
3957 2016-05-24 Richard Biener <rguenther@suse.de>
3961 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
3962 bases which are accessed with non-invariant indices.
3963 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
3964 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
3966 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
3969 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
3970 (add_to_ops_vec): Add stmt_to_insert.
3971 (add_repeat_to_ops_vec): Init stmt_to_insert.
3972 (insert_stmt_before_use): New.
3973 (transform_add_to_multiply): Remove mult_stmt insertion and add it
3975 (get_ops): Init stmt_to_insert.
3976 (maybe_optimize_range_tests): Likewise.
3977 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
3978 (rewrite_expr_tree_parallel): Likewise.
3979 (reassociate_bb): Likewise.
3981 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3984 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
3985 ISA 3.0 xxperm fusion alternative.
3986 (altivec_vperm_v8hiv16qi): Likewise.
3987 (altivec_vperm_<mode>_uns_internal): Likewise.
3988 (vperm_v8hiv4si): Likewise.
3989 (vperm_v16qiv8hi): Likewise.
3991 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3992 Kelvin Nilsen <kelvin@gcc.gnu.org>
3994 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
3995 vpermr/xxpermr on ISA 3.0.
3996 (altivec_expand_vec_perm_le): Likewise.
3997 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
3998 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
4001 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
4003 * config/i386/i386.h (IS_STACK_MODE): Enable for
4004 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
4005 SSE_FLOAT_MODE_P macros.
4006 * config/i386/i386.c (ix86_preferred_reload_class): Use
4007 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
4008 Cleanup regclass processing for CONST_DOUBLE_P.
4009 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
4010 (ix86_rtx_costs): Remove redundant TARGET_80387 check
4011 with IS_STACK_MODE macro.
4012 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
4014 (*movdf_internal): Use IS_STACK_MODE macro.
4015 (*movsf_internal): Ditto.
4017 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
4019 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
4020 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
4022 2016-05-23 Jeff Law <law@redhat.com>
4024 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
4026 (fsm_find_control_statement_thread_paths): Call it.
4028 2016-05-23 Martin Jambor <mjambor@suse.cz>
4031 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
4032 from_global_constant if t is not NULL.
4034 2016-05-23 Marek Polacek <polacek@redhat.com>
4037 * common.opt (Wswitch-unreachable): New option.
4038 * doc/invoke.texi: Document -Wswitch-unreachable.
4039 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
4042 2016-05-23 Bin Cheng <bin.cheng@arm.com>
4044 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
4045 TMR_INDEX is non-NULL.
4047 2016-05-23 Richard Biener <rguenther@suse.de>
4049 PR tree-optimization/71230
4050 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
4051 (try_special_add_to_ops): ... here. Always test for single-use.
4053 2016-05-23 Martin Jambor <mjambor@suse.cz>
4055 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
4056 default block if a PHI node in the original one would be resized.
4058 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
4060 PR tree-optimization/58135
4061 * tree-vect-slp.c: When group size is not multiple
4062 of vector size, allow splitting of store group at
4065 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
4067 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
4069 2016-05-22 Jakub Jelinek <jakub@redhat.com>
4071 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
4072 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
4073 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
4076 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
4077 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
4078 v constraint instead of x and vinserti32x4 insn.
4080 * config/i386/sse.md (i128vldq): New mode iterator.
4081 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
4082 avx512dq and avx512vl alternatives.
4084 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
4085 constraint, use maybe_evex prefix instead of vex.
4086 (vec_dupv4sf): Use v constraint instead of x for output
4087 operand except for noavx alternative, use Yv constraint
4088 instead of x for input. Use maybe_evex prefix instead of vex.
4089 (*vec_dupv4si): Likewise.
4090 (*vec_dupv2di): Likewise.
4092 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
4095 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
4096 (linearize_expr_tree): Call try_special_add_to_ops.
4097 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
4099 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4101 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
4102 to computed stack_usage.
4104 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
4107 * config/avr/avr.md (define_expand "mov<mode>"): If the source
4108 operand is subreg (symbol_ref) then move the symbol ref to register.
4110 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
4112 * tree.c (array_at_struct_end_p): Look through MEM_REF.
4114 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
4117 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
4120 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
4122 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
4123 ranges by calling get_single_symbol and tidy up. Look more closely
4124 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
4126 2016-05-20 Jeff Law <law@redhat.com>
4128 * bitmap.c (bitmap_find_bit): Remove useless test.
4130 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
4132 * function.c (thread_prologue_and_epilogue_insns): Commit the
4133 insertion of the epilogue.
4135 2016-05-20 Martin Jambor <mjambor@suse.cz>
4137 PR tree-optimization/70884
4138 * tree-sra.c (initialize_constant_pool_replacements): Do not check
4139 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
4140 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
4141 of constant pool data as a reason for scalarization.
4143 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
4145 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
4146 for naked functions.
4147 (thumb1_expand_prologue): Likewise.
4149 2016-05-20 Nathan Sidwell <nathan@acm.org>
4151 * config/nvptx/nptx.c (nvptx_option_override): Only set
4152 flag_toplevel_reorder, if not explicitly specified. Set
4153 flag_no_common, unless explicitly specified.
4155 2016-05-20 David Malcolm <dmalcolm@redhat.com>
4157 * calls.c (can_implement_as_sibling_call_p): Mark param
4158 reg_parm_stack_space with ATTRIBUTE_UNUSED.
4160 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
4162 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
4163 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
4164 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
4166 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
4167 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
4170 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
4172 * config/nvptx/nvptx.md (sincossf3): New pattern.
4174 2016-05-20 David Malcolm <dmalcolm@redhat.com>
4176 * calls.c (maybe_complain_about_tail_call): New function.
4177 (initialize_argument_information): Call
4178 maybe_complain_about_tail_call when clearing *may_tailcall.
4179 (can_implement_as_sibling_call_p): Call
4180 maybe_complain_about_tail_call when returning false.
4181 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
4182 ensure try_tail_call is set. Call maybe_complain_about_tail_call
4183 if tail-call optimization fails.
4184 * cfgexpand.c (expand_call_stmt): Initialize
4185 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
4186 * gimple-pretty-print.c (dump_gimple_call): Dump
4187 gimple_call_must_tail_p.
4188 * gimple.c (gimple_build_call_from_tree): Call
4189 gimple_call_set_must_tail with the value of
4190 CALL_EXPR_MUST_TAIL_CALL.
4191 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
4192 (gimple_call_set_must_tail): New function.
4193 (gimple_call_must_tail_p): New function.
4194 * print-tree.c (print_node): Update printing of TREE_STATIC
4195 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
4196 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
4197 trailing comment listing applicable flags.
4198 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
4200 2016-05-20 David Malcolm <dmalcolm@redhat.com>
4202 * calls.c (expand_call): Move "Rest of purposes for tail call
4203 optimizations to fail" to...
4204 (can_implement_as_sibling_call_p): ...this new function, and
4205 split into multiple "if" statements.
4207 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
4209 * cfgloop.h (expected_loop_iterations_unbounded,
4210 expected_loop_iterations): Unconstify.
4211 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
4212 profile with known upper bound; return 3 when profile is absent.
4213 (expected_loop_iterations): Update.
4215 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
4217 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
4218 and get_max_loop_iterations_int.
4220 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
4222 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
4223 realistic upper bounds here.
4225 2016-05-20 Jakub Jelinek <jakub@redhat.com>
4228 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
4229 calls if the LHS is variable length or has addressable type.
4230 If targets[0]->decl is a noreturn call with void return type and
4231 zero arguments, adjust fntype and remove lhs in that case.
4233 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
4235 PR tree-optimization/71079
4236 PR tree-optimization/71206
4237 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
4239 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4241 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
4242 (get_vec_alignment_for_array_decl): Likewise.
4243 (get_vec_alignment_for_record_decl): Likewise.
4244 (increase_alignment::execute): Move code to find alignment to
4245 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
4246 (type_align_map): New hash_map.
4248 2016-05-20 Richard Guenther <rguenther@suse.de>
4250 PR tree-optimization/29756
4251 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
4252 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
4253 * fold-const.c (operand_equal_p): Likewise.
4254 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
4255 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
4256 * tree-inline.c (estimate_operator_cost): Likewise.
4257 * tree-pretty-print.c (dump_generic_node): Likewise.
4258 * tree-ssa-operands.c (get_expr_operands): Likewise.
4259 * cfgexpand.c (expand_debug_expr): Likewise.
4260 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4261 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
4262 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
4263 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
4264 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
4265 (execute_update_addresses_taken): Do it.
4267 2016-05-20 Richard Biener <rguenther@suse.de>
4269 PR tree-optimization/71185
4270 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
4271 register operations.
4273 2016-05-20 Richard Biener <rguenther@suse.de>
4275 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
4276 gimple_seq_add_seq_without_update.
4277 (release_bb_predicate): Assert we have no operands to free.
4278 (if_convertible_loop_p_1): Calculate post dominators later.
4279 Do not free BB predicates here.
4280 (combine_blocks): Do not recompute BB predicates.
4281 (version_loop_for_if_conversion): Save BB predicates around
4284 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
4286 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
4287 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
4288 code. Ignore sibcalls on EDGE_IGNORE edges.
4289 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
4290 on edges for sibcalls that run without prologue. The rest of the
4291 function is combined from...
4292 (fix_fake_fallthrough_edge): ... this, and ...
4293 (try_shrink_wrapping): ... a part of this. Remove the bb_with
4294 function argument, make it a local variable.
4296 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
4298 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
4299 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
4300 for 32-bit mode and SEH for 64-bit.
4301 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
4302 TARGET_64BIT_DEFAULT.
4304 2016-05-19 Ryan Burn <contact@rnburn.com>
4306 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
4307 * gengtype.c (open_base_files): Add cilk.h to ifiles.
4309 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
4311 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
4312 force pending loads from memory.
4314 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
4316 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
4317 (UNSPEC_DARN_32): New unspec constant.
4318 (UNSPEC_DARN_RAW): New unspec constant.
4319 (darn_32): New instruction.
4320 (darn_raw): New instruction.
4321 (darn): New instruction.
4322 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
4323 support and documentation for this macro.
4324 (BU_P9_MISC_1): New macro definition.
4325 (BU_P9_64BIT_MISC_0): New macro definition.
4326 (BU_P9_MISC_0): New macro definition.
4327 (darn_32): New builtin definition.
4328 (darn_raw): New builtin definition.
4329 (darn): New builtin definition.
4330 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
4331 RS6000_BUILTIN_0 directives to surround each occurrence of
4332 #include "rs6000-builtin.def".
4333 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
4334 RS6000_BTM_64BIT flags to the returned mask, depending on
4336 (def_builtin): Correct an error in the assignments made to the
4337 debugging variable attr_string.
4338 (rs6000_expand_builtin): Add support for no-operand built-in
4340 (builtin_function_type): Remove fatal_error assertion that is no
4342 (rs6000_common_init_builtins): Add support for no-operand built-in
4344 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
4346 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
4348 (RS6000_BTM_64BIT): New macro definition.
4349 * doc/extend.texi: Document __builtin_darn (void),
4350 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
4353 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
4355 * tree-vect-loop.c (vect_analyze_loop_2): Use also
4356 max_loop_iterations_int.
4358 2016-05-19 Marek Polacek <polacek@redhat.com>
4360 PR tree-optimization/71031
4361 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
4362 condition and adjust the code a bit.
4364 2016-05-19 Martin Liska <mliska@suse.cz>
4366 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
4367 auto_vec instead of vec.
4369 2016-05-19 Martin Liska <mliska@suse.cz>
4371 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
4373 2016-05-19 Martin Liska <mliska@suse.cz>
4375 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
4377 2016-05-19 Martin Liska <mliska@suse.cz>
4379 * ipa-pure-const.c (set_function_state): Remove an existing
4381 (remove_node_data): Do not free it as it's released
4382 in set_function_state.
4384 2016-05-19 Martin Liska <mliska@suse.cz>
4386 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
4389 2016-05-19 Martin Liska <mliska@suse.cz>
4391 * omp-simd-clone.c (simd_clone_adjust): Release vector.
4393 2016-05-19 Martin Liska <mliska@suse.cz>
4395 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
4396 an auto_vec instead of re-creating it.
4398 2016-05-19 Martin Liska <mliska@suse.cz>
4400 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
4401 auto_vec instead of vec.
4403 2016-05-19 Martin Liska <mliska@suse.cz>
4405 * lto-section-in.c (lto_get_section_data): Call
4406 lto_check_version with additional argument.
4407 * lto-streamer.c (lto_check_version): Add new argument.
4408 * lto-streamer.h (lto_check_version): Likewise.
4410 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4412 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
4413 Don't add cost of inner memory when handling sign-extended loads.
4415 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
4417 PR rtl-optimization/71148
4418 * cse.c (cse_main): Free dominance info.
4419 (rest_of_handle_cse): Don't free dominance info.
4420 (rest_of_handle_cse2): Likewise.
4421 (rest_of_handle_cse_after_global_opts): Likewise.
4423 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4426 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
4427 NULL_TREE early if NEON is not available. Remove now redundant check
4428 in ARM_CHECK_BUILTIN_MODE.
4430 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
4433 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
4434 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
4435 * doc/cpp.texi: Document new macros.
4437 2016-05-19 Bin Cheng <bin.cheng@arm.com>
4439 PR tree-optimization/69848
4440 * tree-vect-loop.c (vectorizable_reduction): Don't factor
4441 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
4443 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
4445 * function.c (thread_prologue_and_epilogue_insn): Move the
4446 "goto epilogue_done" one block later.
4448 2016-05-19 Richard Biener <rguenther@suse.de>
4450 PR tree-optimization/70729
4451 * passes.def: Move LIM pass before PRE. Remove no longer
4452 required copyprop and move first DCE out of the loop pipeline.
4454 2016-05-18 David Malcolm <dmalcolm@redhat.com>
4457 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
4458 (OBJS-libcommon-target): ...here.
4459 * opts-common.c: Include spellcheck.h.
4460 (cmdline_handle_error): Build a vec of valid options and use it
4461 to suggest provide hints for misspelled arguments.
4463 2016-05-18 Jakub Jelinek <jakub@redhat.com>
4466 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
4467 lhs if it has TREE_ADDRESSABLE type.
4469 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
4472 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
4473 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
4475 2016-05-18 Martin Jambor <mjambor@suse.cz>
4478 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
4479 input for NOP_EXPR pass-through functions.
4480 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
4481 aggregate global constant VAR_DECLs in constant jump functions.
4483 2016-05-18 Martin Jambor <mjambor@suse.cz>
4486 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
4487 from TREE_READONLY parameters.
4489 2016-05-18 Martin Jambor <mjambor@suse.cz>
4492 * cgraph.h (cgraph_indirect_call_info): New field
4493 guaranteed_unmodified.
4494 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
4495 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
4497 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
4498 pass the parameter value to ipa_find_agg_cst_for_param.
4499 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
4500 guaranteed_unmodified, store AA results there instead of bailing out
4502 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
4503 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
4504 (find_constructor_constant_at_offset): New function.
4505 (ipa_find_agg_cst_from_init): Likewise.
4506 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
4507 static initializers of contants, report back through a new paameter
4508 from_global_constant if that was the case.
4509 (try_make_edge_direct_simple_call): Also pass parameter value to
4510 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
4512 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
4513 (ipa_read_indirect_edge_info): Likewise.
4514 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
4515 (ipa_load_from_parm_agg): Likewise.
4517 2016-05-18 Jiong Wang <jiong.wang@arm.com>
4519 PR rtl-optimization/71150
4520 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
4523 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
4526 * config/rs6000/constraints.md (wE constraint): New constraint
4527 for a vector constant that can be loaded with XXSPLTIB.
4528 (wM constraint): New constraint for a vector constant of a 1's.
4529 (wS constraint): New constraint for a vector constant that can be
4530 loaded with XXSPLTIB and a vector sign extend instruction.
4531 * config/rs6000/predicates.md (xxspltib_constant_split): New
4532 predicates for wE/wS constraints.
4533 (xxspltib_constant_nosplit): Likewise.
4534 (easy_vector_constant): Add support for constants that can be
4535 loaded via XXSPLTIB.
4536 (all_ones_constant): New predicate for vector constant with all
4538 (splat_input_operand): Add support for ISA 3.0 word splat operations.
4539 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
4540 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
4541 instruction and possibly with a sign extension.
4542 (output_vec_const_move): Add support for XXSPLTIB. If we are
4543 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
4544 instead of XXLXOR/XXLORC.
4545 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
4547 (rs6000_legitimize_reload_address): Likewise.
4548 (rs6000_output_move_128bit): Use output_vec_const_move to emit
4550 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
4551 combine VSX_M and VSX_M2 into one iterator.
4553 (VSINT_84): New iterators for loading constants with XXSPLTIB.
4554 (VSINT_842): Likewise.
4555 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
4556 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
4557 XXSPLTIB instruction.
4558 (xxspltib_<mode>_nosplit): Likewise.
4559 (xxspltib_<mode>_split): New insn to load up constants with
4560 XXSPLTIB and a sign extend instruction.
4561 (vsx_mov<mode>): Replace single move that handled all vector types
4562 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
4563 moves (when -mvsx-timode is in effect) into the main vector
4564 moves. Eliminate separate moves for <VSr> <VSa>, where the
4565 preferred register class (<VSr>) is listed first, and the
4566 secondary register class (<VSa>) is listed second with a '?' to
4567 discourage use. Prefer loading 0/-1 in any VSX register for ISA
4568 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
4569 that if the register was involved in a slow operation, the
4570 clear/set operation does not wait for the slow operation to
4571 finish. Adjust the length attributes for 32-bit mode. Use
4572 rs6000_output_move_128bit and drop the use of the string
4573 instructions for 32-bit movti when -mvsx-timode is in effect. Use
4574 spacing so that the alternatives and attributes don't generate
4575 long lines, and put things in columns, so that it is easier to
4576 match up the operands and attributes with the insn alternatives.
4577 (vsx_mov<mode>_64bit): Likewise.
4578 (vsx_mov<mode>_32bit): Likewise.
4579 (vsx_movti_64bit): Fold movti into normal vector moves.
4580 (vsx_movti_32bit): Likewise.
4581 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
4583 (vsx_splat_v4si_internal): Likewise.
4584 (vsx_splat_v4sf_internal): Likewise.
4585 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
4586 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
4587 extend vector elements.
4588 (vsx_sign_extend_hi_<mode>): Likewise.
4589 (vsx_sign_extend_si_v2di): Likewise.
4590 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
4592 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
4593 constraints. Add trailing period to wL documentation.
4595 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
4598 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
4599 * tree-dfa.c (replace_abnormal_ssa_names): New function.
4600 * tree-call-cdce.c: Include tree-dfa.h.
4601 (can_guard_call_p): New function, extracted from...
4602 (can_use_internal_fn): ...here.
4603 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
4605 (shrink_wrap_one_built_in_call): Likewise.
4606 (use_internal_fn): Likewise.
4607 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
4608 and return void. Call replace_abnormal_ssa_names.
4609 (pass_call_cdce::execute): Check can_guard_call_p during the
4610 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
4611 will always change something.
4613 2016-05-18 Martin Jambor <mjambor@suse.cz>
4616 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
4617 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
4619 2016-05-18 Martin Jambor <mjambor@suse.cz>
4622 * ipa-inline.h (condition): New field size.
4623 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
4624 for comaprison and store it into the new condition.
4625 (evaluate_conditions_for_known_args): Use condition size to check
4626 access sizes for all but CHANGED conditions.
4627 (unmodified_parm_1): New parameter size_p, store access size into it.
4628 (unmodified_parm): Likewise.
4629 (unmodified_parm_or_parm_agg_item): Likewise.
4630 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
4631 (set_cond_stmt_execution_predicate): Extract access sizes and store
4633 (set_switch_stmt_execution_predicate): Likewise.
4634 (will_be_nonconstant_expr_predicate): Likewise.
4635 (will_be_nonconstant_predicate): Likewise.
4636 (inline_read_section): Stream condition size.
4637 (inline_write_summary): Likewise.
4639 2016-05-18 Richard Biener <rguenther@suse.de>
4641 * tree-ssa-loop-im.c (determine_max_movement): Properly add
4642 condition cost to PHI cost instead of total_cost.
4644 2016-05-18 Martin Liska <mliska@suse.cz>
4647 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
4650 2016-05-18 Richard Biener <rguenther@suse.de>
4652 * lto-streamer.h (LTO_major_version): Bump to 6.
4654 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
4656 * function.c (make_split_prologue_seq, make_prologue_seq,
4657 make_epilogue_seq): New functions, factored out from...
4658 (thread_prologue_and_epilogue_insns): Here.
4660 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
4662 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
4663 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
4664 of before. Add a comment.
4666 2016-05-18 Bin Cheng <bin.cheng@arm.com>
4668 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
4669 expression pointer, not pointer to the pointer.
4671 2016-05-18 Jakub Jelinek <jakub@redhat.com>
4673 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
4674 (avx2_pbroadcast<mode>): Add another alternative with v instead
4675 of x constraints in it, using <pbroadcast_evex_isa> isa.
4676 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
4678 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
4679 constraint x instead of v in second alternative, add avx512bw
4682 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
4683 constraint x instead of v in second alternative, add avx512bw
4686 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
4687 constraint x instead of v in second alternative, add avx512bw
4690 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
4691 avx512bw alternative.
4693 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
4695 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
4697 (define_insn "*andnottf3"): Ditto.
4698 (define_insn "*<code><mode>3"/any_logic): Ditto.
4699 (define_insn "*<code>tf3"/any_logic): Ditto.
4700 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
4701 operand to block AVX-512VL insn variant emit when it is not enabled.
4703 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
4705 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
4706 constraint fot SF mode.
4708 2016-05-18 Petr Murzin <petr.murzin@intel.com>
4709 Kirill Yukhin <kirill.yukhin@intel.com>
4711 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
4713 (define_insn "rsqrt14<mode>"): Ditto.
4714 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
4715 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
4716 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
4717 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4718 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
4720 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
4721 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
4722 * config/i386/i386.c (ix86_print_operand): Expand check for size
4723 override codes for Intel syntax.
4725 2016-05-18 Richard Biener <rguenther@suse.de>
4727 PR tree-optimization/71168
4728 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
4729 initialization earlier.
4731 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
4733 * config/aarch64/aarch64-simd.md
4734 (aarch64_reduc_plus_internal<mode>): Rename to...
4735 (reduc_plus_scal): ...This, and remove previous implementation.
4737 2016-05-18 Richard Biener <rguenther@suse.de>
4739 * passes.def: Put late dse and cd_dce in canonical order.
4741 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
4743 * ipa-inline-transform.c (preserve_function_body_p): Look for
4744 first non-thunk clone.
4745 (save_function_body): Save into first non-thunk.
4746 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
4748 (lto_output_node): Inline thunks don't need body in every
4750 * lto-streamer-in.c: Do not fixup thunk clones.
4751 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
4753 * tree-inline.c (copy_bb): Be prepared for target node to be new after
4756 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
4759 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
4760 (reassociate_bb): Call transform_add_to_multiply.
4762 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
4764 * config/aarch64/aarch64.c (all_extensions): Removed unused
4767 2016-05-17 Nathan Sidwell <nathan@acm.org>
4769 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
4770 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
4772 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
4774 PR tree-optimization/54579
4776 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
4778 2016-05-17 Marek Polacek <polacek@redhat.com>
4781 * tree-inline.c (expand_call_inline): Call
4782 maybe_remove_unused_call_args.
4784 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
4786 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
4787 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
4788 * doc/md.texi (fmin@var{m}3): Likewise.
4790 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
4792 * match.pd (X & C): New transformation.
4794 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
4796 * match.pd (~X & Y): New transformation.
4798 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
4800 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
4801 information for new SSA_NAME.
4802 (simplify_conversion_using_ranges): Get range through get_range_info
4803 instead of get_value_range.
4805 2016-05-17 Jiong Wang <jiong.wang@arm.com>
4807 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
4808 Remove inline assembly.
4809 (vmvn_s16): Likewise.
4810 (vmvn_s32): Likewise.
4811 (vmvn_u8): Likewise.
4812 (vmvn_u16): Likewise.
4813 (vmvn_u32): Likewise.
4814 (vmvnq_s8): Likewise.
4815 (vmvnq_s16): Likewise.
4816 (vmvnq_s32): Likewise.
4817 (vmvnq_u8): Likewise.
4818 (vmvnq_u16): Likewise.
4819 (vmvnq_u32): Likewise.
4820 (vmvn_p8): Likewise.
4821 (vmvnq_p16): Likewise.
4823 2016-05-17 Jiong Wang <jiong.wang@arm.com>
4825 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
4827 (vmul_n_s16): Likewise.
4828 (vmul_n_s32): Likewise.
4829 (vmul_n_u16): Likewise.
4830 (vmul_n_u32): Likewise.
4831 (vmulq_n_f32): Likewise.
4832 (vmulq_n_f64): Likewise.
4833 (vmulq_n_s16): Likewise.
4834 (vmulq_n_s32): Likewise.
4835 (vmulq_n_u16): Likewise.
4836 (vmulq_n_u32): Likewise.
4838 2016-05-17 Jiong Wang <jiong.wang@arm.com>
4840 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
4841 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
4843 2016-05-17 Jiong Wang <jiong.wang@arm.com>
4845 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
4846 to *aarch64_fma4_elt_from_dup<mode>.
4847 (*aarch64_fnma4_elt_to_128df): Rename to
4848 *aarch64_fnma4_elt_from_dup<mode>.
4849 * config/aarch64/arm_neon.h (vfma_n_f64): New.
4850 (vfms_n_f32): Likewise.
4851 (vfms_n_f64): Likewise.
4852 (vfmsq_n_f32): Likewise.
4853 (vfmsq_n_f64): Likewise.
4855 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
4857 * wide-int.h: Change fixed_wide_int_storage from class to struct.
4859 2016-05-17 Richard Biener <rguenther@suse.de>
4861 PR tree-optimization/71132
4862 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
4863 Only add control dependences for blocks in the loop.
4864 (build_rdg): Adjust.
4865 (generate_code_for_partition): Return whether loop should
4866 be destroyed and delay that.
4867 (distribute_loop): Likewise.
4868 (pass_loop_distribution::execute): Record loops to be destroyed
4869 and perform delayed destroying of loops.
4871 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4874 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
4876 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
4878 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
4880 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
4883 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
4884 insertion point for instructions generated by validize_mem.
4886 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
4888 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
4891 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
4893 * config/aarch64/aarch64.c
4894 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
4895 rather than a macro.
4897 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
4899 * doc/invoke.texi (AArch64 Options): Various updates.
4901 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
4903 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
4904 into instrumentation thunks.
4905 * cif-code.def (CIF_CHKP): New.
4907 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
4909 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
4911 2016-05-16 Martin Jambor <mjambor@suse.cz>
4913 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
4914 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
4916 2016-05-16 Marek Polacek <polacek@redhat.com>
4918 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
4921 2016-05-16 Martin Jambor <mjambor@suse.cz>
4924 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
4925 the outlined kernel function.
4927 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
4929 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
4930 (ISA_HAS_DLSA): Ditto.
4932 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
4934 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
4936 2016-05-16 Nathan Sidwell <nathan@acm.org>
4938 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
4939 (nvptx_name_replacement): Restore. Add comment.
4940 (write_fn_proto, write_fn_proto_from_insn,
4941 nvptx_output_call_insn): Restore
4942 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
4944 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
4946 * config/aarch64/aarch64.md
4947 (add<mode>3_compareC_cconly_imm): Remove use of %w.
4948 (add<mode>3_compareC_imm): Likewise.
4949 (<optab>si3_uxtw): Split into register and immediate variants.
4950 (andsi3_compare0_uxtw): Likewise.
4951 (and<mode>3_compare0): Likewise.
4952 (and<mode>3nr_compare0): Likewise.
4953 (stack_protect_test_<mode>): Don't use %x for memory operands.
4955 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
4957 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
4959 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
4961 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
4962 Split integer shifts into shift_reg and bfm.
4963 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
4964 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
4965 (ror<mode>3_insn): Likewise.
4966 (<optab>si3_insn_uxtw): Likewise.
4967 (<optab><mode>3_insn): Change to rotate_imm.
4968 (extr<mode>5_insn_alt): Likewise.
4969 (extrsi5_insn_uxtw): Likewise.
4970 (extrsi5_insn_uxtw_alt): Likewise.
4972 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
4974 * doc/tm.texi: Regenerate.
4975 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
4976 (TARGET_INVALID_RETURN_TYPE): Remove.
4977 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
4978 TARGET_INVALID_RETURN_TYPE.
4979 * target.def (invalid_parameter_type): Remove.
4980 (invalid_return_type): Remove.
4982 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
4984 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
4985 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
4987 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
4989 (preserve_function_body_p): No need to preserve function body
4990 * cif-codes.def (CIF_THUNK): Remove.
4991 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
4993 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
4995 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
4997 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
4999 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
5002 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
5004 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
5005 (inline_small_functions): Do not look for function symbol when
5008 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
5010 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
5013 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
5014 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5015 Jiong Wang <jiong.wang@arm.com>
5017 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
5018 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
5019 Define __ARM_FP16_ARGS when appropriate.
5020 * config/arm/arm.c (arm_invalid_parameter_type): Remove
5022 (arm_invalid_return_type): Likewise.
5023 (TARGET_INVALID_PARAMETER_TYPE): Remove.
5024 (TARGET_INVALID_RETURN_TYPE): Remove.
5025 (aapcs_vfp_sub_candidate): Allow HFmode.
5026 (aapcs_vfp_allocate): Add comment. Support HFmode.
5027 (aapcs_vfp_allocate_return_reg): Likewise.
5028 (struct aapcs_cp_arg_layout): Slightly reword comments for
5029 is_return_candidate and allocate_return_reg.
5030 (output_mov_vfp): Update assert.
5031 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
5033 (arm_invalid_parameter_type): Remove.
5034 (amr_invalid_return_type): Remove.
5035 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
5036 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
5037 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
5039 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
5041 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
5042 * config/aarch64/arch64-protos.h
5043 (aarch64_legitimize_reload_address): Remove.
5044 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
5047 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
5049 * configure.ac: Add ACX_NONCANONICAL_HOST.
5050 * configure: Regenerate.
5051 * Makefile.in: Set host_noncanonical.
5053 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
5056 * config/i386/i386.md (*movtf_internal): Before register allocation,
5057 do not allow FP constants for CM_MEDIUM memory model, allow only
5058 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
5059 (*movxf_internal): Ditto.
5060 (*movdf_internal): Ditto.
5061 (*movsf_internal): Ditto.
5063 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
5065 PR rtl-optimization/67483
5066 * combine.c (make_compound_operation): Don't call extract_left_shift
5067 with negative shift amounts.
5069 2016-05-13 Jakub Jelinek <jakub@redhat.com>
5072 * fold-const.c (fold_checksum_tree): Allow modification
5073 of TYPE_ALIAS_SET during folding.
5075 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
5076 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
5077 (ix86_split_to_parts): Likewise. Fix up formatting.
5079 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
5081 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
5082 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
5085 2016-05-13 Nathan Sidwell <nathan@acm.org>
5087 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
5088 (nvptx_name_replacement): Delete.
5089 (write_fn_proto, write_fn_proto_from_insn,
5090 nvptx_output_call_insn): Remove nvptx_name_replacement call.
5091 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
5092 * langhooks.c (add_builtin_funcction_common): Call
5093 targetm.mangle_decl_assembler_name.
5095 * config/nvptx/nvptx.c (write_fn_proto): Handle
5096 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
5098 2016-05-13 Martin Liska <mliska@suse.cz>
5100 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
5101 and PRIu64 in printf format.
5103 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5105 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
5108 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5110 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
5111 Change --param max-completely-peeled-times to
5112 --param max-completely-peel-times in dump file printing.
5114 2016-05-13 Richard Biener <rguenther@suse.de>
5116 PR tree-optimization/42587
5117 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
5118 (find_bswap_or_nop_1): Likewise.
5119 (bswap_replace): Likewise.
5121 2016-05-13 Martin Liska <mliska@suse.cz>
5123 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
5124 Initialize a variable with default value.
5126 2016-05-13 Martin Liska <mliska@suse.cz>
5128 * doc/invoke.texi: Enhance explanation of error recovery
5131 2016-05-13 Martin Liska <mliska@suse.cz>
5133 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
5134 (struct cost_pair): Change inv_expr_id (int) to inv_expr
5135 (iv_inv_expr_ent *).
5136 (struct iv_inv_expr_ent): Comment struct fields.
5137 (sort_iv_inv_expr_ent): New function.
5138 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
5139 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
5140 a hash_map between iv_inv_expr_ent and number of usages.
5141 (niter_for_exit): Fix coding style.
5142 (tree_ssa_iv_optimize_init): Use renamed variable.
5143 (determine_base_object): Fix coding style.
5144 (alloc_iv): Likewise.
5145 (find_interesting_uses_outside): Likewise.
5146 (add_candidate_1): Likewise.
5147 (add_standard_iv_candidates): Likewise.
5148 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
5149 (prepare_decl_rtl): Fix coding style.
5150 (get_address_cost): Likewise.
5151 (get_shiftadd_cost): Likewise.
5152 (force_expr_to_var_cost): Likewise.
5153 (compare_aff_trees): Likewise.
5154 (get_expr_id): Restructure the function.
5155 (get_loop_invariant_expr_id): Renamed to
5156 get_loop_invariant_expr.
5157 (get_computation_cost_at): Replace usage of inv_expr_id with
5159 (get_computation_cost): Likewise.
5160 (determine_group_iv_cost_generic): Likewise.
5161 (determine_group_iv_cost_address): Likewise.
5162 (iv_period): Fix coding style.
5163 (iv_elimination_compare_lt): Likewise.
5164 (may_eliminate_iv): Likewise.
5165 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
5167 (determine_group_iv_costs): Dump invariant expressions.
5168 (iv_ca_recount_cost): Use the newly added hash_map.
5169 (iv_ca_set_remove_invariants): Fix coding style.
5170 (iv_ca_set_add_invariants): Fix coding style.
5171 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
5173 (iv_ca_set_cp): Likewise.
5174 (iv_ca_new): Initialize the newly added hash_map and remove
5175 initialization of fields.
5176 (iv_ca_free): Delete the hash_map.
5177 (iv_ca_dump): Dump invariant expressions.
5178 (iv_ca_extend): Fix coding style.
5179 (try_add_cand_for): Likewise.
5180 (create_new_ivs): Dump information about # of avg iterations and
5181 # of used invariant expressions.
5182 (rewrite_use_compare): Fix coding style.
5183 (free_loop_data): Set default value for max_inv_expr_id.
5185 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
5187 * cse.c (rest_of_handle_cse): Use cleanup_cfg
5188 returned value cse_cfg_altered computation.
5189 (rest_of_handle_cse2): Likewise.
5190 (rest_of_handle_cse_after_global_opts): Likewise.
5192 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5195 * config/arm/arm.c (arm32_output_mi_thunk): New.
5196 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
5197 to split Thumb1 vs TARGET_32BIT functionality.
5198 (arm_thumb1_mi_thunk): New.
5200 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5202 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
5205 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5208 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
5210 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
5212 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
5213 (expand_builtin_trap): Emit a regular call.
5214 (set_builtin_user_assembler_name): Remove obsolete cases.
5215 * dse.c (scan_insn): Adjust.
5216 * except.c: Include calls.h.
5217 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
5218 emit a regular call to setjmp.
5219 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
5220 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
5221 (emit_block_move_via_libcall): Delete.
5222 (block_move_fn): Delete.
5223 (init_block_move_fn): Likewise.
5224 (emit_block_move_libcall_fn): Likewise.
5225 (emit_block_op_via_libcall): New function.
5226 (set_storage_via_libcall): Tidy up and use memset builtin.
5227 (block_clear_fn): Delete.
5228 (init_block_clear_fn): Likewise.
5229 (clear_storage_libcall_fn): Likewise.
5230 (expand_assignment): Call emit_block_move_via_libcall.
5231 Do not include gt-expr.h.
5232 * expr.h (emit_block_op_via_libcall): Declare.
5233 (emit_block_copy_via_libcall): New inline function.
5234 (emit_block_move_via_libcall): Likewise.
5235 (emit_block_comp_via_libcall): Likewise.
5236 (block_clear_fn): Delete.
5237 (init_block_move_fn): Likewise.
5238 (init_block_clear_fn): Likewise.
5239 (emit_block_move_via_libcall): Likewise.
5240 (set_storage_via_libcall): Add default parameter value.
5241 * libfuncs.h (enum libfunc_index): Remove obsolete values.
5242 (abort_libfunc): Delete.
5243 (memcpy_libfunc): Likewise.
5244 (memmove_libfunc): Likewise.
5245 (memcmp_libfunc): Likewise.
5246 (memset_libfunc): Likewise.
5247 (setbits_libfunc): Likewise.
5248 (setjmp_libfunc): Likewise.
5249 (longjmp_libfunc): Likewise.
5250 (profile_function_entry_libfunc): Likewise.
5251 (profile_function_exit_libfunc): Likewise.
5252 (gcov_flush_libfunc): Likewise.
5253 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
5254 and DECL_VISIBILITY on the declaration.
5255 (init_optabs): Do not initialize obsolete libfuncs.
5256 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
5257 * tree-core.h (ECF_RET1): Define.
5258 (ECF_TM_PURE): Adjust.
5259 (ECF_TM_BUILTIN): Likewise.
5260 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
5261 (build_common_builtin_nodes): Initialize abort builtin.
5262 Add ECF_RET1 on memcpy, memmove and memset builtins.
5263 Pass final flags for alloca and alloca_with_align builtins.
5264 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
5266 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
5267 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
5268 set_storage_via_libcall and call emit_block_copy_via_libcall.
5270 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
5272 * config/i386/i386.md (*call_got_x32): Change operand 0 to
5273 DImode before it is passed to ix86_output_call_operand.
5274 (*call_value_got_x32): Ditto for operand 1.
5276 2016-05-12 Jiong Wang <jiong.wang@arm.com>
5278 PR rtl-optimization/70904
5279 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
5280 reload for wide mode.
5282 2016-05-12 Marek Polacek <polacek@redhat.com>
5285 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
5286 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
5287 * langhooks.h (incomplete_type_error): Likewise.
5288 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
5289 parameter, pass it down to incomplete_type_error.
5290 * tree.h (size_in_bytes): New inline overload.
5291 (size_in_bytes_loc): Renamed from size_in_bytes.
5293 2016-05-12 Richard Biener <rguenther@suse.de>
5295 PR tree-optimization/71059
5296 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
5297 nary before looking up or entering the expression into the VN
5299 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
5300 Make sure to re-use NARYs without result as inserted by
5303 2016-05-12 Richard Biener <rguenther@suse.de>
5305 PR tree-optimization/71062
5306 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
5308 * tree-ssa-structalias.c (set_uids_in_ptset): Set
5309 vars_contains_restrict if the var is a restrict tag.
5310 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
5311 do not disambiguate pointers against it.
5312 (dump_points_to_solution): Re-structure and adjust for new
5313 vars_contains_restrict flag.
5314 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
5316 2016-05-12 Martin Liska <mliska@suse.cz>
5318 * doc/invoke.texi: Explain connection between
5319 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
5321 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
5323 PR tree-optimization/71006
5324 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5325 consider COND_EXPR as a mask producer.
5327 2016-05-12 Marek Polacek <polacek@redhat.com>
5330 * opts.c (common_handle_option): Detect missing argument for --help^.
5332 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5335 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
5336 when popping the PC and within an interrupt handler routine.
5337 Add missing tab to output of "ldmfd".
5338 (output_return_instruction): Output LDMFD with SP update rather
5339 than POP when returning from interrupt handler.
5341 2016-05-12 Jakub Jelinek <jakub@redhat.com>
5343 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
5344 TARGET_64BIT && TARGET_AVX512DQ.
5345 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
5346 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
5347 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
5348 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
5349 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
5350 (*vec_extractv4si_zext): Add avx512dq alternative.
5351 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
5352 use v instead of x constraint in other alternatives where possible.
5354 * config/i386/sse.md (sse2_loadld): Use v instead of x
5355 constraint in alternatives 0,1,4.
5357 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
5358 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
5359 v constraints instead of x and <pinsr_evex_isa> isa attribute.
5362 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
5363 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
5364 is not emitted unless TARGET_AVX512BW.
5365 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
5366 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
5367 for the result operand.
5369 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
5370 constraint instead of x in avx alternatives. Use maybe_evex instead
5373 * config/i386/constraints.md (Yv): New constraint.
5374 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
5375 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
5376 * config/i386/i386.md (avx512fvecmode): New mode attr.
5377 (*pushtf): Use v constraint instead of x.
5378 (*movtf_internal): Likewise. For TARGET_AVX512VL and
5379 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
5380 (*absneg<mode>2): Use Yv constraint instead of x constraint.
5381 (*absnegtf2_sse): Likewise.
5382 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
5383 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
5384 avx512f alternatives.
5385 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
5387 2016-05-12 Richard Biener <rguenther@suse.de>
5389 PR tree-optimization/71060
5390 * tree-data-ref.c (initialize_data_dependence_relation): Do not
5391 require exact match of DR_BASE_OBJECT but only matching address and
5394 2016-05-12 Richard Biener <rguenther@suse.de>
5396 PR tree-optimization/70986
5397 * cfganal.c: Include cfgloop.h.
5398 (dfs_find_deadend): Prefer to take edges exiting loops.
5400 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5402 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
5403 compile and run time.
5405 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
5408 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
5410 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
5412 * config/i386/i386.c (legitimize_pic_address): Use
5413 copy_to_suggested_reg instead of gen_movsi.
5415 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
5417 * config/rs6000/predicates.md (quad_memory_operand): Move most of
5418 the code into quad_address_p and call it to share code with
5419 vsx_quad_dform_memory_operand.
5420 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
5422 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
5423 bit instead of being a separate word. Split -mpower9-dform into
5424 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
5425 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
5426 for the register class supporting 128-bit quad word memory offsets.
5427 (mode_supports_vsx_dform_quad): Helper function to return if the
5428 register class uses quad word memory offsets.
5429 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
5430 (rs6000_debug_reg_global): Always print if we are using LRA or not.
5431 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
5432 instructions are enabled, set up the appropriate addr_masks for
5434 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
5435 -mpower9-dform-scalar, instead of -mpower9-dform.
5436 (rs6000_option_override_internal): Split -mpower9-dform into two
5437 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
5438 -mpower9-dform switch sets or clears both. If we are not using
5439 the LRA register allocator, do not enable -mpower9-dform-vector by
5440 default. If we are using LRA, enable -mpower9-dform-vector and
5441 -mvsx-timode if it is appropriate. Issue a warning if either
5442 -mpower9-dform-vector or -mvsx-timode are explicitly used without
5444 (quad_address_offset_p): New helper function to return if the
5445 offset is legal for quad word memory instructions.
5446 (quad_address_p): New function to determin if GPR or vector
5447 register quad word memory addresses are legal.
5448 (mem_operand_gpr): Validate quad word address offsets.
5449 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
5450 d-form (register + offset) instructions.
5451 (offsettable_ok_by_alignment): Likewise.
5452 (rs6000_legitimate_offset_address_p): Likewise.
5453 (legitimate_lo_sum_address_p): Likewise.
5454 (rs6000_legitimize_address): Likewise.
5455 (rs6000_legitimize_reload_address): Add more debug statements for
5457 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
5458 d-form instructions.
5459 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
5460 d-form instructions. Distinguish different cases in debug
5461 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
5462 d-form instructions.
5463 (rs6000_preferred_reload_class): Likewise.
5464 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
5465 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
5466 of the ISA 2.06 indexed memory instructions.
5467 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
5468 use them to save/restore the saved vector registers instead of
5469 using Altivec instructions.
5470 (rs6000_emit_epilogue): Likewise.
5471 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
5472 (rs6000_opt_masks): Split -mpower9-dform into
5473 -mpower9-dform-scalar and -mpower9-dform-vector.
5474 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
5476 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
5477 ISA 3.0 vector indexed memory instructions, and fold the code into
5478 the normal mov<mode> patterns.
5479 (p9_vecstore_<mode>): Likewise.
5480 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
5482 (vsx_movti_64bit): Likewise.
5483 (vsx_movti_32bit): Likewise.
5484 * config/rs6000/constraints.md (wO constraint): New constraint for
5485 ISA 3.0 vector d-form support.
5486 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
5487 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
5488 include -mpower9-dform-vector until we switch over to LRA.
5489 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
5490 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
5491 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
5492 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
5493 for -mpower9-dform and -mlra.
5494 * doc/md.texi (wO constraint): Document wO constraint.
5496 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
5498 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
5499 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
5500 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
5501 Move handling of non-insn arguments inline into the sole user:
5502 (output_trans_func): ...here.
5503 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
5504 in emitted function prototype.
5505 (output_internal_insn_latency_func): Ditto. Simplify.
5506 (output_internal_maximal_insn_latency_func): Ditto. Delete
5507 always-unused argument.
5508 (output_insn_latency_func): Ditto.
5509 (output_maximal_insn_latency_func): Ditto.
5511 2016-05-11 Richard Biener <rguenther@suse.de>
5513 PR tree-optimization/71055
5514 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
5515 sth with precision not equal to access size verify we don't chop
5518 2016-05-11 Richard Biener <rguenther@suse.de>
5521 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
5522 (dwarf2out_finish): Move retry_incomplete_types call ...
5523 (dwarf2out_early_finish): ... here.
5525 2016-05-11 Richard Biener <rguenther@suse.de>
5528 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
5529 if the langhook insists on it.
5530 * fold-const.c (make_bit_field_ref): Add arg for the original
5531 reference and preserve its alias-set.
5532 (decode_field_reference): Take exp by reference and adjust it
5533 to the original memory reference.
5534 (optimize_bit_field_compare): Adjust callers.
5535 (fold_truth_andor_1): Likewise.
5536 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
5538 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
5541 * cfgrtl.h (delete_insn_and_edges): Now return bool.
5542 * cfgrtl.c (delete_insn_and_edges): Likewise.
5543 * config/i386/i386.c (convert_scalars_to_vector): Remove
5545 * cse.c (cse_insn): Compute cse_cfg_altered.
5546 (delete_trivially_dead_insns): Likewise.
5547 (cse_cc_succs): Likewise.
5548 (rest_of_handle_cse): Free dominance info if required.
5549 (rest_of_handle_cse2): Likewise.
5550 (rest_of_handle_cse_after_global_opts): Likewise.
5552 2016-05-11 Alan Modra <amodra@gmail.com>
5554 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
5555 abi_v4_pass_in_fpr): New functions.
5556 (rs6000_function_arg_boundary): Exclude complex IBM long double
5557 from 64-bit alignment when ABI_V4.
5558 (rs6000_function_arg, rs6000_function_arg_advance_1,
5559 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
5561 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
5563 PR rtl-optimization/71028
5564 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
5565 jump with just a return in the fallthrough block if the branch
5566 block contains just a return as well.
5568 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
5570 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
5571 * match.pd ((X & Y) ^ Y): ... this.
5572 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
5573 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
5575 2016-05-10 David Malcolm <dmalcolm@redhat.com>
5577 * read-md.c (require_char_ws): New function.
5578 (read_string): Simplify using require_char_ws.
5579 (handle_constants): Likewise.
5580 (handle_enum): Likewise.
5581 (handle_file): Likewise.
5582 * read-md.h (require_char_ws): New declaration.
5583 * read-rtl.c (read_conditions): Simplify using require_char_ws.
5584 (read_mapping): Likewise.
5585 (read_rtx_code): Likewise.
5586 (read_nested_rtx): Likewise.
5588 2016-05-10 James Norris <jnorris@codesourcery.com>
5590 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
5591 if offloading is enabled and -fopenacc or -fopenmp is specified.
5592 (CRTOFFLOADEND): Likewise.
5593 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
5594 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
5596 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
5598 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
5599 gotoff_operand code paths. Use copy_to_suggested_regs and
5600 expand_simple_binop where appropriate. Cleanup.
5602 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
5605 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
5607 (dimode_scalar_chain::vector_const_cost): New.
5608 (dimode_scalar_chain::compute_convert_gain): Handle constants.
5609 (dimode_scalar_chain::convert_op): Likewise.
5610 (dimode_scalar_chain::convert_insn): Likewise.
5612 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
5614 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
5615 unary operation, not a binary one.
5617 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
5620 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
5621 calls with type casted fndecl.
5623 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
5625 PR tree-optimization/70786
5626 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
5627 * calls.c (initialize_argument_information): Bind bounds
5628 with corresponding args passed by reference.
5630 2016-05-10 Jakub Jelinek <jakub@redhat.com>
5633 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
5634 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
5635 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
5638 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5641 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
5642 code for a zero scale factor.
5643 (vsx_xvcvdpuxds_scale): Likewise.
5645 2016-05-10 David Malcolm <dmalcolm@redhat.com>
5647 * diagnostic-show-locus.c (layout::layout): Call show_ruler
5648 if show_ruler_p was set on the context.
5649 (layout::show_ruler): New method.
5650 * diagnostic.h (struct diagnostic_context): Add field
5653 2016-05-10 Richard Biener <rguenther@suse.de>
5655 PR tree-optimization/71039
5656 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
5657 (chk_uses): New function.
5658 (propagate_with_phi): Verify we can safely replicate the lhs of an
5659 aggregate assignment on all incoming edges.
5661 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
5663 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
5665 (rx_atomic_sequence): New class.
5666 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
5667 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
5669 (rx_atomic_sequence::rx_atomic_sequence,
5670 rx_atomic_sequence::~rx_atomic_sequence): New functions.
5671 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
5672 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
5673 CTRLREG_INTB): New constants.
5674 (FETCHOP): New code iterator.
5675 (fethcop_name, fetchop_name2): New iterator code attributes.
5676 (QIHI): New mode iterator.
5677 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
5678 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
5679 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
5681 2016-05-10 Martin Liska <mliska@suse.cz>
5683 * tree-inline.c (remap_dependence_clique): Do not remap
5684 debugging statements.
5686 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5688 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
5689 ("*fixuns_truncdfdi2_z13")
5690 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
5691 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
5692 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
5694 2016-05-10 Richard Biener <rguenther@suse.de>
5696 PR tree-optimization/70497
5697 PR tree-optimization/28367
5698 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
5700 (visit_reference_op_load): ... here.
5701 (vn_reference_lookup_3): Use it to handle subreg-like accesses
5702 with simplified BIT_FIELD_REFs.
5703 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
5704 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
5707 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
5709 * dwarf2out.c (add_abstract_origin_attribute): Adjust
5710 documentation comment. For BLOCK nodes, add a
5711 DW_AT_abstract_origin attribute that points to the DIE generated
5712 for the origin BLOCK.
5713 (gen_lexical_block_die): Call add_abstract_origin_attribute for
5714 blocks from inlined functions.
5716 2016-05-10 Alan Modra <amodra@gmail.com>
5719 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
5720 regrename modifying insns saving lr before __morestack call.
5721 * config/rs6000/rs6000.md (split_stack_return): Similarly for
5722 insns restoring lr after __morestack call.
5724 2016-05-09 Jakub Jelinek <jakub@redhat.com>
5726 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
5727 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
5729 * config/i386/sse.md (vec_interleave_high<mode>,
5730 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
5731 <avx512>_vpermt2var<mode>3_maskz): Likewise.
5733 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
5735 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
5736 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
5737 parallel reassociation for power8 and forward.
5739 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
5741 * config/i386/i386.md (absneg splitters with general regs): Use
5742 general_reg_operand predicate.
5743 (btsq peephole2): Use x86_64_immediate_operand to check if new
5744 value is suitable for immediate operand. Generate emitted insn
5745 using RTL expressions.
5746 (btcq peephole2): Ditto.
5747 (btrq peephole2): Ditto. Generate correct immediate operand
5750 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
5752 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
5755 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
5757 * tree-affine.c (wide_int_constant_multiple_p): Add missing
5758 pointer dereference.
5760 2016-05-09 Richard Biener <rguenther@suse.de>
5762 PR tree-optimization/70985
5763 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
5764 op0 isn't a gimple register.
5766 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
5768 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
5769 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
5770 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
5771 (i6400_fpu_mult): New cpu units.
5772 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
5773 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
5774 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
5775 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
5776 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
5777 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
5778 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
5779 (i6400_msa_long_float4, i6400_msa_long_float5)
5780 (i6400_msa_long_float8, i6400_msa_fdiv_df)
5781 (i6400_msa_fdiv_sf): New reservations.
5782 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
5783 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
5784 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
5785 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
5786 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
5787 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
5788 (msa_short_cmp, msa_short_float2, msa_short_logic3)
5789 (msa_short_store4, msa_long_load, msa_short_store)
5790 (msa_long_logic, msa_long_float2, msa_long_float4)
5791 (msa_long_float5, msa_long_float8, msa_long_mult)
5792 (msa_long_fdiv, msa_long_div): New reservations.
5794 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
5795 Sameera Deshpande <sameera.deshpande@imgtec.com>
5796 Matthew Fortune <matthew.fortune@imgtec.com>
5797 Graham Stott <graham.stott@imgtec.com>
5798 Chao-ying Fu <chao-ying.fu@imgtec.com>
5800 * config.gcc: Add MSA header file for mips*-*-* target.
5801 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
5802 (Ubv8i, Urv8): New constraints.
5803 * config/mips/mips-ftypes.def: Add function types for MSA
5805 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
5806 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
5807 * config/mips/mips-msa.md: New file.
5808 * config/mips/mips-protos.h
5809 (mips_split_128bit_const_insns): New prototype.
5810 (mips_msa_idiv_insns): Likewise.
5811 (mips_split_128bit_move): Likewise.
5812 (mips_split_128bit_move_p): Likewise.
5813 (mips_split_msa_copy_d): Likewise.
5814 (mips_split_msa_insert_d): Likewise.
5815 (mips_split_msa_fill_d): Likewise.
5816 (mips_expand_msa_branch): Likewise.
5817 (mips_const_vector_same_val_p): Likewise.
5818 (mips_const_vector_same_bytes_p): Likewise.
5819 (mips_const_vector_same_int_p): Likewise.
5820 (mips_const_vector_shuffle_set_p): Likewise.
5821 (mips_const_vector_bitimm_set_p): Likewise.
5822 (mips_const_vector_bitimm_clr_p): Likewise.
5823 (mips_msa_vec_parallel_const_half): Likewise.
5824 (mips_msa_output_division): Likewise.
5825 (mips_ldst_scaled_shift): Likewise.
5826 (mips_expand_vec_cond_expr): Likewise.
5827 * config/mips/mips.c (enum mips_builtin_type): Add
5828 MIPS_BUILTIN_MSA_TEST_BRANCH.
5829 (mips_gen_const_int_vector_shuffle): New prototype.
5830 (mips_const_vector_bitimm_set_p): New function.
5831 (mips_const_vector_bitimm_clr_p): Likewise.
5832 (mips_const_vector_same_val_p): Likewise.
5833 (mips_const_vector_same_bytes_p): Likewise.
5834 (mips_const_vector_same_int_p): Likewise.
5835 (mips_const_vector_shuffle_set_p): Likewise.
5836 (mips_symbol_insns): Forbid loading symbols via immediate for
5838 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
5840 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
5842 (mips_lx_address_p): Add support load indexed address for MSA.
5843 (mips_address_insns): Add calculation of instructions needed for
5844 stores and loads for MSA.
5845 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
5846 CONST_VECTOR for MSA and let it fall through.
5847 (mips_ldst_scaled_shift): New function.
5848 (mips_subword_at_byte): Likewise.
5849 (mips_msa_idiv_insns): Likewise.
5850 (mips_legitimize_move): Validate MSA moves.
5851 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
5852 calculation of costs for MSA division.
5853 (mips_split_move_p): Check if MSA moves need splitting.
5854 (mips_split_move): Split MSA moves if necessary.
5855 (mips_split_128bit_move_p): New function.
5856 (mips_split_128bit_move): Likewise.
5857 (mips_split_msa_copy_d): Likewise.
5858 (mips_split_msa_insert_d): Likewise.
5859 (mips_split_msa_fill_d): Likewise.
5860 (mips_output_move): Handle MSA moves.
5861 (mips_expand_msa_branch): New function.
5862 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
5863 Reinstate 'y' modifier.
5864 (mips_file_start): Add MSA .gnu_attribute.
5865 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
5867 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
5868 (mips_class_max_nregs): Add register size for MSA supported mode.
5869 (mips_cannot_change_mode_class): Allow conversion between MSA
5870 vector modes and TImode.
5871 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
5873 (mips_secondary_reload_class): Force MSA loads/stores via memory.
5874 (mips_preferred_simd_mode): Add preffered modes for MSA.
5875 (mips_vector_mode_supported_p): Add MSA supported modes.
5876 (mips_autovectorize_vector_sizes): New function.
5877 (mips_msa_output_division): Likewise.
5878 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
5879 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
5880 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
5881 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
5882 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
5883 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
5884 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
5885 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
5886 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
5887 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
5888 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
5889 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
5890 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
5891 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
5892 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
5893 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
5894 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
5895 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
5896 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
5897 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
5898 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
5899 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
5900 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
5901 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
5902 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
5903 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
5904 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
5905 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
5906 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
5907 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
5908 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
5909 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
5910 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
5911 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
5912 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
5913 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
5914 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
5915 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
5916 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
5917 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
5918 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
5919 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
5920 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
5921 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
5922 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5923 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5924 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5925 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5926 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5927 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5928 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5929 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5930 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
5931 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
5932 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
5933 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
5934 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
5935 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
5936 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
5937 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
5938 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
5939 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
5940 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
5941 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
5942 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
5943 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
5944 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
5945 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
5946 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
5947 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
5948 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
5949 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
5950 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
5951 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
5952 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
5953 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
5954 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
5955 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
5956 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
5957 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
5958 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
5959 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
5960 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
5961 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
5962 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
5963 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
5964 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
5965 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
5966 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
5967 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
5968 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
5969 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
5970 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
5971 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
5972 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
5973 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
5974 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
5975 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
5976 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
5977 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
5978 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
5979 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
5980 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
5981 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
5982 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
5983 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
5984 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
5985 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
5986 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
5987 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
5988 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
5989 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
5990 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
5991 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
5992 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
5993 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
5994 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
5995 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
5996 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
5997 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
5998 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
5999 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
6000 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
6001 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
6002 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
6003 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
6004 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
6005 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
6006 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
6007 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
6008 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
6009 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
6010 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
6011 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
6012 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
6013 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
6014 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
6015 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
6016 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
6017 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
6018 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
6019 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
6020 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
6021 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
6022 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
6023 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
6024 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
6025 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
6026 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
6027 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
6028 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
6030 (mips_get_builtin_decl_index): New array.
6031 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
6032 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
6033 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
6034 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
6035 (mips_init_builtins): Initialize mips_get_builtin_decl_index
6037 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
6039 (mips_expand_builtin_insn): Prepare operands for
6040 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
6041 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
6042 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
6043 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
6044 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
6045 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
6046 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
6047 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
6048 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
6049 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
6050 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
6051 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
6052 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
6053 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
6054 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
6055 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
6056 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
6057 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
6058 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
6059 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
6060 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
6061 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
6062 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
6063 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
6064 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
6065 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
6066 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
6067 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
6068 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
6069 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
6070 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
6071 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
6072 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
6073 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
6074 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
6075 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
6076 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
6077 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
6078 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
6079 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
6080 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
6081 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
6082 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
6083 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
6084 These are set implicitly and an error is reported if overridden.
6085 (mips_expand_builtin_msa_test_branch): New function.
6086 (mips_expand_msa_shuffle): Likewise.
6087 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
6088 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
6089 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
6090 (mips_expand_vec_unpack): Add support for MSA.
6091 (mips_expand_vector_init): Likewise.
6092 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
6093 instead of const0_rtx.
6094 (mips_msa_vec_parallel_const_half): New function.
6095 (mips_gen_const_int_vector): Likewise.
6096 (mips_gen_const_int_vector_shuffle): Likewise.
6097 (mips_expand_msa_cmp): Likewise.
6098 (mips_expand_vec_cond_expr): Likewise.
6099 * config/mips/mips.h
6100 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
6101 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
6103 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
6104 (ISA_HAS_MSA): New macro.
6105 (UNITS_PER_MSA_REG): Likewise.
6106 (BITS_PER_MSA_REG): Likewise.
6107 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
6108 (MSA_REG_FIRST): New macro.
6109 (MSA_REG_LAST): Likewise.
6110 (MSA_REG_NUM): Likewise.
6111 (MSA_REG_P): Likewise.
6112 (MSA_REG_RTX_P): Likewise.
6113 (MSA_SUPPORTED_MODE_P): Likewise.
6114 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
6115 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
6116 * config/mips/mips.md: Include mips-msa.md.
6117 (alu_type): Add simd_add.
6118 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
6119 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
6120 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
6121 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
6122 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
6123 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
6124 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
6125 simd_move, simd_load, simd_store. Choose "multi" for moves
6127 (qword_mode): New attribute.
6128 (insn_count): Add instruction count for quad moves.
6129 Increase the count for MIPS SIMD division.
6130 (UNITMODE): Add UNITMODEs for vector types.
6131 (addsub): New code iterator.
6132 * config/mips/mips.opt (mmsa): New option.
6133 * config/mips/msa.h: New file.
6134 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
6136 * config/mips/mti-linux.h: Likewise.
6137 * config/mips/predicates.md
6138 (const_msa_branch_operand): New constraint.
6139 (const_uimm3_operand): Likewise.
6140 (const_uimm4_operand): Likewise.
6141 (const_uimm5_operand): Likewise.
6142 (const_uimm8_operand): Likewise.
6143 (const_imm5_operand): Likewise.
6144 (aq10b_operand): Likewise.
6145 (aq10h_operand): Likewise.
6146 (aq10w_operand): Likewise.
6147 (aq10d_operand): Likewise.
6148 (const_m1_operand): Likewise.
6149 (reg_or_m1_operand): Likewise.
6150 (const_exp_2_operand): Likewise.
6151 (const_exp_4_operand): Likewise.
6152 (const_exp_8_operand): Likewise.
6153 (const_exp_16_operand): Likewise.
6154 (const_vector_same_val_operand): Likewise.
6155 (const_vector_same_simm5_operand): Likewise.
6156 (const_vector_same_uimm5_operand): Likewise.
6157 (const_vector_same_uimm6_operand): Likewise.
6158 (const_vector_same_uimm8_operand): Likewise.
6159 (par_const_vector_shf_set_operand): Likewise.
6160 (reg_or_vector_same_val_operand): Likewise.
6161 (reg_or_vector_same_simm5_operand): Likewise.
6162 (reg_or_vector_same_uimm6_operand): Likewise.
6163 * doc/extend.texi (MIPS SIMD Architecture Functions): New
6165 * doc/invoke.texi (-mmsa): Document new option.
6167 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6169 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
6170 * configure: Regenerate.
6171 * config.in: Regenerate.
6172 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
6174 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
6175 (ENDFILE_VTV_SPEC): Define.
6177 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
6179 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
6180 registers in all interrupt handlers if necessary.
6181 (rl78_option_override): Add warning.
6182 (MUST_SAVE_MDUC_REGISTERS): New macro.
6183 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
6184 * config/rl78/rl78.c (check_mduc_usage): New function.
6185 (mduc_regs): New structure to hold MDUC register data.
6186 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
6187 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
6188 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
6189 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
6190 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
6191 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
6193 2016-05-09 Bin Cheng <bin.cheng@arm.com>
6195 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
6196 (tree-ssa-loop-niter.h): Ditto.
6197 (idx_within_array_bound, ref_within_array_bound): New functions.
6198 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
6199 Factor out check on writable base object to ...
6200 (base_object_writable): ... here.
6202 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6204 * config/arm/arm.md (probe_stack): Add modes to set source
6207 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
6209 * regrename.c (base_reg_class_for_rename): New static function.
6210 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
6212 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
6214 * cgraph.c (thunk_adjust): Export.
6215 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
6216 * cgraphunit.c (thunk_adjust): Export.
6217 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
6219 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
6221 * tree-inline.c (expand_call_inline): Expand thunks inline.
6223 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
6226 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
6227 (*sse2_vd_cvtss2sd): Ditto.
6228 * config/i386/i386.md
6229 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
6230 Generate *sse2_vd_cvtsd2ss pattern.
6231 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
6232 Generate *sse2_vd_cvtss2sd pattern.
6234 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
6236 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
6237 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
6240 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
6242 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
6243 * config/sh/sh.c: Define and declare variables on first use throughout
6245 (current_function_interrupt): Change to bool type.
6246 (frame_insn): Rename to emit_frame_insn and update users.
6247 (push_regs): Use bool for 'interrupt_handler' argument.
6248 (save_schedule_s): Remove.
6249 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
6250 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
6251 targetm.asm_out.unaligned_op.di.
6252 (gen_far_branch): Remove redundant forward declaration.
6253 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
6254 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
6255 (sh_set_return_address, sh_function_ok_for_sibcall,
6256 scavenge_reg): Update comments.
6257 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
6258 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
6259 (sh_attr_renesas_p): Remove unnecessary parentheses.
6260 (branch_dest): Simplify.
6261 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
6262 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
6263 (CUMULATIVE_ARGS): Change macro to typedef.
6264 (current_function_interrupt): Change to bool type.
6265 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
6266 Surround with __cplusplus ifdef.
6267 (sh_compare_op0, sh_compare_op1): Remove.
6268 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
6270 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
6272 * config/arm/arm.md: (arch): Add neon.
6273 (arch_enabled): Return yes for arch neon when TARGET_NEON.
6274 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
6275 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
6276 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
6277 attributes for alt renumbering. Mark alt 3 as non-predicable.
6278 (thumb2_movdf_vfp): Likewise.
6280 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
6282 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
6283 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
6284 (*andqi_1): Add preferred_for_speed attribute to disparage
6285 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
6286 (*<code>qi_1): Ditto.
6287 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
6288 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
6289 (*ashlqi3_1): Ditto.
6290 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
6291 Add preferred_for_size attribute to disparage alternative 0 and
6292 preferred_for_speed attribute to disparage alternative 1 for
6293 TARGET_PARTIAL_REG_STALL targets.
6295 2016-05-07 Tom de Vries <tom@codesourcery.com>
6297 PR tree-optimization/70956
6298 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
6301 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
6303 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
6304 * config/sh/sh.c (sh_cbranch_distance): Implement it.
6305 * config/sh/sh.md (branch_zero): Remove define_attr.
6306 (define_delay): Disable delay slot if branch distance is one insn.
6308 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
6310 * config/i386/i386.md (LEAMODE): New mode attribute.
6311 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
6312 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
6313 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
6314 operand 2 predicate.
6315 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
6316 (*lea<mode>_general_3): Ditto.
6317 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
6319 2016-05-06 Jakub Jelinek <jakub@redhat.com>
6321 * genmddump.c (main): Convert argv from char ** to const char **.
6323 2016-05-06 David Malcolm <dmalcolm@redhat.com>
6325 * coretypes.h (OVERRIDE): New macro.
6328 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
6330 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
6331 allow coalescing if the types are compatible.
6333 2016-05-06 David Malcolm <dmalcolm@redhat.com>
6335 * pass_manager.h (pass_manager::register_pass_name): New method.
6336 (pass_manager::get_pass_by_name): New method.
6337 (pass_manager::create_pass_tab): New method.
6338 (pass_manager::m_name_to_pass_map): New field.
6339 * passes.c (name_to_pass_map): Delete global in favor of field
6340 "m_name_to_pass_map" of pass_manager.
6341 (register_pass_name): Rename from a function to...
6342 (pass_manager::register_pass_name): ...this method, updating
6343 for renaming of global "name_to_pass_map" to field
6344 "m_name_to_pass_map".
6345 (create_pass_tab): Rename from a function to...
6346 (pass_manager::create_pass_tab): ...this method, updating
6347 for renaming of global "name_to_pass_map" to field.
6348 (get_pass_by_name): Rename from a function to...
6349 (pass_manager::get_pass_by_name): ...this method.
6350 (enable_disable_pass): Convert use of get_pass_by_name to
6351 a method call, locating the pass_manager singleton.
6353 2016-05-06 David Malcolm <dmalcolm@redhat.com>
6355 * genattr-common.c (main): Convert argv from char ** to const char **.
6356 * genattr.c (main): Likewise.
6357 * genattrtab.c (main): Likewise.
6358 * genautomata.c (initiate_automaton_gen): Likewise.
6360 * gencodes.c (main): Likewise.
6361 * genconditions.c (main): Likewise.
6362 * genconfig.c (main): Likewise.
6363 * genconstants.c (main): Likewise.
6364 * genemit.c (main): Likewise.
6365 * genenums.c (main): Likewise.
6366 * genextract.c (main): Likewise.
6367 * genflags.c (main): Likewise.
6368 * genmddeps.c (main): Likewise.
6369 * genopinit.c (main): Likewise.
6370 * genoutput.c (main): Likewise.
6371 * genpeep.c (main): Likewise.
6372 * genpreds.c (main): Likewise.
6373 * genrecog.c (main): Likewise.
6374 * gensupport.c (init_rtx_reader_args_cb): Likewise.
6375 (init_rtx_reader_args): Likewise.
6376 * gensupport.h (init_rtx_reader_args_cb): Likewise.
6377 (init_rtx_reader_args): Likewise.
6378 * gentarget-def.c (main): Likewise.
6379 * read-md.c (read_md_files): Likewise.
6380 * read-md.h (read_md_files): Likewise.
6382 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
6384 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
6385 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
6386 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
6387 Remove unused predicate.
6388 (register_and_not_fp_reg_operand): Ditto.
6390 2016-05-06 Martin Liska <mliska@suse.cz>
6392 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
6393 instead of vec as the vector is local to the function.
6395 2016-05-06 Jakub Jelinek <jakub@redhat.com>
6397 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
6398 avx512bw alternative.
6400 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
6401 before the ashr<mode>3 pattern.
6403 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
6404 v instead of x in vex or maybe_vex alternatives, use
6405 maybe_evex instead of vex in prefix.
6407 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
6408 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
6409 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
6410 in vex or maybe_vex alternatives, use maybe_evex instead of vex
6413 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
6414 v instead of x in vex or maybe_vex alternatives, use
6415 maybe_evex instead of vex in prefix.
6417 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
6418 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
6419 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
6420 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
6421 alternatives, use maybe_evex instead of vex in prefix.
6423 * config/i386/sse.md (vec_interleave_lowv4sf,
6424 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
6425 v instead of x in vex or maybe_vex alternatives, use
6426 maybe_evex instead of vex in prefix.
6428 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
6429 v instead of x in vex or maybe_vex alternatives, use
6430 maybe_evex instead of vex in prefix.
6432 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
6433 v constraint instead of x.
6435 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
6437 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
6438 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
6441 2016-05-06 Richard Biener <rguenther@suse.de>
6443 PR tree-optimization/70948
6444 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6445 Properly clobber all fields of va_list for __builtin_va_start.
6447 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
6450 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
6451 loop latch destination.
6453 2016-05-06 Martin Liska <mliska@suse.cz>
6455 * tree-ssa-uninit.c: Apply manual changes
6456 to the GNU coding style.
6457 (prune_uninit_phi_opnds): Rename from
6458 prune_uninit_phi_opnds_in_unrealizable_paths.
6460 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
6462 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
6463 mspace): Remove deprecated options.
6464 * doc/invoke.texi (SH options): Remove -mspace.
6466 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
6468 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
6470 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
6472 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
6473 corresponding combine split pattern.
6475 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
6478 * config/sh/predicates.md (long_displacement_mem_operand): New.
6479 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
6480 Add movi20, movi20s alternatives. Adjust length attribute for
6482 (movsi_ie): Allow for any FPU. Adjust length attribute for
6484 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
6485 attribute for alternatives.
6486 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
6487 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
6488 length attribute for alternatives.
6490 2016-05-06 Richard Biener <rguenther@suse.de>
6492 PR tree-optimization/70960
6493 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
6495 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
6498 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
6499 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
6501 2016-05-06 Marek Polacek <polacek@redhat.com>
6504 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
6506 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
6509 * config/sh/sh.md (*rotcr): Add another variant.
6511 2016-05-06 Richard Biener <rguenther@suse.de>
6514 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
6516 2016-05-06 Richard Biener <rguenther@suse.de>
6519 * fold-const.c (split_tree): Always convert to the original type
6522 2016-05-06 Richard Biener <rguenther@suse.de>
6524 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
6525 (fwprop_addr): Likewise.
6527 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
6530 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
6532 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
6533 * config/i386/i386.md (push mem splitter): Use find_constant_src in
6534 the splitter condition.
6535 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
6536 the splitter condition.
6537 (FP float_extend load splitter): Ditto.
6539 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
6541 * config/i386/i386.md (peehole2 patterns): Change true_regnum
6542 to REGNO in all peephole2 patterns.
6543 (post-reload splitters): Change true_regnum to REGNO in
6544 post-reload splitters.
6545 (zero_extend splitters): Use general_reg_operand and
6546 nonimmediate_gr_operand predicates.
6548 2016-05-05 Jakub Jelinek <jakub@redhat.com>
6550 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
6551 v constraint instead of x.
6553 2016-05-05 Alan Modra <amodra@gmail.com>
6556 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
6557 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
6558 TARGET_NO_FP_IN_TOC for -mrelocatable.
6559 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
6560 TARGET_RELOCATABLE test.
6561 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6562 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6563 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
6564 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6565 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6566 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
6567 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6568 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6569 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
6570 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
6572 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
6573 (rs6000_stack_info): Likewise.
6574 (rs6000_elf_asm_out_constructor): Likewise.
6575 (rs6000_elf_asm_out_destructor): Likewise.
6576 (rs6000_elf_declare_function_name): Likewise.
6577 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
6578 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
6581 2016-05-05 Alan Modra <amodra@gmail.com>
6583 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
6585 2016-05-05 Alan Modra <amodra@gmail.com>
6587 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
6588 out-of-line gpr restore for one or two regs if that would add
6591 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
6594 * config/i386/i386.md
6595 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
6596 Change to post-epilogue_completed late splitter. Use sse_reg_operand
6597 as operand 0 predicate.
6598 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
6600 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
6601 Ditto. Emit the pattern using RTX.
6603 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
6604 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
6605 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
6606 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
6608 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
6609 sse_reg_operand as operand 0 predicate.
6611 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
6612 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
6613 instead of gen_rtx_REG.
6614 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
6617 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
6619 * function.c (emit_use_return_register_into_block): Delete.
6620 (gen_return_pattern): Delete.
6621 (emit_return_into_block): Delete.
6622 (active_insn_between): Delete.
6623 (convert_jumps_to_returns): Delete.
6624 (emit_return_for_exit): Delete.
6625 (thread_prologue_and_epilogue_insns): Delete all code dealing with
6626 simple_return for shrink-wrapped blocks.
6627 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
6628 end of blocks that need one.
6629 (get_unconverted_simple_return): Delete.
6630 (convert_to_simple_return): Delete.
6631 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
6632 (convert_to_simple_return): Ditto.
6634 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
6636 * cfgcleanup.c (bb_is_just_return): New function.
6637 (try_optimize_cfg): Simplify jumps to return, branches to return,
6638 and branches around return.
6640 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
6642 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
6645 2016-05-04 Jakub Jelinek <jakub@redhat.com>
6649 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
6650 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
6651 assert flags & OEP_HASH_CHECK, instead of asserting it
6652 never happens. Handle TARGET_EXPR.
6653 * fold-const.c (operand_equal_p): For hash verification,
6654 or in OEP_HASH_CHECK into flags.
6656 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
6658 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
6660 (compute_samebase_partition_bases): Fix typo.
6662 2016-05-04 Jakub Jelinek <jakub@redhat.com>
6664 * config/i386/sse.md (vec_interleave_highv8sf,
6665 vec_interleave_lowv8sf, vec_interleave_highv4df,
6666 vec_interleave_lowv4df): Remove constraints from expanders.
6668 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
6670 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
6672 * tree-inline.c (expand_call_inline): Fix path dealing with
6673 making lhs of call statement undefined.
6675 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
6677 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
6678 Check availability on NODE, too.
6679 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
6680 (cgraph_node::call_for_symbol_and_aliases): Likewise.
6681 (varpool_node::call_for_symbol_and_aliase): Likewise.
6682 * ipa-pure-const.c (add_new_function): Analyze all bodies.
6683 (propagate_pure_const): Propagate across interposable functions, too.
6684 (skip_function_for_local_pure_const): Do not skip interposable bodies
6686 (pass_local_pure_const::execute): Update.
6688 2016-05-04 Marek Polacek <polacek@redhat.com>
6690 * doc/invoke.texi: Document -Wdangling-else.
6692 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
6694 * config.gcc: Error out when conflicting multilib is detected. Do not
6695 loop over multilibs since no combination is legal.
6697 2016-05-04 Alan Modra <amodra@gmail.com>
6699 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
6700 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
6701 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
6704 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
6706 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
6707 Clean up p5600 comments.
6709 2016-05-04 Richard Biener <rguenther@suse.de>
6711 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
6712 constructor simplifications.
6713 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
6715 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
6717 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
6718 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
6719 result.set_rtx is null instead of aborting.
6720 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
6722 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
6723 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
6724 *mov<mode>_store_postinc): New patterns.
6726 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
6728 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
6729 as commutative. Check both conversions are NOP.
6730 ((A & B) OP (C & B)): Remove.
6732 2016-05-04 Alan Modra <amodra@gmail.com>
6734 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
6736 2016-05-04 Alan Modra <amodra@gmail.com>
6739 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
6740 when cr2,3,4 are all fixed regs.
6742 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
6744 PR rtl-optimization/57193
6745 * opts.c (default_options_table): Revert OPT_frename_registers change.
6746 * doc/invoke.texi (-frename-registers, -O2): Likewise.
6748 2016-05-03 Martin Sebor <msebor@redhat.com>
6751 * builtins.c (fold_builtin_FILE): New function.
6752 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
6753 (fold_builtin_0): Call them.
6754 * gimplify.c (gimplify_call_expr): Remove the handling of
6755 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
6758 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
6759 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
6763 * doc/extend.texi (Function Names as Strings): Update __func__,
6764 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
6767 2016-05-03 Jakub Jelinek <jakub@redhat.com>
6768 Richard Biener <rguenther@suse.de>
6770 PR tree-optimization/70916
6771 * tree-if-conv.c: Include cfganal.h.
6772 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
6773 and remove_fake_exit_edges around the optimization pass.
6775 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
6777 * cgraph.c (symbol_table::create_edge): Set inline_failed.
6778 (cgraph_edge::make_direct): Likewise.
6779 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
6780 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
6781 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
6782 (CIF_THUNK): New code.
6783 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
6784 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
6785 (compute_inline_parameters): Set inline_failed for thunks.
6786 (inline_analyze_function): Cleanup.
6787 * ipa-inline.c (can_inline_edge_p): Do not deal with
6788 call_stmt_cannot_inline_p.
6789 (can_early_inline_edge_p): Likewise.
6790 (early_inliner): Initialize inline_failed.
6791 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
6793 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
6795 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
6796 from nonimm_ssenomem_operand.
6797 (nonimm_ssenomem_operand): New predicate.
6798 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
6799 as operand 0 predicate.
6800 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
6801 Disable unsupported alternatives using "enabled" attribute.
6802 Use register_ssemem_operand as operand 0 predicate.
6803 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
6805 2016-05-03 Marek Polacek <polacek@redhat.com>
6808 * input.c (expansion_point_location): New function.
6809 * input.h (expansion_point_location): Declare.
6811 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
6813 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
6814 occurence with frame_offset_ ones.
6816 2016-05-03 Alan Modra <amodra@gmail.com>
6818 PR rtl-optimization/70890
6819 * ira.c (combine_and_move_insns): When moving def_insn, remove
6822 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
6824 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
6825 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
6826 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
6827 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
6829 2016-05-03 Alan Modra <amodra@gmail.com>
6831 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
6832 for SAVE_MULTIPLE/STORE_MULTIPLE.
6834 2016-05-03 Jakub Jelinek <jakub@redhat.com>
6836 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
6837 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
6839 2016-05-03 Richard Biener <rguenther@suse.de>
6841 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
6843 (gimplify_arg): Likewise.
6844 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
6845 re-writing the result to a decl if required.
6846 (internal_get_tmp_var): Add allow_ssa parameter
6847 and override into_ssa with it.
6848 (get_formal_tmp_var): Adjust.
6849 (get_initialized_tmp_var): Add allow_ssa parameter.
6850 (gimplify_arg): Add allow_ssa parameter and avoid generating
6851 SSA names for the result false.
6852 (gimplify_call_expr): If the call may return twice do not
6853 gimplify parameters into SSA.
6854 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
6855 (gimplify_modify_expr): Adjust assert. For noreturn calls
6856 with a SSA name LHS adjust its def.
6857 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
6858 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
6859 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
6860 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
6861 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
6862 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
6863 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
6864 (optimize_target_teams): Do not allow SSA names for clause operands.
6865 (gimplify_expr): Likewise for where we mark the result addressable.
6866 * passes.def (pass_init_datastructures): Remove.
6867 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
6868 (rewrite_stmt): Likewise.
6869 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
6870 (replace_locals_op): Replace SSA names.
6871 (copy_gimple_seq_and_replace_locals): Init src_cfun.
6872 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
6873 * cgraph.c (release_function_body): Free CFG annotations only
6874 when we have a CFG. Simplify.
6875 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
6876 force_gimple_operand instead of get_initialized_tmp_var.
6877 * tree-pass.h (make_pass_init_datastructures): Remove.
6878 * tree-ssa.c (execute_init_datastructures): Remove.
6879 (pass_data_init_datastructures): Likewise.
6880 (class pass_init_datastructures): Likewise.
6881 (make_pass_init_datastructures): Likewise.
6882 * omp-low.c (create_omp_child_function): Init SSA data structures.
6883 (grid_expand_target_grid_body): Likewise.
6884 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
6885 name before adding it to names_to_release.
6886 (remove_bb): Always release SSA defs.
6887 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
6888 before dereferencing it.
6889 * cgraphunit.c (init_lowered_empty_function): Always
6890 int SSA data structures.
6891 * tree-ssanames.c (release_defs): Remove assert that we are in
6893 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
6895 2016-05-03 Jakub Jelinek <jakub@redhat.com>
6896 Uros Bizjak <ubizjak@gmail.com>
6898 PR rtl-optimization/70467
6899 * config/i386/predicates.md (x86_64_hilo_int_operand,
6900 x86_64_hilo_general_operand): New predicates.
6901 * config/i386/constraints.md (Wd): New constraint.
6902 * config/i386/i386.md (mode attr di): Use Wd instead of e.
6903 (general_hilo_operand): New mode attr.
6904 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
6905 instead of <general_operand>.
6906 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
6907 x86_64_hilo_general_operand instead of <general_operand>.
6909 2016-05-03 Jakub Jelinek <jakub@redhat.com>
6911 PR tree-optimization/70916
6912 * tree-if-conv.c (constant_or_ssa_name): Removed.
6913 (fold_build_cond_expr): Use is_gimple_val instead of
6914 constant_or_ssa_name.
6916 PR tree-optimization/70916
6917 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
6918 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
6921 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
6922 (optimize_atomic_bit_test_and): New function.
6923 (pass_fold_builtins::execute): Use it.
6924 * optabs.def (atomic_bit_test_and_set_optab,
6925 atomic_bit_test_and_complement_optab,
6926 atomic_bit_test_and_reset_optab): New optabs.
6927 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
6928 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
6929 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
6930 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
6931 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
6932 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
6933 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
6934 * doc/md.texi (atomic_bit_test_and_set@var{mode},
6935 atomic_bit_test_and_complement@var{mode},
6936 atomic_bit_test_and_reset@var{mode}): Document.
6937 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
6938 atomic_bit_test_and_complement<mode>,
6939 atomic_bit_test_and_reset<mode>): New expanders.
6940 (atomic_bit_test_and_set<mode>_1,
6941 atomic_bit_test_and_complement<mode>_1,
6942 atomic_bit_test_and_reset<mode>_1): New insns.
6944 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
6946 PR rtl-optimization/70687
6947 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
6948 instead of unsigned HOST_WIDE_INT.
6950 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
6952 PR rtl-optimization/44281
6953 * hard-reg-set.h (struct target_hard_regs): New field
6954 x_fixed_nonglobal_reg_set.
6955 (fixed_nonglobal_reg_set): New macro.
6956 * reginfo.c (init_reg_sets_1): Initialize it.
6957 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
6959 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
6961 2016-05-03 Bin Cheng <bin.cheng@arm.com>
6963 PR tree-optimization/56541
6964 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
6965 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
6966 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
6967 (any_complicated_phi): new static variable.
6968 (aggressive_if_conv): delete.
6969 (if_convertible_phi_p): support phis with more than two arguments.
6970 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
6971 critical pred edges.
6972 (ifcvt_split_critical_edges): support phis with more than two
6973 arguments by checking new parameter. only split critical edges
6975 (tree_if_conversion): handle simd pragma marked loop using new
6976 local variable aggressive_if_conv. check any_complicated_phi.
6978 2016-05-03 Bin Cheng <bin.cheng@arm.com>
6980 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
6983 2016-05-03 Bin Cheng <bin.cheng@arm.com>
6985 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
6988 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
6990 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
6991 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
6992 define_insn_and_split.
6993 (mulsi3_i): New define_insn_and_split.
6994 (mulsi3_call): Convert to define_insn.
6995 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
6998 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
7000 * machmode.h (mode_complex): Add support to give the complex mode
7002 (GET_MODE_COMPLEX_MODE): Likewise.
7003 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
7004 stored by build_complex_type and gfc_build_complex_type instead of
7005 trying to figure out the appropriate mode based on the size. Raise
7006 an assertion error, if the type was not set.
7007 * genmodes.c (struct mode_data): Add field for the complex type of
7009 (blank_mode): Likewise.
7010 (make_complex_modes): Remember the complex mode created in the
7012 (emit_mode_complex): Write out the mode_complex array to map a
7013 type mode to the complex version.
7014 (emit_insn_modes_c): Likewise.
7015 * tree.c (build_complex_type): Set the complex type to use before
7016 calling layout_type.
7017 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
7018 support for __float128 complex datatypes.
7019 (rs6000_hard_regno_mode_ok): Likewise.
7020 (rs6000_setup_reg_addr_masks): Likewise.
7021 (rs6000_complex_function_value): Likewise.
7022 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
7023 __float128 and __ibm128 complex.
7024 (FLOAT128_IBM_P): Likewise.
7025 (ALTIVEC_ARG_MAX_RETURN): Likewise.
7026 * doc/extend.texi (Additional Floating Types): Document that
7027 -mfloat128 must be used to enable __float128. Document complex
7028 __float128 and __ibm128 support.
7030 2016-05-02 Jakub Jelinek <jakub@redhat.com>
7033 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
7034 char/short arguments promoted to int because of promote_prototypes.
7036 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
7038 * config/i386/predicates.md (register_ssemem_operand): New predicate.
7039 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
7040 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
7041 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
7042 alternatives using "enabled" attribute. Use register_ssemem_operand
7043 as operand 1 predicate.
7044 (*cmpi<unord>xf_i387): Split XFmode pattern from
7045 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
7046 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
7047 *absneg<mode>2_i387. Disable unsupported alternatives using
7048 "enabled" attribute.
7049 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
7051 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
7053 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
7055 (oacc_loop_process): Check mask for loop termination.
7057 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
7059 * cif-code.def (CIF_THUNK): Add.
7060 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
7063 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
7065 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
7066 (dump_inline_summary): Dump it.
7067 (fp_expression_p): New predicate.
7068 (estimate_function_body_sizes): Use it.
7069 (inline_merge_summary): Merge fp_expressions.
7070 (inline_read_section): Read fp_expressions.
7071 (inline_write_summary): Write fp_expressions.
7072 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
7073 codegen boundary if either caller or callee is !fp_expressions.
7074 * ipa-inline.h (inline_summary): Add fp_expressions.
7075 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
7076 to fp_expressions be sure the fp generation flags are updated.
7078 2016-05-02 Jakub Jelinek <jakub@redhat.com>
7080 PR rtl-optimization/70467
7081 * cse.c (cse_insn): Handle no-op MEM moves after folding.
7083 PR rtl-optimization/70467
7084 * ipa-pure-const.c (check_call): Handle internal calls even in
7085 ipa mode like in local mode.
7087 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
7089 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
7091 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
7093 * match.pd (X u< X, X u> X): New transformations.
7095 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
7097 * flag-types.h (enum warn_strict_overflow_code): Move ...
7098 * coretypes.h: ... here.
7099 * fold-const.h (fold_overflow_warning): Declare.
7100 * fold-const.c (fold_overflow_warning): Make non-static.
7101 (fold_comparison): Move the transformation of X +- C1 CMP C2
7102 into X CMP C2 -+ C1 ...
7103 * match.pd: ... here.
7104 * gimple-fold.c (fold_stmt_1): Protect with
7105 fold_defer_overflow_warnings.
7107 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
7109 * omp-low.c (struct oacc_loop): Add 'inner' field.
7110 (new_oacc_loop_raw): Initialize it to zero.
7111 (oacc_loop_fixed_partitions): Initialize it.
7112 (oacc_loop_auto_partitions): Partition outermost loop to outermost
7113 available partitioning.
7115 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
7117 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
7119 (umulsidi3): Likewise.
7120 (indirect_jump): Fix jump instruction assembly patterns.
7122 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
7125 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
7126 (nvptx_function_value): Assert non-NULL cfun.
7128 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
7130 PR rtl-optimization/70886
7131 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
7133 * cselib.h (rtx_equal_for_cselib_1): Declare.
7134 (rtx_equal_for_cselib_p: New inline function.
7135 * cselib.c (rtx_equal_for_cselib_p): Delete.
7136 (rtx_equal_for_cselib_1): Make public.
7138 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
7140 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
7141 (register_mixssei387nonimm_operand): Remove predicate.
7142 * config/i386/i386.md (*fop_<mode>_comm): Merge from
7143 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
7144 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
7145 for TARGET_MIX_SSE_I387 alternatives.
7146 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
7147 Disable unsupported alternatives using "enabled" attribute. Use
7148 nonimm_ssenomem_operand as operand 1 predicate. Also check
7149 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
7151 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
7153 * tree.c (cst_and_fits_in_hwi): Simplify.
7155 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
7157 * tree.h (wi::to_wide): New function.
7158 * expr.c (expand_expr_real_1): Use wi::to_wide.
7159 * fold-const.c (int_const_binop_1): Likewise.
7160 (extract_muldiv_1): Likewise.
7162 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
7164 * wide-int.h: Update offset_int and widest_int documentation.
7165 (WI_SIGNED_SHIFT_RESULT): New macro.
7166 (wi::binary_shift): Define signed_shift_result_type for
7167 shifts on offset_int- and widest_int-like types.
7168 (generic_wide_int): Support <<= and >>= if << and >> are supported.
7169 * tree.h (int_bit_position): Use shift operators instead of wi::
7171 * alias.c (adjust_offset_for_component_ref): Likewise.
7172 * expr.c (get_inner_reference): Likewise.
7173 * fold-const.c (fold_comparison): Likewise.
7174 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
7175 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
7176 * tree-dfa.c (get_ref_base_and_extent): Likewise.
7177 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
7178 (stmt_kills_ref_p): Likewise.
7179 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
7180 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
7181 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7182 (ao_ref_init_from_vn_reference): Likewise.
7184 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
7186 * wide-int.h: Update offset_int and widest_int documentation.
7187 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
7188 (wi::binary_traits): Allow ordered comparisons between offset_int and
7189 offset_int, between widest_int and widest_int, and between either
7190 of these types and basic C types.
7191 (operator <, <=, >, >=): Define for the same combinations.
7192 * tree.h (tree_int_cst_lt): Use comparison operators instead
7193 of wi:: comparisons.
7194 (tree_int_cst_le): Likewise.
7195 * gimple-fold.c (fold_array_ctor_reference): Likewise.
7196 (fold_nonarray_ctor_reference): Likewise.
7197 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
7198 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
7199 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
7200 * tree-sra.c (completely_scalarize): Likewise.
7201 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
7202 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
7203 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
7204 (check_for_binary_op_overflow): Likewise.
7205 (search_for_addr_array): Likewise.
7206 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
7208 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
7210 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
7211 (arc_save_restore): Likewise.
7212 (arc_dwarf_register_span): Likewise.
7213 (arc_output_pic_addr_const): Initialize suffix variable.
7215 2016-05-02 Martin Liska <mliska@suse.cz>
7217 * symbol-summary.h (function_summary::function_summary):
7218 Remove checking assert for all cgraph nodes.
7219 (function_summary::get): Check summary_uid.
7220 (symtab_insertion): Check summary_uid.
7222 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
7224 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
7225 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
7227 (arc_dwarf_register_span): Remove enum keyword.
7228 (compact_memory_operand_p): New function.
7229 * config/arc/arc.h (reg_class): Add code density register classes.
7230 (REG_CLASS_NAMES): Likewise.
7231 (REG_CLASS_CONTENTS): Likewise.
7232 * config/arc/arc.md (*movqi_insn): Add code density instructions.
7233 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
7234 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
7235 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
7236 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
7238 (h, Rcd, Rsd, Rzd): New register constraints.
7239 (T): Use compact_memory_operand_p function.
7240 * config/arc/predicates.md (compact_load_memory_operand): Remove.
7242 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
7244 * config/sh/sh.md (*negnegt, *movtt): Remove.
7246 2016-05-02 Marek Polacek <polacek@redhat.com>
7247 Tom de Vries <tom@codesourcery.com>
7249 PR tree-optimization/70700
7250 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
7251 bigger than FIRST_REF_NODE.
7253 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
7256 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
7258 (prepare_cbranch_operands): Don't use scratch register. Assume that
7259 function is used when pseudos can be created.
7260 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
7261 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
7262 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
7263 define_expand. Allow it only when pseudos can be created.
7264 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
7266 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
7268 * config/i386/constraints.md (BC): Only allow -1 operands.
7269 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
7270 Add "enabled" attribute. Update XI mode attribute calculation.
7271 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
7272 (*movoi_internal_avx): Update XI mode attribute calculation.
7273 (*movti_internal): Ditto.
7275 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
7277 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
7278 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
7280 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
7282 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
7283 statement on instruction code. Remove trailing spaces.
7284 (altivec_expand_stv_builtin): Likewise.
7286 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
7288 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
7289 (TARGET_FPU_DOUBLE): Simplify.
7290 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
7291 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
7292 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
7293 with 'TARGET_FPU_DOUBLE'.
7294 * config/sh/sh.md: Likewise.
7296 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
7298 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
7299 SH_DIV_STR_FOR_SIZE): Remove.
7300 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
7301 SH_DIV_STR_FOR_SIZE): Remove.
7303 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
7305 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
7306 logical_reg_operand): Delete.
7307 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
7308 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
7309 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
7310 match_operand and match_test.
7311 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
7312 variables on their first use. Return bool values.
7313 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
7314 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
7315 arith_reg_operand for input operand. Remove empty constraints.
7317 (*xorsi3_compact): Rename to xorsi3.
7318 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
7319 (*zero_extend<mode>si2_disp_mem): Update comment.
7322 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
7324 * config/sh/t-sh: Remove SH5 support.
7325 * config.gcc: Likewise.
7326 * configure: Likewise.
7328 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7330 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
7332 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
7334 * config/sh/sh.c (register_sh_passes, sh_option_override,
7335 sh_print_operand, prepare_move_operands,
7336 sh_can_follow_jump): Remove TARGET_SH1 checks.
7337 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
7338 PROMOTE_MODE): Likewise.
7339 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
7342 2016-04-30 Alan Modra <amodra@gmail.com>
7344 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
7345 restoring when fixed_reg_p, but allow out-of-line or stmw save.
7346 Check for user regs later to avoid unnecessary looping over regs.
7347 Merge user reg check with non-saved reg check. Don't force
7348 inline VR restore when static chain used.
7349 (rs6000_frame_related): Omit eh_frame info for user regs when
7351 (fixed_regs_p): Delete.
7353 2016-04-30 Alan Modra <amodra@gmail.com>
7355 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
7356 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
7359 2016-04-30 Alan Modra <amodra@gmail.com>
7362 * config/rs6000/rs6000.c (fixed_reg_p): New function.
7363 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
7366 2016-04-30 Alan Modra <amodra@gmail.com>
7368 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
7369 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
7370 flag_pic test for Darwin.
7372 2016-04-30 Alan Modra <amodra@gmail.com>
7374 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
7375 throw_calls_crossed.
7376 (REG_FREQ_CALLS_CROSSED): Delete.
7377 (REG_N_THROWING_CALLS_CROSSED): Delete.
7378 * regstat.c (regstat_bb_compute_ri): Don't calculate
7379 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
7380 (dump_reg_info): Don't print call cross frequency.
7381 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
7382 and REG_N_THROWING_CALLS_CROSSED.
7384 2016-04-30 Alan Modra <amodra@gmail.com>
7386 * regs.h (struct reg_info_t): Delete live_length.
7387 (REG_LIVE_LENGTH): Delete macro.
7388 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
7389 local_live, local_processed and local_live_last_luid params.
7390 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
7392 (regstat_compute_ri): Adjust for above. Don't set
7394 (dump_reg_info): Don't print live length.
7395 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
7396 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
7397 Localize loop_depth var.
7399 2016-04-30 Alan Modra <amodra@gmail.com>
7401 * ira.c (enum valid_equiv): New.
7402 (validate_equiv_mem): Return enum.
7403 (update_equiv_mem): Create replacement in more cases.
7404 (add_store_equivs): Update validate_equiv_mem call.
7406 2016-04-30 Alan Modra <amodra@gmail.com>
7408 * ira.c (combine_and_move_insns): Rather than scanning insns,
7409 use DF infrastucture to find use and def insns.
7411 2016-04-30 Alan Modra <amodra@gmail.com>
7413 ira.c (combine_and_move_insns): Move invariant conditions..
7414 (ira.c): ..to here. Call combine_and_move_insns before
7415 add_store_equivs. Call grow_reg_equivs later. Allocate
7416 req_equiv later using max_reg_num() rather than global max_regno.
7417 (contains_replace_regs): Delete.
7418 (add_store_equivs): Remove contains_replace_regs test.
7420 2016-04-30 Alan Modra <amodra@gmail.com>
7422 * ira.c (struct equiv_mem_data): New.
7423 (equiv_mem, equiv_mem_modified): Delete static vars.
7424 (validate_equiv_mem_from_store): Use "data" param to communicate..
7425 (validate_equiv_mem): ..from here.
7427 2016-04-30 Alan Modra <amodra@gmail.com>
7429 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
7431 (update_reg_equivs): ..here. Move allocation and freeing of
7432 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
7433 end_alias_analysis to..
7436 2016-04-30 Alan Modra <amodra@gmail.com>
7438 * ira.c (pdx_subregs): Delete.
7439 (struct equivalence): Add pdx_subregs field.
7440 (set_paradoxical_subreg): Remove pdx_subregs param. Update
7442 (update_equiv_regs): Don't create or free pdx_subregs. Update
7445 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7447 * config/rs6000/altivec.h: Change definitions of vec_xl and
7449 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
7450 (LD_ELEMREV_V2DI): New.
7451 (LD_ELEMREV_V4SF): New.
7452 (LD_ELEMREV_V4SI): New.
7453 (LD_ELEMREV_V8HI): New.
7454 (LD_ELEMREV_V16QI): New.
7455 (ST_ELEMREV_V2DF): New.
7456 (ST_ELEMREV_V2DI): New.
7457 (ST_ELEMREV_V4SF): New.
7458 (ST_ELEMREV_V4SI): New.
7459 (ST_ELEMREV_V8HI): New.
7460 (ST_ELEMREV_V16QI): New.
7463 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7464 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
7465 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
7466 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
7467 (altivec_expand_builtin): Add handling for
7468 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
7469 (rs6000_invalid_builtin): Add error-checking for
7470 RS6000_BTM_P9_VECTOR.
7471 (altivec_init_builtins): Define builtins used to implement vec_xl
7473 (rs6000_builtin_mask_names): Define power9-vector.
7474 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
7475 (RS6000_BTM_P9_VECTOR): Define.
7476 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
7477 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
7478 (vsx_ld_elemrev_v2df): Likewise.
7479 (vsx_ld_elemrev_v4sf): Likewise.
7480 (vsx_ld_elemrev_v4si): Likewise.
7481 (vsx_ld_elemrev_v8hi): Likewise.
7482 (vsx_ld_elemrev_v16qi): Likewise.
7483 (vsx_st_elemrev_v2df): Likewise.
7484 (vsx_st_elemrev_v2di): Likewise.
7485 (vsx_st_elemrev_v4sf): Likewise.
7486 (vsx_st_elemrev_v4si): Likewise.
7487 (vsx_st_elemrev_v8hi): Likewise.
7488 (vsx_st_elemrev_v16qi): Likewise.
7489 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
7492 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
7494 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
7496 (simplify_control_stmt_condition_1): ... here. Recurse into
7497 BIT_AND_EXPRs and BIT_IOR_EXPRs.
7499 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
7502 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
7503 (zero_extendqi<mode>2_dot): Revert earlier conversion from
7504 define_insn_and_split to define_insn.
7505 (zero_extendqi<mode>2_dot2): Same.
7506 (extendqi<mode>2_dot): Same.
7507 (extendqi<mode>2_dot2): Same.
7509 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
7511 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
7512 (probe_stack): New expander.
7513 (probe_stack_<mode>): New insn pattern.
7515 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
7517 * config/i386/i386.md
7518 (operations with memory inputs setting flags peephole2):
7519 Remove uneeded REG_P checks. Cleanup pattern generation.
7521 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
7523 * tree-vect-loop.c (vect_transform_loop): Fix
7524 nb_iterations_upper_bound computation for vectorized loop.
7526 2016-04-29 Marek Polacek <polacek@redhat.com>
7527 Jakub Jelinek <jakub@redhat.com>
7530 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
7531 TARGET_EXPR_SLOT as a base.
7533 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
7535 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
7536 with 'rCm2' constraints to limit possible immediate size.
7537 (*load_zeroextendqisi_update): Likewise.
7538 (*load_signextendqisi_update): Likewise.
7539 (*loadhi_update): Likewise.
7540 (*load_zeroextendhisi_update): Likewise.
7541 (*load_signextendhisi_update): Likewise.
7542 (*loadsi_update): Likewise.
7543 (*loadsf_update): Likewise.
7545 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
7547 * config/i386/predicates.md (constm1_operand): Fix comparison.
7549 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
7551 * testsuite/gcc.target/arc/ieee_eq.c: New test.
7553 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
7555 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
7556 remaining SH5 related settings.
7557 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
7558 shmedia_prepare_call_address): Delete.
7559 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
7560 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
7561 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
7562 UNSUPPORTED_SH2A): Remove m5 checks.
7563 (sh_divide_strategy_e): Remove SH5 division strategies.
7564 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
7565 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
7567 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
7569 * config/s390/s390.c (s390_rtx_costs): Update documentation.
7571 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7573 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
7574 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
7576 * config/s390/vector.md ("mov<mode>"): Likewise.
7578 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
7580 * config/s390/constraints.md ("U", "W"): Invoke
7581 s390_mem_constraint with "ZR" and "ZT".
7582 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
7583 addresses when using LRA. Accept also short displacements for S
7584 and T constraints. Do not check for long displacement target for
7585 S and T constraints.
7586 (s390_mem_constraint): Remove handling of U and W constraints.
7587 * config/s390/s390.md (various patterns): Remove the short
7588 displacement constraints (Q and R) if a long displacement
7589 constraint is present. Add longdisp as required CPU capability.
7590 * config/s390/vector.md: Likewise.
7591 * config/s390/vx-builtins.md: Likewise.
7593 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7596 * reload1.c (reload): Call finish_spills before
7597 restarting reload loop. Skip select_reload_regs
7598 if update_eliminables_and_spill returns true.
7600 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
7602 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
7603 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
7604 (umulhisi3_imm): Update predicates and constraint letters.
7605 (umulhisi3_reg): Declare instruction as commutative.
7606 * config/arc/constraints.md (J12, J16): New constraints.
7607 * config/arc/predicates.md (short_unsigned_const_operand): New
7609 (arc_short_operand): Likewise.
7610 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
7612 2016-04-29 Richard Biener <rguenther@suse.de>
7614 PR tree-optimization/13962
7615 PR tree-optimization/65686
7616 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
7617 * tree-ssa-alias.c (ptrs_compare_unequal): New function
7618 using PTA to compare pointers.
7619 * match.pd: Add pattern for pointer equality compare simplification
7620 using ptrs_compare_unequal.
7622 2016-04-29 Richard Biener <rguenther@suse.de>
7624 * stor-layout.c (layout_type): Do not build a pointer-to-element
7627 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
7629 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
7630 Use SWI mode iterator. Use general_reg_operand predicate.
7631 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
7632 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
7635 2016-04-29 Jakub Jelinek <jakub@redhat.com>
7638 * fold-const.c (operand_equal_p): Don't verify hash value equality
7640 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
7643 2016-04-28 Jakub Jelinek <jakub@redhat.com>
7646 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
7647 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
7648 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
7649 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
7650 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
7652 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
7654 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
7655 to info. Don't initialize separate fields to 0. Clean up
7658 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
7660 * config/i386/i386.md (peephole2s for operations with memory inputs):
7661 Use SWI mode iterator.
7662 (peephole2s for operations with memory outputs): Ditto.
7663 Do not check for stack checking probe.
7665 (probe_stack): Remove expander.
7667 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
7668 Andrew Burgess <andrew.burgess@embecosm.com>
7670 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
7671 operands as 32-bits.
7673 2016-04-28 Jason Merrill <jason@redhat.com>
7675 * gdbinit.in: Skip line-map.h.
7677 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
7678 Andrew Burgess <andrew.burgess@embecosm.com>
7680 * config/arc/arc.c (arc_conditional_register_usage): Take
7681 TARGET_RRQ_CLASS into account.
7682 (arc_print_operand): Support printing 'p' and 's' operands.
7683 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
7685 (TARGET_RRQ_CLASS): Define.
7686 (IS_POWEROF2_OR_0_P): Define.
7687 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
7689 (*tst_movb): New define_insn.
7690 (*tst): Avoid recognition if it could prevent '*tst_movb'
7691 combination; replace c/CnL with c/Chs alternative.
7692 (*tst_bitfield_tst): New define_insn.
7693 (*tst_bitfield_asr): New define_insn.
7694 (*tst_bitfield): New define_insn.
7695 (andsi3_i): Add Rrq variant.
7696 (extzv): New define_expand.
7697 (insv): New define_expand.
7698 (*insv_i): New define_insn.
7699 (*movb): New define_insn.
7700 (*movb_signed): New define_insn.
7701 (*movb_high): New define_insn.
7702 (*movb_high_signed): New define_insn.
7703 (*movb_high_signed + 1): New define_split pattern.
7704 (*mrgb): New define_insn.
7705 (*mrgb + 1): New define_peephole2 pattern.
7706 (*mrgb + 2): New define_peephole2 pattern.
7707 * config/arc/arc.opt (mbitops): New option for nps400, uses
7708 TARGET_NPS_BITOPS_DEFAULT.
7709 * config/arc/constraints.md (q): Make register class conditional.
7710 (Rrq): New register constraint.
7711 (Chs): New constraint.
7712 (Clo): New constraint.
7713 (Chi): New constraint.
7714 (Cbf): New constraint.
7715 (Cbn): New constraint.
7716 (C18): New constraint.
7717 (Cbi): New constraint.
7719 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
7721 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
7723 (bitmap_intersection_of_preds): Ditto.
7724 (bitmap_union_of_succs): Ditto.
7725 (bitmap_union_of_preds): Ditto.
7726 * sbitmap.c (do_popcount): Delete.
7727 (BITMAP_DEBUGGING): Delete.
7728 (sbitmap_verify_popcount): Delete.
7729 (sbitmap_alloc): Don't initialize the popcount field.
7730 (sbitmap_alloc_with_popcount): Delete.
7731 (sbitmap_resize): Don't resize the popcount array.
7732 (sbitmap_vector_alloc): Don't initialize the popcount field.
7733 (bitmap_copy): Don't copy the popcount array.
7734 (bitmap_clear): Don't clear the popcount array.
7735 (bitmap_clear): Delete the popcount array handling.
7736 (bitmap_ior_and_compl): Delete the popcount assert.
7737 (bitmap_not): Ditto.
7738 (bitmap_and_compl): Ditto.
7739 (bitmap_and): Delete the popcount array handling.
7740 (bitmap_xor): Ditto.
7741 (bitmap_ior): Ditto.
7742 (bitmap_or_and): Delete the popcount assert.
7743 (bitmap_and_or): Ditto.
7744 (popcount_table): Delete.
7745 (sbitmap_elt_popcount): Delete.
7746 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
7747 (bitmap_set_bit): Delete the popcount assert.
7748 (bitmap_clear_bit): Ditto.
7749 (sbitmap_free): Don't free the popcount array.
7750 (sbitmap_alloc_with_popcount): Delete declaration.
7751 (sbitmap_popcount): Ditto.
7753 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
7754 Andrew Burgess <andrew.burgess@embecosm.com>
7756 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
7757 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
7758 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
7759 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
7760 * config/arc/arc.opt (mcmem): New option.
7761 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
7762 supply length for r/m alternative.
7763 (*extendqisi2_ac): Likewise.
7764 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
7766 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
7767 (movhi_insn): Likewise.
7768 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
7769 (*zero_extendqihi2_i): Add r/Ucm alternative.
7770 (*zero_extendqisi2_ac): Likewise.
7771 (*zero_extendhisi2_i): Likewise.
7772 * config/arc/constraints.md (Uex): New memory constraint.
7773 (Ucm): New define_constraint.
7774 * config/arc/predicates.md (long_immediate_loadstore_operand):
7775 Return 0 for MEM with cmem_address address.
7776 (cmem_address_0): New predicates.
7777 (cmem_address_1): Likewise.
7778 (cmem_address_2): Likewise.
7779 (cmem_address): Likewise.
7781 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
7783 * config/rs6000/rs6000.c (machine_function): Rename
7784 insn_chain_scanned_p to spe_insn_chain_scanned_p.
7785 (rs6000_stack_info): Adjust.
7787 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
7788 Andrew Burgess <andrew.burgess@embecosm.com>
7790 * config/arc/constraints.md (Usd): Convert to define_constraint.
7794 2016-04-28 Jakub Jelinek <jakub@redhat.com>
7797 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
7798 Add new peephole2 where the first insn is *mov<mode>_or instead of
7799 *mov<mode>_internal.
7801 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
7803 * tracer.c (bb_seen): Make static.
7805 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
7807 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
7808 support, setup defaults.
7809 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
7810 * config/arc/arc.c (arc_init): Add NPS400 support.
7811 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
7812 (TARGET_ARC700): NPS400 is also an ARC700.
7813 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
7815 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
7818 * config/nds32/nds32.md (casesi): Don't access the operands array
7821 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
7823 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
7824 (or $-1,reg peephole2): Ditto.
7825 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
7827 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
7829 * doc/extend.texi (Common Function Attributes) [optimize]:
7830 Discourage use of the optimize attribute.
7832 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
7834 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
7835 special case builtin.
7836 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
7837 ALTIVEC_BUILTIN_VEC_ADDE.
7838 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
7839 support for ALTIVEC_BUILTIN_VEC_ADDE.
7840 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
7841 for __builtin_vec_adde.
7843 2016-04-28 Jakub Jelinek <jakub@redhat.com>
7845 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
7846 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
7848 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7851 * doc/sourcebuild.texi (Effective-Target Keywords, Other
7852 attributes): Document cilkplus_runtime.
7854 2016-04-28 Martin Jambor <mjambor@suse.cz>
7856 * tree-cfg.c (verify_expr): Verify that local declarations belong to
7857 this function. Call verify_expr on MEM_REFs and bases of other
7860 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7862 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
7863 for WORD_REGISTER_OPERATIONS to runtime check.
7865 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
7867 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
7869 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
7871 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
7872 big-endian compilation.
7873 * config/arc/arc.md (addf3): Likewise.
7877 2016-04-28 Richard Biener <rguenther@suse.de>
7879 PR tree-optimization/70840
7880 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
7881 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
7882 Mark x * pow(x,c) -> pow(x,c+1) commutative.
7883 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
7885 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7887 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
7888 and explain why in a comment.
7890 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
7892 * config/arc/arc.md (cpu_facility): Add fpx variant.
7893 (subdf3): Prohibit use reverse sub when assist operations option
7895 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
7896 instructions only when FPX is enabled.
7897 * testsuite/gcc.target/arc/trsub.c: New test.
7899 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
7901 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
7902 mult_operator when calculating "type" attribute.
7903 (*fop_<mode>_1_i387): Ditto.
7904 (*fop_xf_1_i387): Ditto.
7905 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
7906 Use std::swap to swap operands. Use RTL expressions to generate
7909 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
7910 Joern Rennecke <joern.rennecke@embecosm.com>
7912 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
7914 (emit_pic_move): Remove.
7915 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
7916 * config/arc/arc.c (emit_pic_move): Removed.
7917 (TARGET_HAVE_TLS): Define.
7918 (arc_conditional_register_usage): Test for arc_tp_regno.
7919 (arc_print_operand, arc_print_operand_address): Handle TLS
7921 (arc_needs_pcl_p): New function.
7922 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
7923 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
7924 (arc_raw_symbolic_reference_mentioned_p): Likewise.
7925 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
7926 (arc_legitimize_tls_address): Likewise.
7927 (DTPOFF_ZERO_SYM): Define.
7928 (arc_legitimize_pic_address): Make it static, handle TLS cases.
7929 (arc_output_pic_addr_const): Print TLS unspecs.
7930 (prepare_pic_move): New function, replaces emit_pic_move.
7931 (arc_legitimate_constant_p): Handle TLS unspecs.
7932 (arc_legitimate_address_p): Likewise.
7933 (arc_rewrite_small_data_p): Use assert for TLS constants.
7934 (prepare_move_operands): Use prepare_pic_move.
7935 (arc_legitimize_address): Legitimize tls addresses.
7936 (arc_epilogue_uses): Check for arc_tp_regno.
7937 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
7938 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
7940 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
7942 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
7943 %(arc_tls_extra_start_spec).
7944 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
7945 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
7947 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
7948 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
7949 (UNSPEC_TLS_OFF): Add.
7951 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
7952 (get_thread_pointersi): New patterns.
7953 * config/arc/arc.opt (mtp-regno): New option.
7954 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
7955 (move_dest_operand): Likewise.
7956 * configure: Regenerate.
7957 * configure.ac: Add arc*-*-* case to test for tls.
7958 * doc/invoke.texi (ARC options): Document mtp-regno.
7960 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
7962 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
7963 the new ARC HS SIMD instructions.
7964 (arc_preferred_simd_mode): New function.
7965 (arc_autovectorize_vector_sizes): Likewise.
7966 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
7967 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7968 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
7969 (arc_init_builtins): Add new SIMD builtin types.
7970 (arc_split_move): Handle 64 bit vector moves.
7971 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
7972 (TARGET_PLUS_QMACW): Define.
7973 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
7974 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
7975 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
7976 (VSUBADD4H): New builtins.
7977 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
7978 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
7980 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
7981 Matthias Klose <doko@debian.org>
7983 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
7985 2016-04-28 Richard Biener <rguenther@suse.de>
7988 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
7991 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
7993 * common/config/sh/sh-common.c: Remove SH5 support.
7994 * config/sh/constraints.md: Likewise.
7995 * config/sh/config/sh/elf.h: Likewise.
7996 * config/sh/linux.h: Likewise.
7997 * config/sh/netbsd-elf.h: Likewise.
7998 * config/sh/predicates.md: Likewise.
7999 * config/sh/sh-c.c: Likewise.
8000 * config/sh/sh-protos.h: Likewise.
8001 * config/sh/sh.c: Likewise.
8002 * config/sh/sh.h: Likewise.
8003 * config/sh/sh.md: Likewise.
8004 * config/sh/sh.opt: Likewise.
8005 * config/sh/sync.md: Likewise.
8006 * config/sh/sh64.h: Delete.
8007 * config/sh/shmedia.h: Likewise.
8008 * config/sh/shmedia.md: Likewise.
8009 * config/sh/sshmedia.h: Likewise.
8010 * config/sh/t-netbsd-sh5-64: Likewise.
8011 * config/sh/t-sh64: Likewise.
8012 * config/sh/ushmedia.h: Likewise.
8014 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
8016 * config/i386/i386.md (sign_extend to memory peephole2s): Use
8017 general_reg_operand instead of register_operand predicate.
8019 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8021 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
8023 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
8025 * match.pd (A - B > A, A + B < A): New transformations.
8027 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
8029 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
8030 which defaults to true. Emit an outer pair of parentheses only if
8031 EMIT_PARENS. When continuing a chain of && or || (or & or |),
8032 don't emit parentheses for the right-hand operand.
8034 2016-04-27 Jeff Law <law@redhat.com>
8036 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
8038 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8040 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
8041 (altivec_lvx_<mode>_internal): Document.
8042 (altivec_lvx_<mode>_2op): New define_insn.
8043 (altivec_lvx_<mode>_1op): Likewise.
8044 (altivec_lvx_<mode>_2op_si): Likewise.
8045 (altivec_lvx_<mode>_1op_si): Likewise.
8046 (altivec_stvx_<mode>): Remove.
8047 (altivec_stvx_<mode>_internal): Document.
8048 (altivec_stvx_<mode>_2op): New define_insn.
8049 (altivec_stvx_<mode>_1op): Likewise.
8050 (altivec_stvx_<mode>_2op_si): Likewise.
8051 (altivec_stvx_<mode>_1op_si): Likewise.
8052 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8053 Expand vec_ld and vec_st during parsing.
8054 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
8056 (altivec_expand_stvx_be): Likewise.
8057 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
8058 address-masking behavior in RTL.
8059 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
8060 address-masking behavior in RTL.
8061 (altivec_expand_builtin): Change builtin code arguments for calls
8062 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
8063 (insn_is_swappable_p): Avoid incorrect swap optimization in the
8064 presence of lvx/stvx patterns.
8065 (alignment_with_canonical_addr): New function.
8066 (alignment_mask): Likewise.
8067 (find_alignment_op): Likewise.
8068 (recombine_lvx_pattern): Likewise.
8069 (recombine_stvx_pattern): Likewise.
8070 (recombine_lvx_stvx_patterns): Likewise.
8071 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
8072 stvx patterns from expand.
8073 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
8075 (vector_altivec_store_<mode>): Likewise.
8077 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
8079 * config/aarch64/aarch64.md
8080 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
8081 remove the "fp" attributes.
8082 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
8083 add the "simd" attributes.
8084 (*movdf_aarch64): Likewise.
8085 (*movtf_aarch64): Remove the "fp" attributes.
8086 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
8087 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
8089 2016-04-27 David Malcolm <dmalcolm@redhat.com>
8091 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
8092 rtx to rtx_code_label *.
8093 * rtl.h (maybe_set_first_label_num): Likewise.
8095 2016-04-27 David Malcolm <dmalcolm@redhat.com>
8097 * df-core.c (df_add_problem): Make the problem param be const.
8098 (df_remove_problem): Make local "problem" be const.
8099 * df-problems.c (problem_RD): Make const.
8100 (problem_LR): Likewise.
8101 (problem_LIVE): Likewise.
8102 (problem_MIR): Likewise.
8103 (problem_CHAIN): Likewise.
8104 (problem_WORD_LR): Likewise.
8105 (problem_NOTE): Likewise.
8106 (problem_MD): Likewise.
8107 * df-scan.c (problem_SCAN): Likewise.
8108 * df.h (struct df_problem): Make field "dependent_problem" be
8110 (struct dataflow): Likewise for field "problem".
8111 (df_add_problem): Make param const.
8113 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
8115 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
8116 inter-unit moves to/from vector registers are enabled. Do not disable
8119 2016-04-27 David Malcolm <dmalcolm@redhat.com>
8121 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
8122 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
8124 (enum df_problem_id): ...this new enum.
8125 (struct df_problem): Convert field "id" from "int" to
8128 2016-04-27 David Malcolm <dmalcolm@redhat.com>
8130 * rtl.def: Update comment for "things in the instruction chain" to
8131 reflect the removal of the leading "i" field for INSN_UID in
8132 r210360. Fix bogus apostrophe.
8134 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
8136 * config/i386/i386.md
8137 (lea arith with mem operand + setcc peephole2): Set operator mode.
8139 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
8142 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
8143 (dimode_scalar_to_vector_candidate_p): This.
8144 (timode_scalar_to_vector_candidate_p): New function.
8145 (scalar_to_vector_candidate_p): Likewise.
8146 (timode_check_non_convertible_regs): Likewise.
8147 (timode_remove_non_convertible_regs): Likewise.
8148 (remove_non_convertible_regs): Likewise.
8149 (remove_non_convertible_regs): Renamed to ...
8150 (dimode_remove_non_convertible_regs): This.
8151 (scalar_chain::~scalar_chain): Make it virtual.
8152 (scalar_chain::compute_convert_gain): Make it pure virtual.
8153 (scalar_chain::mark_dual_mode_def): Likewise.
8154 (scalar_chain::convert_insn): Likewise.
8155 (scalar_chain::convert_registers): Likewise.
8156 (scalar_chain::add_to_queue): Make it protected.
8157 (scalar_chain::emit_conversion_insns): Likewise.
8158 (scalar_chain::replace_with_subreg): Likewise.
8159 (scalar_chain::replace_with_subreg_in_insn): Likewise.
8160 (scalar_chain::convert_op): Likewise.
8161 (scalar_chain::convert_reg): Likewise.
8162 (scalar_chain::make_vector_copies): Likewise.
8163 (scalar_chain::convert_registers): New pure virtual function.
8164 (class dimode_scalar_chain): New class.
8165 (class timode_scalar_chain): Likewise.
8166 (scalar_chain::mark_dual_mode_def): Renamed to ...
8167 (dimode_scalar_chain::mark_dual_mode_def): This.
8168 (timode_scalar_chain::mark_dual_mode_def): New function.
8169 (timode_scalar_chain::convert_insn): Likewise.
8170 (dimode_scalar_chain::convert_registers): Likewise.
8171 (scalar_chain::compute_convert_gain): Renamed to ...
8172 (dimode_scalar_chain::compute_convert_gain): This.
8173 (scalar_chain::replace_with_subreg): Renamed to ...
8174 (dimode_scalar_chain::replace_with_subreg): This.
8175 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
8176 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
8177 (scalar_chain::make_vector_copies): Renamed to ...
8178 (dimode_scalar_chain::make_vector_copies): This.
8179 (scalar_chain::convert_reg): Renamed to ...
8180 (dimode_scalar_chain::convert_reg ): This.
8181 (scalar_chain::convert_op): Renamed to ...
8182 (dimode_scalar_chain::convert_op): This.
8183 (scalar_chain::convert_insn): Renamed to ...
8184 (dimode_scalar_chain::convert_insn): This.
8185 (scalar_chain::convert): Call convert_registers.
8186 (convert_scalars_to_vector): Change to scalar_chain pointer to
8187 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
8188 in 32-bit mode. Delete scalar_chain pointer. Call
8189 free_dominance_info in 64-bit mode.
8190 (pass_stv::gate): Remove TARGET_64BIT check.
8191 (ix86_option_override): Put the 64-bit STV pass before the CSE
8194 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
8196 * dwarf2out.h (struct dw_loc_descr_node): Remove the
8197 dw_loc_frame_offset field.
8198 * dwarf2out.c (new_loc_descr): Likewise.
8199 (resolve_args_picking_1): Turn the VISITED hash set into a
8200 FRAME_OFFSET hash map. Use it to associate a frame offset to
8201 visited nodes. Remove uses of the CHECKING_P macro.
8202 (resolve_args_picking): Update call to resolve_args_picking_1.
8204 2016-04-27 Martin Liska <mliska@suse.cz>
8206 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
8207 (free_loop_data): Release vuses of groups.
8209 2016-04-27 Bin Cheng <bin.cheng@arm.com>
8211 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
8212 instead of redundant use_id and boolean have_use_for.
8213 (struct iv_use): Change sub_id into group_id. Remove field next.
8214 Move fields: related_cands, n_map_members, cost_map and selected
8216 (struct iv_group): ... here. New structure.
8217 (struct iv_common_cand): Use structure declaration directly.
8218 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
8219 (MAX_CONSIDERED_USES): Rename macro to ...
8220 (MAX_CONSIDERED_GROUPS): ... here.
8221 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
8222 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
8223 (dump_uses): Rename to ...
8224 (dump_groups): ... here. Update all uses.
8225 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
8226 (find_induction_variables): Refactor format of dump information.
8227 (record_sub_use): Delete.
8228 (record_use): Update all uses.
8229 (record_group): New function.
8230 (record_group_use, find_interesting_uses_op): Call above functions.
8232 (find_interesting_uses_cond): Ditto.
8233 (group_compare_offset): New function.
8234 (split_all_small_groups): Rename to ...
8235 (split_small_address_groups_p): ... here. Update all uses.
8236 (split_address_groups): Update all uses.
8237 (find_interesting_uses): Refactor format of dump information.
8238 (add_candidate_1): Update all uses. Remove redundant check on iv,
8240 (add_candidate, record_common_cand): Remove redundant assert.
8241 (add_iv_candidate_for_biv): Update use.
8242 (add_iv_candidate_derived_from_uses): Update all uses.
8243 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
8244 (alloc_use_cost_map): Ditto.
8245 (set_use_iv_cost, get_use_iv_cost): Rename to ...
8246 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
8247 (determine_use_iv_cost_generic): Ditto.
8248 (determine_group_iv_cost_generic): Ditto.
8249 (determine_use_iv_cost_address): Ditto.
8250 (determine_group_iv_cost_address): Ditto.
8251 (determine_use_iv_cost_condition): Ditto.
8252 (determine_group_iv_cost_cond): Ditto.
8253 (determine_use_iv_cost): Ditto.
8254 (determine_group_iv_cost): Ditto.
8255 (set_autoinc_for_original_candidates): Update all uses.
8256 (find_iv_candidates): Update all uses. Refactor dump information.
8257 (determine_use_iv_costs): Ditto.
8258 (determine_iv_costs): Ditto.
8259 (iv_ca_cand_for_use): Rename to ...
8260 (iv_ca_cand_for_group): ... here. Update all uses.
8261 (iv_ca_add_use, iv_ca_add_group): Ditto.
8262 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
8263 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
8264 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
8265 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
8266 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
8267 (create_new_iv, adjust_iv_update_pos): Ditto.
8268 (rewrite_use_address): Delete.
8269 (rewrite_use_address_1): Rename to ...
8270 (rewrite_use_address): ... here.
8271 (rewrite_use_compare): Update all uses.
8272 (rewrite_use): Delete.
8273 (rewrite_uses): Rename to ...
8274 (rewrite_groups): ... here. Update all uses.
8275 (remove_unused_ivs, free_loop_data): Update all uses.
8276 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
8278 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8280 * rtlanal.c (nonzero_bits1): Convert preprocessor check
8281 for WORD_REGISTER_OPERATIONS to runtime check.
8283 2016-04-27 Richard Biener <rguenther@suse.de>
8286 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
8287 aggregate_value_p to determine if a function result is
8288 returned by reference.
8289 (ipa_pta_execute): Functions having their address taken are
8290 not automatically nonlocal.
8292 2016-04-27 Jakub Jelinek <jakub@redhat.com>
8295 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
8296 * fold-const.c (operand_equal_p): If flag_checking and
8297 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
8298 and if it returns non-zero, assert iterative_hash_expr on both
8301 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
8303 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
8305 2016-04-27 Nick Clifton <nickc@redhat.com>
8308 * varasm.c (merge_weak): Generate an error if an attempt is made
8309 to convert a non-weak static function into a weak, public function.
8311 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8313 * params.def (MAX_PARTITION_SIZE): New param.
8314 * doc/invoke.texi: Document lto-max-partition.
8316 2016-04-27 Richard Biener <rguenther@suse.de>
8319 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
8320 function cummulating used_from_other_partition, externally_visible
8321 and force_output from aliases.
8322 (refered_from_nonlocal_var): Likewise.
8323 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
8324 node flags properly.
8326 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
8328 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
8329 (-Wmemset-elt-size): New item.
8331 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
8334 * stor-layout.h (internal_reference_types): Delete.
8335 * stor-layout.c (reference_types_internal): Likewise.
8336 (internal_reference_types): Likewise.
8337 (layout_type) <REFERENCE_TYPE>: Adjust.
8339 2016-04-27 Jakub Jelinek <jakub@redhat.com>
8342 * tree.h (inchash::add_expr): Add FLAGS argument.
8343 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
8344 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
8345 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
8346 Formatting fix. Adjust recursive calls. For tcc_comparison,
8347 if swap_tree_comparison (code) is smaller than code, hash that
8348 and arguments in the other order. Hash CONVERT_EXPR the same
8349 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
8350 of ADDR_EXPR of decl as the decl itself. Add or remove
8351 OEP_ADDRESS_OF from recursive flags as needed. For
8352 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
8353 operands commutatively and only the third one normally.
8354 For internal CALL_EXPR hash in CALL_EXPR_IFN.
8356 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
8358 * config/rtems.h (LIB_SPEC): Add -latomic.
8360 2016-04-27 Joel Sherrill <joel@rtems.org>
8362 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
8363 xilink.ld and flags not relevant to RTEMS.
8365 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
8367 * toplev.c (backend_init_target): Avoid calling init_reload when using
8370 2016-04-26 Jakub Jelinek <jakub@redhat.com>
8372 * reorg.c (try_merge_delay_insns): Declare i and j inside the
8373 for loops rather than one for the whole function.
8375 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
8377 * match.pd (X + CST CMP X): New transformation.
8379 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
8381 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
8382 * fold-const.c (fold_binary_loc): Remove 2 transformations
8383 superseded by match.pd.
8384 * match.pd (x+x -> x*2): Generalize to integers.
8386 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
8388 * config/i386/i386.md (operation on memory peephole): Duplicate an
8389 existing peephole and adapt it to match lea rather than an operation
8392 PR rtl-optimization/57193
8393 * opts.c (default_options_table): Add OPT_frename_registers at -O2
8395 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
8397 2016-04-26 Bin Cheng <bin.cheng@arm.com>
8399 * tree-if-conv.c (any_pred_load_store): New static variable.
8400 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
8401 any_pred_load_store instead of and_mask_load_store.
8402 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
8403 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
8404 (combine_blocks, tree_if_conversion): Ditto.
8406 2016-04-26 Bin Cheng <bin.cheng@arm.com>
8408 PR tree-optimization/70771
8409 PR tree-optimization/70775
8410 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
8411 virtual PHI nodes. Delete parameter.
8412 (if_convertible_loop_p_1): Delete argument to above function.
8413 (predicate_all_scalar_phis): Delete code handling single-argument
8415 (tree_if_conversion): Mark and update virtual SSA.
8417 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8420 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
8421 (x86_elf_aligned_common): Rename to ...
8422 (x86_elf_aligned_decl_common): ... this.
8423 Add decl arg. Switch to .lbss for largecomm object. Use
8424 LARGECOMM_SECTION_ASM_OP.
8425 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
8427 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
8428 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
8430 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8431 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
8433 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8436 * config/i386/i386.c (SECTION_LARGE): Define.
8437 (x86_64_elf_select_section): Set it for large data/bss sections.
8438 Only clear SECTION_WRITE for .lrodata.
8439 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
8441 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
8442 * varasm.c (default_elf_asm_named_section): Grow flagchars.
8443 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
8445 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
8446 * doc/tm.texi: Regenerate.
8448 2016-04-26 Jakub Jelinek <jakub@redhat.com>
8451 * configure.ac (--enable-checking): Document extra flag, for
8452 non-release builds default to --enable-checking=yes,extra.
8453 If misc checking and extra checking, define CHECKING_P to 2 instead
8455 * common.opt (fchecking=): Add.
8456 * doc/invoke.texi (-fchecking=): Document.
8457 * doc/install.texi: Document --enable-checking changes.
8458 * configure: Regenerated.
8459 * config.in: Regenerated.
8461 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
8463 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
8464 attribute instead of which_alternative.
8465 * config/i386/sse.md (*mov<mode>_internal): Ditto.
8466 Use EXT_REX_SSE_REG_P where appropriate.
8468 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
8470 * config/i386/predicates.md (const0_operand): Do not match
8471 const_wide_int code.
8472 (const1_operand): Ditto.
8474 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
8476 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
8477 for SSE constm1 operands and TARGET_AVX512VL.
8478 (*movti_internal): Ditto.
8479 (*mov<mode>_or): Use constm1_operand predicate.
8480 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
8481 for SSE vector_all_ones operands and TARGET_AVX512VL.
8482 * config/i386/predicates.md (constm1_operand): New predicate.
8483 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
8484 emission of constant -1 load.
8486 2016-04-25 Jason Merrill <jason@redhat.com>
8488 * gdbinit.in: Skip is-a.h.
8490 * attribs.c (register_scoped_attributes): Fix logic.
8491 * attribs.h: Declare register_scoped_attributes.
8493 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8495 * config/rs6000/rs6000-builtin.def: Correct pasto error for
8496 stxvd2x and stxvw4x built-in functions.
8498 2016-04-25 DJ Delorie <dj@redhat.com>
8500 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
8501 (ashrhi3): Likewise.
8502 (lshrhi3): Likewise.
8504 2016-04-25 Richard Biener <rguenther@suse.de>
8506 PR tree-optimization/70780
8507 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
8509 (compute_antic): Mark blocks with abnormal preds as visited as
8510 they have a final empty antic-in solution already.
8512 2016-04-25 Michael Collison <michael.collison@linaro.org>
8514 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
8516 2016-04-25 Michael Collison <michael.collison@linaro.org>
8518 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
8519 mode is VQI to improve mixed mode vectorization.
8520 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
8521 define_insn to match low half of signed vaddw.
8522 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
8523 define_insn to match high half of signed vaddw.
8524 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
8525 define_insn to match low half of unsigned vaddw.
8526 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
8527 define_insn to match high half of unsigned vaddw.
8528 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
8529 (arm_simd_check_vect_par_cnst_half_p): Likewise.
8530 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
8532 (arm_simd_check_vect_par_cnst_half_p): Likewise.
8533 * config/arm/predicates.md (vect_par_constant_high): Support
8534 big endian and simplify by calling
8535 arm_simd_check_vect_par_cnst_half
8536 (vect_par_constant_low): Likewise.
8538 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
8540 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
8541 predicate for operand 2.
8543 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
8544 H.J. Lu <hongjiu.lu@intel.com>
8546 * config/i386/i386-protos.h (standard_sse_constant_p): Add
8547 machine_mode argument.
8548 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
8549 constm1_rtx operands. For VOIDmode constants, get mode from
8550 pred_mode. Check mode size if the mode is supported by ABI.
8551 (standard_sse_constant_opcode): Do not use standard_constant_p.
8552 Strictly check ABI support for all-ones operands.
8553 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
8554 immediates. Update calls to standard_sse_constant_p.
8555 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
8556 (ix86_rtx_costs): Ditto.
8557 * config/i386/i386.md (*movxi_internal_avx512f): Use
8558 nonimmediate_or_sse_const_operand instead of vector_move_operand.
8559 Use (v,BC) alternative instead of (v,C). Use register_operand
8560 checks instead of MEM_P.
8561 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
8562 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
8563 isa attribute. Use register_operand checks instead of MEM_P.
8564 (*movti_internal): Use nonimmediate_or_sse_const_operand for
8565 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
8566 alternative and corresponding sse2 isa attribute.
8567 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
8568 to standard_sse_constant_p.
8569 (FP constant splitters): Ditto.
8570 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
8572 * config/i386/predicates.md (constm1_operand): Remove.
8573 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
8574 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
8575 vector_all_ones_operand instead of constm1_operand.
8577 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8579 * print-rtl.c (print_rtx_insn_vec): New function.
8580 * print-rtl.h: New prototype.
8581 * store-motion.c (struct st_expr): Make avail_stores a vector.
8582 (st_expr_entry): Adjust.
8583 (free_st_expr_entry): Likewise.
8584 (print_store_motion_mems): Likewise.
8585 (find_moveable_store): Likewise.
8586 (compute_store_table): Likewise.
8587 (delete_store): Likewise.
8588 (build_store_vectors): Likewise.
8590 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8592 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
8594 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8596 * vec.h (vec_safe_contains): New function.
8597 (vec::contains): Likewise.
8598 (vec::begin): Likewise.
8599 (vec::end): Likewise.
8601 2016-04-23 Jakub Jelinek <jakub@redhat.com>
8604 * cfgexpand.c (expand_stack_vars): Fix typo.
8606 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
8608 * system.h (list, map, set, vector): Include conditionally.
8609 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
8610 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
8611 * ipa-icf.c (INCLUDE_LIST): Define.
8612 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
8613 * config/sh/sh.c (INCLUDE_VECTOR): Define.
8614 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
8615 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
8616 * cp/logic.cc (INCLUDE_LIST): Define.
8617 * fortran/trans-common.c (INCLUDE_MAP): Define.
8619 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
8621 * auto-profile.c: Remove <string.h> include.
8622 * ipa-icf-gimple.c: Remove <list> include.
8623 * diagnostic.c: Remove <new> include.
8624 * genmatch.c: Likewise.
8625 * pretty-print.c: Likewise.
8626 * toplev.c: Likewise
8627 * c/c-objc-common.c: Likewise.
8628 * cp/error.c: Likewise.
8629 * fortran/error.c: Likewise.
8631 2016-04-22 Richard Biener <rguenther@suse.de>
8633 * lto-streamer-in.c (input_ssa_names): Do not allocate
8634 GIMPLE_NOP for all SSA names.
8635 * lto-streamer-out.c (output_ssa_names): Do not output
8636 SSA names that should have been released.
8638 2016-04-22 Richard Biener <rguenther@suse.de>
8640 PR tree-optimization/70740
8641 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
8644 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
8647 * config/i386/predicates.md (call_insn_operand): Replace
8648 sibcall_memory_operand with memory_operand.
8650 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
8652 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
8653 has_single_use() tests.
8654 (register_edge_assert_for_1): Likewise.
8655 (find_assert_locations_1): Check the liveness bitmap instead of
8656 checking has_single_use().
8658 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
8661 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
8662 Extract AVX-512BW constraint from AVX.
8664 2016-04-21 Richard Biener <rguenther@suse.de>
8666 PR tree-optimization/70725
8667 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
8668 for phi_convertible_by_degenerating_args.
8669 (predicate_all_scalar_phis): Handle single-argument PHIs.
8671 2016-04-21 Richard Biener <rguenther@suse.de>
8674 * fold-const.c (fold_comparison): Return properly typed
8677 2016-04-21 Bin Cheng <bin.cheng@arm.com>
8679 PR tree-optimization/70715
8680 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
8681 after expanding BASE using expand_simple_operations.
8683 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
8685 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
8686 New transformations.
8688 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
8690 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
8692 2016-04-20 Jan Hubicka <jh@suse.cz>
8694 * ipa-inline.c (can_inline_edge_p): Pass caller info to
8695 ultiimate_alias_target.
8696 (update_callee_keys): Likewise.
8697 (lookup_recursive_calls): Likewise.
8698 (speculation_useful_p): Likewise.
8700 2016-04-20 Jan Hubicka <jh@suse.cz>
8703 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
8704 (set_nothrow_flag_1): ... this; handle interposition correctly;
8705 recurse on aliases and thunks.
8706 (cgraph_node::set_nothrow_flag): New.
8707 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
8708 functions compiled with non-call exceptions that binds to current
8710 (propagate_nothrow): Be safe WRT interposition.
8711 * cgraph.h (set_nothrow_flag): Update prototype.
8713 2016-04-18 Jan Hubicka <jh@suse.cz>
8715 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
8716 max_loop_iterations_int.
8717 (tree_unswitch_outer_loop): Likewise.
8719 2016-04-20 Bin Cheng <bin.cheng@arm.com>
8721 PR tree-optimization/69489
8722 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
8723 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
8724 Revise dump message.
8725 (if_convertible_bb_p): Remove check on edge count of basic block's
8728 2016-04-20 Bin Cheng <bin.cheng@arm.com>
8730 PR tree-optimization/56625
8731 PR tree-optimization/69489
8732 * tree-data-ref.h (DR_INNERMOST): New macro.
8733 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
8734 hashing struct innermost_loop_behavior.
8735 (ref_DR_map): Remove.
8736 (innermost_DR_map): New map.
8737 (baseref_DR_map): Revise comment.
8738 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
8739 to innermost_DR_map accroding to its innermost loop behavior.
8740 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
8741 to its innermost loop behavior.
8742 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
8743 Add initialization for innermost_DR_map. Record memory reference
8744 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
8745 have innermost loop behavior.
8746 (if_convertible_loop_p): Remove release for ref_DR_map. Release
8749 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
8751 * config/i386/i386.md (*lea<mode>_general_1): Rename from
8752 *lea_general_1. Use explicit SWI12 mode interator.
8753 (*lea<mode>_general_2): Rename from *lea_general_2.
8754 Use explicit SWI12 mode interator.
8755 (*lea<mode>_general_3): Rename from *lea_general_3.
8756 Use explicit SWI12 mode interator.
8757 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
8758 Use explicit SWI12 mode interator.
8759 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
8760 Use explicit SWI48 mode interator.
8762 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
8764 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
8765 Short-cut unaligned load and store cases. Handle all integer
8767 (ix86_expand_vector_move_misalign): Short-cut unaligned load
8768 and store cases. Call ix86_avx256_split_vector_move_misalign
8769 directly without checking mode class.
8771 2016-04-20 Andrew Pinski <apinski@cavium.com>
8772 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8775 * config/aarch64/aarch64.md (sibcall): Force call
8776 address to be DImode for ILP32.
8777 (sibcall_value): Likewise.
8779 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
8781 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
8783 2016-04-20 Richard Biener <rguenther@suse.de>
8785 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
8786 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
8787 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
8788 (maybe_push_res_to_seq): Adjust.
8789 * gimple-fold.c (maybe_build_generic_op): Likewise.
8791 2016-04-20 Marek Polacek <polacek@redhat.com>
8793 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
8796 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
8798 * config/i386/sse.md (vec_unpacks_lo_hi): Always
8799 use kmovw to support AVX512F target.
8801 2016-04-20 Bin Cheng <bin.cheng@arm.com>
8803 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
8805 2016-04-20 Marek Polacek <polacek@redhat.com>
8807 PR tree-optimization/70725
8808 * tree-if-conv.c (is_false_predicate): New function.
8809 (predicate_mem_writes): Use it.
8811 2016-04-20 Richard Biener <rguenther@suse.de>
8813 PR tree-optimization/70726
8814 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
8815 shift amounts from a pattern stmt operand.
8817 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8820 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
8821 stack_restore_from_fpr pattern when restoring r15.
8822 (s390_optimize_prologue): Strip away the memory barrier in the
8823 parallel when trying to get rid of restore insns.
8824 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
8825 definition for loading the stack pointer from an FPR. Compared to
8826 the normal move insn this pattern includes a full memory barrier.
8828 2016-04-19 Jakub Jelinek <jakub@redhat.com>
8831 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
8832 implicitly linear or lastprivate iterator on the outer context.
8834 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
8836 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
8838 * config/i386/i386.md (ssememalign): Removed.
8839 * config/i386/sse.md: Remove ssememalign attribute from patterns.
8841 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
8844 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
8845 const short * to __builtin_ia32_loaddquhi512_mask.
8846 (_mm512_maskz_loadu_epi16): Likewise.
8847 (_mm512_mask_storeu_epi16): Pass short * to
8848 __builtin_ia32_storedquhi512_mask.
8849 (_mm512_mask_loadu_epi8): Pass const char * to
8850 __builtin_ia32_loaddquqi512_mask.
8851 (_mm512_maskz_loadu_epi8): Likewise.
8852 (_mm512_mask_storeu_epi8): Pass char * to
8853 __builtin_ia32_storedquqi512_mask.
8854 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
8855 const double * to __builtin_ia32_loadupd512_mask.
8856 (_mm512_mask_loadu_pd): Likewise.
8857 (_mm512_maskz_loadu_pd): Likewise.
8858 (_mm512_storeu_pd): Pass double * to
8859 __builtin_ia32_storeupd512_mask.
8860 (_mm512_mask_storeu_pd): Likewise.
8861 (_mm512_loadu_ps): Pass const float * to
8862 __builtin_ia32_loadups512_mask.
8863 (_mm512_mask_loadu_ps): Likewise.
8864 (_mm512_maskz_loadu_ps): Likewise.
8865 (_mm512_storeu_ps): Pass float * to
8866 __builtin_ia32_storeups512_mask.
8867 (_mm512_mask_storeu_ps): Likewise.
8868 (_mm512_mask_loadu_epi64): Pass const long long * to
8869 __builtin_ia32_loaddqudi512_mask.
8870 (_mm512_maskz_loadu_epi64): Likewise.
8871 (_mm512_mask_storeu_epi64): Pass long long *
8872 to __builtin_ia32_storedqudi512_mask.
8873 (_mm512_loadu_si512): Pass const int * to
8874 __builtin_ia32_loaddqusi512_mask.
8875 (_mm512_mask_loadu_epi32): Likewise.
8876 (_mm512_maskz_loadu_epi32): Likewise.
8877 (_mm512_storeu_si512): Pass int * to
8878 __builtin_ia32_storedqusi512_mask.
8879 (_mm512_mask_storeu_epi32): Likewise.
8880 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
8881 char * to __builtin_ia32_storedquqi256_mask.
8882 (_mm_mask_storeu_epi8): Likewise.
8883 (_mm256_mask_loadu_epi16): Pass const short * to
8884 __builtin_ia32_loaddquhi256_mask.
8885 (_mm256_maskz_loadu_epi16): Likewise.
8886 (_mm_mask_loadu_epi16): Pass const short * to
8887 __builtin_ia32_loaddquhi128_mask.
8888 (_mm_maskz_loadu_epi16): Likewise.
8889 (_mm256_mask_loadu_epi8): Pass const char * to
8890 __builtin_ia32_loaddquqi256_mask.
8891 (_mm256_maskz_loadu_epi8): Likewise.
8892 (_mm_mask_loadu_epi8): Pass const char * to
8893 __builtin_ia32_loaddquqi128_mask.
8894 (_mm_maskz_loadu_epi8): Likewise.
8895 (_mm256_mask_storeu_epi16): Pass short * to.
8896 __builtin_ia32_storedquhi256_mask.
8897 (_mm_mask_storeu_epi16): Pass short * to.
8898 __builtin_ia32_storedquhi128_mask.
8899 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
8900 const double * to __builtin_ia32_loadupd256_mask.
8901 (_mm256_maskz_loadu_pd): Likewise.
8902 (_mm_mask_loadu_pd): Pass onst double * to
8903 __builtin_ia32_loadupd128_mask.
8904 (_mm_maskz_loadu_pd): Likewise.
8905 (_mm256_mask_storeu_pd): Pass double * to
8906 __builtin_ia32_storeupd256_mask.
8907 (_mm_mask_storeu_pd): Pass double * to
8908 __builtin_ia32_storeupd128_mask.
8909 (_mm256_mask_loadu_ps): Pass const float * to
8910 __builtin_ia32_loadups256_mask.
8911 (_mm256_maskz_loadu_ps): Likewise.
8912 (_mm_mask_loadu_ps): Pass const float * to
8913 __builtin_ia32_loadups128_mask.
8914 (_mm_maskz_loadu_ps): Likewise.
8915 (_mm256_mask_storeu_ps): Pass float * to
8916 __builtin_ia32_storeups256_mask.
8917 (_mm_mask_storeu_ps): ass float * to
8918 __builtin_ia32_storeups128_mask.
8919 (_mm256_mask_loadu_epi64): Pass const long long * to
8920 __builtin_ia32_loaddqudi256_mask.
8921 (_mm256_maskz_loadu_epi64): Likewise.
8922 (_mm_mask_loadu_epi64): Pass const long long * to
8923 __builtin_ia32_loaddqudi128_mask.
8924 (_mm_maskz_loadu_epi64): Likewise.
8925 (_mm256_mask_storeu_epi64): Pass long long * to
8926 __builtin_ia32_storedqudi256_mask.
8927 (_mm_mask_storeu_epi64): Pass long long * to
8928 __builtin_ia32_storedqudi128_mask.
8929 (_mm256_mask_loadu_epi32): Pass const int * to
8930 __builtin_ia32_loaddqusi256_mask.
8931 (_mm256_maskz_loadu_epi32): Likewise.
8932 (_mm_mask_loadu_epi32): Pass const int * to
8933 __builtin_ia32_loaddqusi128_mask.
8934 (_mm_maskz_loadu_epi32): Likewise.
8935 (_mm256_mask_storeu_epi32): Pass int * to
8936 __builtin_ia32_storedqusi256_mask.
8937 (_mm_mask_storeu_epi32): Pass int * to
8938 __builtin_ia32_storedqusi128_mask.
8939 * config/i386/i386-builtin-types.def (PCSHORT): New.
8941 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
8942 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
8943 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
8944 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
8945 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
8946 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
8947 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
8948 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
8949 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
8950 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
8951 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
8952 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
8953 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
8954 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
8955 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
8956 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
8957 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
8958 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
8959 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
8960 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
8961 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
8962 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
8963 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
8964 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
8965 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
8966 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
8967 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
8968 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
8969 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
8970 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
8971 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
8972 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
8973 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
8974 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
8975 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
8976 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
8977 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
8978 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
8979 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
8980 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
8981 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
8982 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
8983 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
8984 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
8985 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
8986 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
8987 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
8988 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
8989 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
8991 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
8992 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
8994 (ix86_expand_vector_move_misalign): Likewise.
8995 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
8996 to scalar function prototype for unaligned load/store builtins.
8997 (ix86_expand_special_args_builtin): Updated.
8998 * config/i386/sse.md (UNSPEC_LOADU): Removed.
8999 (UNSPEC_STOREU): Likewise.
9000 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
9001 (VI_ULOADSTORE_F_AVX512VL): Likewise.
9002 (ssescalarsize): Handle V4TI, V2TI and V1TI.
9003 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
9004 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
9005 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
9006 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
9007 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
9008 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
9009 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
9010 (<avx512>_storedqu<mode>_mask): Likewise.
9011 (*sse4_2_pcmpestr_unaligned): Likewise.
9012 (*sse4_2_pcmpistr_unaligned): Likewise.
9013 (*mov<mode>_internal): Renamed to ...
9014 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
9015 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
9016 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
9017 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
9019 2016-04-19 Richard Biener <rguenther@suse.de>
9021 PR tree-optimization/70171
9022 * tree-ssa-phiprop.c: Include stor-layout.h.
9023 (phiprop_insert_phi): Handle the aggregate copy case.
9024 (propagate_with_phi): Likewise.
9026 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
9028 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
9029 instead of simplify_gen_subreg (... , 0).
9030 (ix86_delegitimize_address): Ditto.
9031 (ix86_split_divmod): Ditto.
9032 (ix86_split_copysign_const): Ditto.
9033 (ix86_split_copysign_var): Ditto.
9034 (ix86_expand_args_builtin): Ditto.
9035 (ix86_expand_round_builtin): Ditto.
9036 (ix86_expand_special_args_builtin): Ditto.
9037 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
9038 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
9039 (udivmodqi4): Ditto.
9040 (absneg splitters): Ditto.
9041 (*jcc_bt<mode>_1): Ditto.
9043 2016-04-19 Richard Biener <rguenther@suse.de>
9045 PR tree-optimization/70724
9046 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
9047 restoring out from ...
9048 (free_scc_vn): ... here.
9049 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
9050 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
9052 (pass_fre::execute): Restore SSA info.
9054 2016-04-19 Richard Biener <rguenther@suse.de>
9056 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
9057 * gimple-walk.c (walk_gimple_op): Initialize it.
9058 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
9059 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
9060 remapping SSA names of defs.
9061 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
9064 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
9067 * lra-constraints.c (equiv_substition_p): New.
9068 (process_alt_operands): Use it.
9069 (swap_operands): Swap it.
9070 (curr_insn_transform): Update it.
9072 2016-04-18 Michael Matz <matz@suse.de>
9074 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
9075 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
9076 * tree-core.h (tree_type_common.align): Use bit-field.
9077 (tree_type_common.spare): New.
9078 (tree_decl_common.off_align): Make smaller.
9079 (tree_decl_common.align): Use bit-field.
9081 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
9082 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
9083 (scan_sharing_clauses): Ditto.
9084 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
9085 (omp_finish_file): Ditto.
9086 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
9087 (layout_decl): Ditto.
9088 (relayout_decl): Ditto.
9089 (finalize_record_size): Use SET_TYPE_ALIGN.
9090 (finalize_type_size): Ditto.
9091 (finish_builtin_struct): Ditto.
9092 (layout_type): Ditto.
9093 (initialize_sizetypes): Ditto.
9094 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
9095 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
9096 (lookup_field_for_decl): Use SET_DECL_ALIGN.
9097 (get_chain_field): Ditto.
9098 (get_trampoline_type): Ditto.
9099 (get_nl_goto_field): Ditto.
9100 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
9102 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
9103 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
9104 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
9105 (build_qualified_type): Use SET_TYPE_ALIGN.
9106 (build_aligned_type, build_range_type_1): Ditto.
9107 (build_atomic_base): Ditto.
9108 (build_common_tree_nodes): Ditto.
9109 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
9110 (expand_one_stack_var_at): Ditto.
9111 * coverage.c (build_var): Use SET_DECL_ALIGN.
9112 * except.c (init_eh): Ditto.
9113 * function.c (assign_parm_setup_block): Ditto.
9114 * symtab.c (increase_alignment_1): Ditto.
9115 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
9116 * tree-vect-stmts.c (ensure_base_align): Ditto.
9117 * varasm.c (align_variable): Ditto.
9118 (assemble_variable): Ditto.
9119 (build_constant_desc): Ditto.
9120 (output_constant_def_contents): Ditto.
9122 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
9123 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
9124 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
9125 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
9126 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
9128 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
9131 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
9132 replace %vmovsd with "%vmovq".
9133 (vec_concatv2df): Likewise.
9135 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
9137 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
9138 (*vec_extractv2si_0): Ditto.
9139 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
9140 (zero_extended_scalar_load_operand splitters): Ditto.
9141 (vec_extract splitters): Ditto.
9142 (*vec_extractv4si_0_zext): Ditto.
9143 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
9145 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
9146 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
9147 (*sse4_1_extractps): Use lowpart_subreg.
9148 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
9150 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9152 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
9154 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
9155 Mention Solaris 11 packaging changes.
9156 Update gas and gld requirements.
9157 Remove reference to pre-Solaris 10 bug.
9158 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
9160 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
9163 2016-04-17 Jan Hubicka <jh@suse.cz>
9165 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
9166 max_loop_iterations_int.
9168 2016-04-18 Richard Biener <rguenther@suse.de>
9170 PR tree-optimization/43434
9171 * tree-ssa-structalias.c (struct vls_data): New.
9172 (visit_loadstore): Handle all pointer-based accesses.
9173 (compute_dependence_clique): Compute a bitmap of restrict tags
9174 assigned bases and pass it to visit_loadstore.
9176 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
9179 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
9180 armv8.1-a and armv8.1-a+crc.
9182 2016-04-18 Richard Biener <rguenther@suse.de>
9184 PR tree-optimization/70701
9185 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
9186 references after translating through a memcpy.
9188 2016-04-18 Richard Biener <rguenther@suse.de>
9190 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
9191 (compute_antic): ... here. For partial antic use regular
9192 postorder and scrap iteration.
9193 (compute_partial_antic_aux): Remove unused return value.
9194 (init_pre): Do not allocate postorder.
9195 (fini_pre): Do not free postorder.
9197 2016-04-18 Richard Biener <rguenther@suse.de>
9200 * expmed.c (extract_bit_field_1): Remove broken case
9201 using a wider MODE_INT mode.
9203 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
9205 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
9206 unless compiling with at least GCC-4.8.
9208 2016-04-17 Jan Hubicka <jh@suse.cz>
9211 * graphite.c (graphite_finalize): Update call to
9212 tree_estimate_probability.
9213 * predict.h (tree_estimate_probability): Update prototype.
9215 2016-04-17 Jan Hubicka <jh@suse.cz>
9217 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
9218 (tree_estimate_probability): Likewise.
9219 (pass_profile::execute): Update.
9220 (report_predictor_hitrates): New function.
9221 * profile.c (compute_branch_probabilities): Use it.
9222 * predict.h (report_predictor_hitrates): Declare.
9224 2016-04-17 Jan Hubicka <jh@suse.cz>
9227 * cgraph.h (cgraph_node::set_const_flag,
9228 cgraph_node::set_pure_flag): Update prototype to return bool;
9230 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
9231 of interposable symbol are interposable, too.
9232 (cgraph_set_const_flag_1): Rename to ...
9233 (set_const_flag_1): ... this one; change to self recursive function
9234 instead of call_for_symbol_thunks_and_aliases. Handle correctly
9235 clearnig the flag in all variants and also virtual thunks of const
9236 functions are pure; track if any change was done.
9237 (cgraph_node::set_const_flag): Update.
9238 (struct set_pure_flag_info): New struct.
9239 (cgraph_set_pure_flag_1): Rename to ...
9240 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
9241 rather than pointer encoded flags; track if any changes was done;
9242 handle correctly clearning flag and setting flag of aliases already
9244 (cgraph_node::set_pure_flag): Update.
9245 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
9247 2016-04-17 Tom de Vries <tom@codesourcery.com>
9250 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
9253 2016-04-17 Tom de Vries <tom@codesourcery.com>
9255 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
9256 '{}<> ' as escape-for-record.
9258 2016-04-17 Tom de Vries <tom@codesourcery.com>
9260 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
9263 2016-04-17 Tom de Vries <tom@codesourcery.com>
9266 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
9267 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
9268 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
9269 * passes.c (finish_optimization_passes): Only call
9270 finish_graph_dump_file if dfi->graph_dump_initialized.
9271 (execute_function_dump, pass_init_dump_file): Use
9272 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
9274 2016-04-17 Tom de Vries <tom@codesourcery.com>
9276 PR tree-optimization/70256
9277 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
9278 (debug_varmap): New function.
9280 2016-04-17 Tom de Vries <tom@codesourcery.com>
9283 * passes.c (pass_manager::register_pass): Propagate pflags.
9285 2016-04-17 Tom de Vries <tom@codesourcery.com>
9288 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
9289 * passes.c (pass_manager::pass_manager): Declare and init p_start in
9290 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
9291 check if it's equal to p_start.
9292 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
9294 2016-04-15 Jan Hubicka <jh@suse.cz>
9297 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
9298 function does not bind to current def.
9299 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
9300 handle conservatively calls to functions that does not need to bind
9302 (check_call): Update call of worse_state.
9303 (ignore_edge_for_nothrow): Update.
9304 (ignore_edge_for_pure_const): Likewise.
9305 (propagate_pure_const): Update calls to worse_state.
9306 (skip_function_for_local_pure_const): Reformat comments.
9308 2016-04-15 Jan Hubicka <jh@suse.cz>
9311 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
9312 (cgraph_node::function_symbol): Likewise.
9313 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
9314 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
9315 (symtab_node::ultimate_alias_target): Add REF parameter.
9316 (symtab_node::binds_to_current_def_p): Declare.
9317 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
9318 (cgraph_node::function_symbol): Likewise.
9319 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
9320 (cgraph_node::get_availability): Likewise.
9321 (cgraph_edge::binds_to_current_def_p): New inline function.
9322 (varpool_node::get_availability): Add REF parameter.
9323 (varpool_node::ultimate_alias_target): Likewise.
9324 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
9325 (symtab_node::binds_to_current_def_p): Likewise.
9326 * varpool.c (varpool_node::get_availability): Likewise.
9328 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
9331 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
9332 Fix mode size check.
9334 2016-04-15 Jakub Jelinek <jakub@redhat.com>
9336 * BASE-VER: Set to 7.0.0.
9338 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
9340 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
9342 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9344 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
9345 architecture revisions.
9347 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
9349 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
9350 * config/i386/i386.c (ix86_using_red_zone): No longer static.
9351 * config/i386/i386.md (stack decrement to push peepholes): Guard
9352 with !x86_using_red_zone ().
9354 2016-04-15 Jakub Jelinek <jakub@redhat.com>
9357 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
9358 to dump_generic_node.
9359 (NIY): Pass also flags to do_niy.
9361 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
9363 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
9364 (simd_clone_vector_of_formal_parm_types)
9365 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
9366 (simd_clone_mangle, simd_clone_create)
9367 (simd_clone_adjust_return_type, create_tmp_simd_array)
9368 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
9369 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
9370 (ipa_simd_modify_function_body, simd_clone_linear_addend)
9371 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
9372 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
9373 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
9374 * omp-simd-clone.c: ... this new file.
9375 (simd_clone_vector_of_formal_parm_types): Make it static.
9376 * Makefile.in (OBJS): Add omp-simd-clone.o.
9378 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
9381 * config/i386/sse.md: Use proper memory operand modifiers.
9384 2016-04-15 Richard Biener <rguenther@suse.de>
9385 Alan Modra <amodra@gmail.com>
9387 PR tree-optimization/70130
9388 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
9389 when alignment stays not the same and no not use the realign
9392 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
9395 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
9396 direct move handlers for KFmode. Change TFmode handlers test from
9397 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
9399 2016-04-14 Jakub Jelinek <jakub@redhat.com>
9402 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
9403 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
9404 (inlined_polymorphic_ctor_dtor_block_p): Use it.
9405 * tree-ssa-live.c (remove_unused_scope_block_p): When
9406 in_ctor_dtor_block, avoid discarding not just BLOCKs with
9407 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
9408 block_ultimate_origin is FUNCTION_DECL.
9409 (remove_unused_locals): If current_function_decl is
9410 polymorphic_ctor_dtor_p, pass initial true to
9411 remove_unused_scope_block_p' is_ctor_dtor_block.
9413 2016-04-14 Martin Sebor <msebor@redhat.com>
9418 * doc/extend.texi (Variable Length): Revert.
9420 2016-04-14 Marek Polacek <polacek@redhat.com>
9421 Jan Hubicka <hubicka@ucw.cz>
9424 * tree.c (verify_type): Disable the canonical type of main variant
9427 2016-04-14 Jason Merrill <jason@redhat.com>
9429 * cfgexpand.c, expr.c: Revert previous change.
9431 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
9434 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
9435 when building a mem ref for the incoming reduction variable.
9437 2016-04-14 Richard Biener <rguenther@suse.de>
9439 PR tree-optimization/70614
9440 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
9441 loop if the evolution dropped to chrec_dont_know.
9442 (interpret_condition_phi): Likewise.
9444 2016-04-14 Richard Biener <rguenther@suse.de>
9446 PR tree-optimization/70623
9447 * tree-ssa-pre.c (changed_blocks): Make global ...
9448 (compute_antic): ... local here. Move and fix worklist
9449 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
9450 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
9451 worklist handling, dump when ANTIC_IN changed.
9452 (compute_partial_antic_aux): Remove worklist handling.
9453 (init_pre): Do not compute post dominators. Add a comment about
9454 the CFG order chosen.
9455 (fini_pre): Do not free post dominators.
9457 2016-04-13 Martin Sebor <msebor@redhat.com>
9462 * doc/extend.texi (Variable Length): Document C++ specifics.
9464 2016-04-13 Jakub Jelinek <jakub@redhat.com>
9467 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
9468 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
9469 eh edges have been purged.
9472 * tree-sra.c (create_access_replacement,
9473 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
9475 * tree-pretty-print.c (dump_fancy_name): New function.
9476 (dump_decl_name, dump_generic_node): Use it.
9478 2016-04-13 Jason Merrill <jason@redhat.com>
9480 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
9481 * expr.c (expand_expr_real_1): Likewise.
9483 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
9485 * config/i386/i386.md (kunpckhi): Swap operands.
9486 (kunpcksi): Likewise.
9487 (kunpckdi): Likewise.
9488 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
9489 (vec_pack_trunc_<mode>): Likewise.
9491 2016-04-13 Jakub Jelinek <jakub@redhat.com>
9494 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
9497 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
9498 gimplification turns some element into non-constant.
9501 * rtl.h (convert_memory_address_addr_space_1): New prototype.
9502 * explow.c (convert_memory_address_addr_space_1): No longer static,
9503 add NO_EMIT argument and don't call convert_modes if true, pass
9504 it down recursively, remove break after return.
9505 (convert_memory_address_addr_space): Adjust caller.
9506 * simplify-rtx.c (simplify_unary_operation_1): Call
9507 convert_memory_address_addr_space_1 instead of convert_memory_address,
9508 if it returns NULL, don't simplify.
9510 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
9513 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
9515 2016-04-12 Jakub Jelinek <jakub@redhat.com>
9517 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9518 Bump the upper SIMDLEN limits, so that if the return type or
9519 characteristic type if the return type is void can be passed in
9520 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
9523 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
9526 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
9527 Do not use "=" constraint on an input constraint.
9528 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
9529 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
9530 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
9531 generates (neg (abs ...)) instead of (abs ...).
9533 2016-04-12 Jakub Jelinek <jakub@redhat.com>
9535 PR rtl-optimization/70596
9536 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
9537 just invalidate LRA data and reset them. Adjust dump wording.
9539 2016-04-12 Martin Liska <mliska@suse.cz>
9542 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
9544 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
9546 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9547 max_loop_iterations_int.
9548 (tree_unswitch_outer_loop): Likewise.
9549 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
9550 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
9552 2016-04-12 Tom de Vries <tom@codesourcery.com>
9554 PR tree-optimization/68756
9555 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
9556 instead of new_name.
9558 2016-04-12 Jakub Jelinek <jakub@redhat.com>
9560 PR tree-optimization/70602
9561 * tree-sra.c (generate_subtree_copies): Don't write anything into
9562 constant pool decls.
9564 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
9565 regardless whether there are depend clauses or not.
9567 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
9570 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
9571 target attribute and pragma from changing the -mfloat128
9572 and -mfloat128-hardware options.
9574 * doc/extend.texi (Additional Floating Types): Document PowerPC
9575 __float128 restrictions.
9577 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
9580 * config/aarch64/driver-aarch64.c
9581 (aarch64_get_extension_string_for_isa_flags): New.
9582 (arch_extension): Rename to...
9583 (aarch64_arch_extension): ...This.
9584 (ext_to_feat_string): Rename to...
9585 (aarch64_extensions): ...This.
9586 (aarch64_core_data): Keep track of architecture extension flags.
9587 (cpu_data): Rename to...
9588 (aarch64_cpu_data): ...This.
9589 (aarch64_arch_driver_info): Keep track of architecture extension
9591 (get_arch_name_from_id): Rename to...
9592 (get_arch_from_id): ...This, change return type.
9593 (host_detect_local_cpu): Update and reformat for renames, handle
9594 extensions through common infrastructure.
9596 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
9599 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
9600 track of a canonical flag name.
9601 (all_extensions): Likewise.
9602 (arch_to_arch_name): Also track extension flags enabled by the arch.
9603 (all_architectures): Likewise.
9604 (aarch64_parse_extension): Move to here.
9605 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
9607 (aarch64_rewrite_selected_cpu): Update for above change.
9608 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
9609 are handled, such that the single explicit value enabled by an
9610 extension is kept seperate from the implicit values it also enables.
9611 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
9613 (aarch64_parse_extension): New.
9614 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
9615 here to config/aarch64/aarch64-protos.h.
9616 (aarch64_parse_extension): Move from here to
9617 common/config/aarch64/aarch64-common.c.
9618 (aarch64_option_print): Update.
9619 (aarch64_declare_function_name): Likewise.
9620 (aarch64_start_file): Likewise.
9621 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
9622 the canonical flag for extensions.
9623 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
9626 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
9628 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
9631 2016-04-09 Tom de Vries <tom@codesourcery.com>
9633 PR tree-optimization/68953
9634 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
9635 first to last subscript.
9637 2016-04-09 Jakub Jelinek <jakub@redhat.com>
9639 PR tree-optimization/70586
9640 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
9643 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
9647 PR tree-optimization/70373
9651 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
9652 clauses for acc parallel reductions as necessary. Error on those
9654 * omp-low.c (scan_sharing_clauses): Don't install variables which
9655 are used in acc parallel reductions.
9656 (lower_rec_input_clauses): Remove dead code.
9657 (lower_oacc_reductions): Add support for reference reductions.
9658 (lower_reduction_clauses): Remove dead code.
9659 (lower_omp_target): Don't remap variables appearing in acc parallel
9661 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
9663 2016-04-08 Jakub Jelinek <jakub@redhat.com>
9666 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
9667 with multiple SSA_NAME defs, force the outputs other than first
9668 to be live before calling live_track_process_def on each output.
9670 PR rtl-optimization/70574
9671 * fwprop.c (forward_propagate_and_simplify): Don't add
9672 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
9673 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
9674 paradoxical subregs within *loc.
9676 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
9678 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
9679 -ftree-parallelize-loops={0,1}.
9680 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
9681 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
9682 * config/ia64/hpux.h (LIB_SPEC): Likewise.
9683 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9684 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
9686 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
9689 * asan.c (instrument_derefs): If we get unknown location, extract it
9691 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
9693 2016-04-08 Tom de Vries <tom@codesourcery.com>
9695 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
9696 implicit firstprivate clause.
9698 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9701 * config/arm/thumb2.md (tst + branch-> lsls + branch
9702 peephole below *orsi_not_shiftsi_si): Require that condition
9703 register is dead after the peephole.
9704 (second peephole after the above): Likewise.
9706 2016-04-08 Alan Modra <amodra@gmail.com>
9709 * builtins.c (fold_builtin_classify): For IBM extended precision,
9710 look at just the high-order double to test for NaN.
9711 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
9712 test just the high double for Inf but both doubles for subnormal
9715 2016-04-07 Jakub Jelinek <jakub@redhat.com>
9717 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
9718 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
9719 node->simdclone->mask_mode != VOIDmode masks.
9720 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
9721 earlier, use it instead of node->simdclone.
9722 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9723 Set clonei->mask_mode.
9725 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
9728 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
9729 Pass it through to cp_parser_already_scoped_statement.
9730 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
9731 it through to cp_parser_statement.
9732 (cp_parser_statement): Pass IF_P through to
9733 cp_parser_iteration_statement.
9734 (cp_parser_pragma): Adjust call to
9735 cp_parser_iteration_statement.
9737 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
9740 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
9741 resolve a future -Wparentheses warning.
9742 * omp-low.c (scan_sharing_clauses): Likewise.
9743 * tree-parloops.c (eliminate_local_variables): Likewise.
9745 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
9747 PR rtl-optimization/70398
9748 * lra-constraints.c (process_address_1): Check zero scale and code
9749 for reloading with zero scale.
9751 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
9753 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
9754 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
9756 2016-04-06 Jakub Jelinek <jakub@redhat.com>
9758 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9759 Add support for AVX512F clones, include them by default for
9760 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
9761 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
9765 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
9766 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
9767 firstprivate clauses.
9768 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
9769 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
9770 (lower_omp_target): Set TREE_NO_WARNING for
9771 non-addressable possibly uninitialized vars which are copied into
9772 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
9774 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
9776 * config/pa/predicates.md (integer_store_memory_operand): Accept
9777 REG+D operands with a large offset when reload_in_progress is true.
9778 (floating_point_store_memory_operand): Likewise.
9780 2016-04-05 Jakub Jelinek <jakub@redhat.com>
9783 * match.pd (nested int casts): Limit to GIMPLE.
9785 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
9788 * ipa-devirt.c (maybe_record_node): Fix comment; use
9789 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
9791 2016-04-05 Jakub Jelinek <jakub@redhat.com>
9793 PR rtl-optimization/70542
9794 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
9795 if there are any uses other than insn or debug insns.
9797 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
9798 Jakub Jelinek <jakub@redhat.com>
9800 PR tree-optimization/70509
9801 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
9802 Shift HOST_WIDE_INT_1U instead of 1.
9804 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
9806 PR tree-optimization/70509
9807 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
9808 of the vector base type for index.
9810 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
9813 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
9815 2016-04-05 Richard Biener <rguenther@suse.de>
9817 PR tree-optimization/70526
9818 * tree-sra.c (build_ref_for_offset): Use prev_base to
9819 extract the alias pointer type.
9821 2016-04-05 Richard Biener <rguenther@suse.de>
9823 * dse.c (struct store_info): Remove alias_set member.
9824 (struct read_info_type): Likewise.
9825 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
9826 spill_deleted, clear_alias_set_lookup): Remove.
9827 (get_group_info): Remove dead base == NULL_RTX case.
9828 (dse_step0): Remove initialization of removed variables.
9829 (delete_dead_store_insn): Reomve alias set dumping.
9830 (free_read_records): Remove alias_set handling.
9831 (canon_address): Remove alias_set_out parameter.
9832 (record_store): Remove spill_alias_set, it's always zero.
9833 (check_mem_read_rtx): Likewise.
9834 (dse_step2): Rename from ...
9835 (dse_step2_nospill): ... this. Adjust.
9836 (scan_stores): Rename from ...
9837 (scan_stores_nospill): ... this.
9838 (scan_reads): Rename from ...
9839 (scan_reads_nospill): ... this.
9840 (scan_stores_spill, scan_reads_spill): Remove.
9841 (dse_step3_scan): Remove for_spills argument which is always false.
9842 (dse_step3): Likewise.
9843 (dse_step5): Rename from ...
9844 (dse_step5_nospill): ... this. Remove alias_set handling.
9845 (rest_of_handle_dse): Adjust.
9847 2016-04-05 Jakub Jelinek <jakub@redhat.com>
9850 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
9851 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
9852 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
9853 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
9855 2016-04-05 Richard Biener <rguenther@suse.de>
9858 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
9859 non-register type temporaries into SSA.
9861 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
9864 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
9865 calls when sanitizing.
9866 (possible_polymorphic_call_target_p): Fix formatting.
9868 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9869 Jakub Jelinek <jakub@redhat.com>
9872 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
9873 to ensure a call statement is compatible with a built-in's
9875 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
9878 2016-04-04 Richard Biener <rguenther@suse.de>
9880 PR rtl-optimization/70484
9881 * rtl.h (canon_output_dependence): Declare.
9882 * alias.c (canon_output_dependence): New function.
9883 * dse.c (record_store): Use canon_output_dependence rather
9884 than canon_true_dependence.
9886 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
9889 * cgraph.h (symtab_node::copy_visibility_from): New function.
9890 * symtab.c (symtab_node::copy_visibility_from): New function.
9891 * ipa-visibility.c (optimize_weakref): New function.
9892 (function_and_variable_visibility): Use it.
9894 2016-04-04 Martin Liska <mliska@suse.cz>
9897 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
9898 value that is really in range handled by SBR instruction.
9899 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
9900 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
9901 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
9903 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
9907 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
9908 set, but not for SP_REG operands.
9910 2016-04-02 Martin Sebor <msebor@redhat.com>
9913 * fold-const.c (maybe_nonzero_address): New function.
9914 (fold_comparison): Call it. Fold equality and relational
9915 expressions involving null pointers.
9916 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
9918 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
9920 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
9921 the "Y" constraint (scalar FP 0.0 immediate).
9923 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
9924 Add the "const_double" to the list of operand constraints.
9926 2016-04-01 Jakub Jelinek <jakub@redhat.com>
9928 PR rtl-optimization/70467
9929 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
9930 If low word of the last operand is 0, just emit addition/subtraction
9933 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9936 * config/s390/s390.c (s390_expand_insv): Check for everything
9937 constant instead of just VOIDmode stuff.
9939 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9942 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
9944 2016-04-01 Nathan Sidwell <nathan@acm.org>
9946 * tree.def (TRY_CATCH_EXPR): Correct documentation.
9948 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
9950 PR rtl-optimization/70461
9951 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
9954 2016-03-31 Martin Liska <mliska@suse.cz>
9957 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
9958 a tree value or an immediate integer value to a buffer
9959 that is eventually copied to a BRIG section.
9960 (emit_immediate_operand): Call the function here.
9961 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
9962 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
9963 of class' fields that are removed.
9964 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
9965 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
9966 m_brig_repr_size fields.
9968 2016-03-31 Martin Liska <mliska@suse.cz>
9971 * hsa-gen.c (hsa_function_representation::update_dominance): New
9973 (convert_addr_to_flat_segment): Likewise.
9974 (gen_hsa_memory_set): New alignment argument.
9975 (gen_hsa_ctor_assignment): Likewise.
9976 (gen_hsa_insns_for_single_assignment): Provide alignment
9977 to gen_hsa_ctor_assignment.
9978 (gen_hsa_insns_for_direct_call): Add new argument.
9979 (expand_lhs_of_string_op): New function.
9980 (expand_string_operation_builtin): Likewise.
9981 (expand_memory_copy): New function.
9982 (expand_memory_set): New function.
9983 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
9984 (convert_switch_statements): Change signature.
9985 (generate_hsa): Use a return value of the function.
9986 (pass_gen_hsail::execute): Do not call
9987 convert_switch_statements here.
9988 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
9989 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
9990 (hsa_function_representation::update_dominance): New function.
9992 2016-03-31 Martin Liska <mliska@suse.cz>
9995 * hsa-brig.c (emit_directive_variable): Emit alignment
9996 according to hsa_symbol::m_align.
9997 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
9998 (dump_hsa_symbol): Dump alignment of HSA symbols.
9999 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
10000 (gen_hsa_addr_with_align): New function.
10001 (hsa_bitmemref_alignment): Use newly added function.
10002 (gen_hsa_insns_for_load): Likewise.
10003 (gen_hsa_insns_for_store): Likewise.
10004 (gen_hsa_memory_copy): New argument added.
10005 (gen_hsa_insns_for_single_assignment): Respect
10006 alignment for assignments processed via gen_hsa_memory_copy.
10007 (gen_hsa_insns_for_direct_call): Likewise.
10008 (gen_hsa_insns_for_return): Likewise.
10009 (gen_function_def_parameters): Set default alignment.
10010 * hsa.c (hsa_object_alignment): New function.
10011 (hsa_byte_alignment): Pasted function.
10012 * hsa.h (hsa_symbol::m_align): New field.
10014 2016-03-31 Bin Cheng <bin.cheng@arm.com>
10016 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
10017 scratch field for goto case.
10019 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
10021 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
10023 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
10026 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
10027 (scalar_chain::convert_insn): Call convert_op for reg
10028 moves to handle undefined registers.
10030 2016-03-31 Nathan Sidwell <nathan@acm.org>
10033 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
10034 Assert we don't want to move backwards.
10036 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
10039 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
10041 2016-03-31 Jakub Jelinek <jakub@redhat.com>
10043 PR rtl-optimization/70460
10044 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
10045 with operand from REG_LABEL_OPERAND, instead substitute
10046 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
10047 Don't do anything for REG_NON_LOCAL_GOTO jumps.
10049 2016-03-31 Martin Liska <mliska@suse.cz>
10051 * passes.c (execute_one_pass): Do not call
10052 todo_after for a discarded function.
10054 2016-03-31 Bin Cheng <bin.cheng@arm.com>
10056 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
10057 (no_cost, infinite_cost): Initialize the new field.
10058 (get_computation_cost_at): Record setup cost.
10059 (determine_use_iv_cost_address): Skip cost computation for sub
10060 uses if we can estimate it without losing accuracy.
10062 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
10064 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
10066 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
10067 max_loop_iterations_int.
10068 (tree_unswitch_outer_loop): Likewise.
10069 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
10070 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
10072 2016-03-30 Richard Biener <rguenther@suse.de>
10074 PR middle-end/70450
10075 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
10077 2016-03-30 Jakub Jelinek <jakub@redhat.com>
10080 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
10081 in gen_blendm expander.
10083 2016-03-30 Nick Clifton <nickc@redhat.com>
10086 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
10087 case where we are already provided with an SImode SUBREG.
10089 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
10092 * config/i386/i386.c (ix86_expand_epilogue): Properly check
10093 conflict between DRAP register and __builtin_eh_return.
10095 2016-03-30 Michael Matz <matz@suse.de>
10096 Richard Biener <rguenther@suse.de>
10099 * ipa-polymorphic-call.c (struct type_change_info): Change
10100 speculative to an unsigned allowing to limit the work we do.
10101 (csftc_abort_walking_p): New inline function..
10102 (check_stmt_for_type_change): Limit the number of may-defs
10103 skipped for speculative devirtualization to
10104 max-speculative-devirt-maydefs.
10105 * params.def (max-speculative-devirt-maydefs): New param.
10106 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
10108 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
10111 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
10114 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
10116 PR tree-optimization/59124
10117 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
10118 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
10120 2016-03-29 Jeff Law <law@redhat.com>
10122 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
10124 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
10126 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
10129 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
10131 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
10132 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
10133 gcrt0.o if linking dynamically.
10135 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
10138 * ipa-devirt.c (methods_equal_p): New function.
10139 (compare_virtual_tables): Use it.
10140 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
10141 * cgraphclones.c (clone_function_name_1): Use
10142 symbol_table::symbol_suffix_separator.
10143 * coverage.c (build_var): Likewise.
10144 * symtab.c (symbol_table::symbol_suffix_separator): New.
10146 2016-03-29 Jakub Jelinek <jakub@redhat.com>
10148 PR rtl-optimization/70429
10149 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
10150 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
10151 mode != result_mode.
10154 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
10156 PR tree-optimization/70405
10157 * ssa-iterators.h (num_imm_uses): Add missing braces.
10159 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
10161 PR rtl-optimization/68695
10162 * ira-color.c (allocno_copy_cost_saving): New.
10163 (improve_allocation): Use it.
10165 2016-03-29 Richard Henderson <rth@redhat.com>
10167 PR middle-end/70355
10168 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
10170 2016-03-29 Richard Biener <rguenther@suse.de>
10172 PR middle-end/70424
10173 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
10174 use alignment returned by get_pointer_alignment_1 if it is
10175 bigger than BITS_PER_UNIT.
10176 * builtins.c (get_pointer_alignment_1): Do not return true
10177 for alignment extracted from SSA info.
10179 2016-03-28 James Bowman <james.bowman@ftdichip.com>
10181 * config/ft32/ft32.opt (mnodiv): New.
10182 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
10183 * doc/invoke.texi (FT32 Options -mnodiv): New.
10185 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
10188 * config/i386/i386.md (define_split, andn): Fix modes.
10190 2016-03-26 Richard Biener <rguenther@suse.de>
10191 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10194 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
10196 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
10197 as 2nd argument to cl_optimization_restore().
10199 2016-03-25 Richard Henderson <rth@redhat.com>
10202 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
10203 * config/aarch64/aarch64-protos.h: Declare it.
10204 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
10206 2016-03-25 Alan Modra <amodra@gmail.com>
10209 * config/rs6000/constraints.md (j): Simplify.
10210 * config/rs6000/predicates.md (easy_fp_constant): Exclude
10212 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
10213 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
10214 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
10215 in all constraint alternatives.
10216 (movtd_64bit_nodm): Delete "j" constraint alternative.
10218 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
10220 * tree-ssa-propagate.c: Enhance docs for
10221 SSA_PROP_NOT_INTERESTING.
10223 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
10225 * doc/extend.texi: Fix typo in documentation to pure attribute.
10227 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
10230 * config/pa/pa.md (bswapdi2): Use a scratch register.
10232 2016-03-24 Richard Henderson <rth@redhat.com>
10234 PR middle-end/69845
10235 * fold-const.c (extract_muldiv_1): Correct test for multiplication
10238 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
10240 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
10241 using ix86_expand_binary_operator instead of gen_andsi3.
10243 2016-03-24 Richard Biener <rguenther@suse.de>
10245 PR tree-optimization/70396
10246 * tree-vect-stmts.c (vectorizable_comparison): Use
10247 get_vectype_for_scalar_type.
10249 2016-03-24 Richard Biener <rguenther@suse.de>
10251 PR middle-end/70370
10252 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
10253 with register bases.
10255 2016-03-24 Richard Biener <rguenther@suse.de>
10257 PR tree-optimization/70372
10258 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
10259 build_all_ones_cst to also handle vector types correctly.
10261 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
10264 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
10267 2016-03-23 Marek Polacek <polacek@redhat.com>
10270 * doc/invoke.texi: Document -Wignored-attributes.
10272 2016-03-23 Bin Cheng <bin.cheng@arm.com>
10274 PR tree-optimization/69042
10275 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
10276 parameter from 30 to 40.
10278 2016-03-23 Bin Cheng <bin.cheng@arm.com>
10280 PR tree-optimization/69042
10281 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
10282 for use with constant offset stripped in base.
10284 2016-03-23 Richard Biener <rguenther@suse.de>
10286 PR middle-end/70251
10287 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
10288 mode compatibility check.
10289 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
10291 2016-03-23 Jeff Law <law@redhat.com>
10293 PR tree-optimization/64058
10294 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
10296 (struct ssa_conflicts): Move up earlier in the file.
10297 (conflicts_, var_map_): New static variables.
10298 (initialize_conflict_count): New function to initialize the
10299 CONFLICT_COUNT field for each conflict pair.
10300 (compare_pairs): Lazily initialize the conflict count and use it
10301 as the first tie-breaker.
10302 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
10303 and wipe conflicts_ and map_ around the call to qsort. Remove
10304 special case for 2 coalesce pairs.
10305 * bitmap.c (bitmap_count_unique_bits): New function.
10306 (bitmap_count_bits_in_word): New function, extracted from
10308 (bitmap_count_bits): Use bitmap_count_bits_in_word.
10309 * bitmap.h (bitmap_count_unique_bits): Declare it.
10311 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
10314 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
10315 transparent alias chain for decl assembler name.
10316 * config/sol2.c (solaris_assemble_visibility): Likewise.
10318 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10320 * config/arm/arm1020e.md (1020call_op): Reduce reservation
10322 (v10_fdivs): Likewise.
10323 (v10_fdivd): Likewise.
10325 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10328 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
10329 to not call fclose twice on file.
10331 2016-03-23 Jakub Jelinek <jakub@redhat.com>
10333 PR tree-optimization/70354
10334 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
10335 oprnd0 is wider than oprnd1 and there is a cast from the wider
10336 type to oprnd1, mask it with the mask of the narrower type.
10339 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
10340 Optimize TARGET_STV splitters, if high or low word of last argument
10343 2016-03-22 Jeff Law <law@redhat.com>
10346 tree-ssa-threadbackward.c
10347 (fsm_find_control_statement_thread_paths): Correctly distinguish
10348 between old style jump threads vs FSM jump threads.
10350 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
10353 * config/i386/i386.c (scalar_chain::convert_op): Support
10354 uninitialized register usage case.
10356 2016-03-22 Richard Biener <rguenther@suse.de>
10358 PR middle-end/70251
10359 * genmatch.c (gen_transform): Adjust last parameter to a three-state
10361 (capture::gen_transform): ... to change behavior when substituting
10362 a condition into cond or not-cond expr context.
10363 (dt_simplify::gen_1): Adjust.
10364 * gimple-match-head.c: Include gimplify.h for unshare_expr.
10365 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
10366 last change and instead change to
10367 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
10368 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
10370 2016-03-22 Anthony Green <green@moxielogic.com>
10372 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
10373 issue for moxiebox targets.
10374 (CC1PLUS_SPEC): Ditto.
10376 2016-03-22 Richard Biener <rguenther@suse.de>
10378 PR middle-end/70333
10379 * fold-const.c (extract_muldiv_1): Properly perform multiplication
10382 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
10384 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
10386 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
10389 * config/i386/i386.c (def_builtin): Handle
10390 OPTION_MASK_ISA_AVX512VL to be and-ed with other
10392 (const struct builtin_description bdesc_special_args[]):
10393 Remove duplicate ISA bits.
10395 2016-03-22 Jakub Jelinek <jakub@redhat.com>
10398 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
10399 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
10400 in a way that works also for AVX512BW.
10403 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
10404 instead of source if operands[1] is xmm16 and above and
10405 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
10406 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
10409 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
10410 on assign if (*from_p) is a comparison, set it to
10411 TREE_NO_WARNING (*from_p).
10413 2016-03-21 Jakub Jelinek <jakub@redhat.com>
10415 PR middle-end/70326
10416 * lra.c (restore_scratches): Ignore deleted insns.
10418 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
10419 Jakub Jelinek <jakub@redhat.com>
10421 PR tree-optimization/70317
10422 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
10425 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
10428 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
10429 of ix86_expand_move.
10431 (movti): Use general_operand for operand 1 predicate.
10433 2016-03-21 Martin Liska <mliska@suse.cz>
10435 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
10437 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
10439 2016-03-21 Martin Liska <mliska@suse.cz>
10442 * ipa-icf.c (sem_function::parse): Skip static
10443 constructors and destructors.
10445 2016-03-21 Jakub Jelinek <jakub@redhat.com>
10448 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
10449 function-like macro, peek following token(s) if it is followed
10450 by CPP_OPEN_PAREN token with optional padding in between, and
10451 if not, don't treat it like a macro.
10453 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
10454 Alexander Monakov <amonakov@ispras.ru>
10456 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
10457 for the stabs debug format.
10459 2016-03-21 Richard Biener <rguenther@suse.de>
10461 PR tree-optimization/70310
10462 * tree-vect-generic.c (expand_vector_condition): Fold the built
10465 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
10468 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
10469 Block third alternative for AVX-512VL target,
10471 2016-03-21 Martin Liska <mliska@suse.cz>
10474 * hsa-brig.c (emit_function_directives): Mark unemitted
10475 global variables for emission.
10476 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
10477 (get_symbol_for_decl): Likewise.
10478 * hsa.h (struct hsa_symbol): New flag.
10480 2016-03-21 Richard Biener <rguenther@suse.de>
10482 PR tree-optimization/70288
10483 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
10484 we do not estimate unsimplified all-constant conditionals or
10485 switches as optimized away.
10487 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
10489 PR rtl-optimization/69102
10490 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
10491 when we have a readonly dependency context.
10493 2016-03-18 Jeff Law <law@redhat.com>
10495 PR rtl-optimization/70263
10496 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
10497 (update_equiv_regs): When trying to move a store to after the insn
10498 that sets the source of the store, make sure the store occurs after
10499 the insn that sets the source of the store. When successful note
10500 the REG_EQUIV note created in the dump file.
10502 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
10503 Bernd Schmidt <bschmidt@redhat.com>
10505 * doc/extend.texi: Document more potential problems with basic asms.
10507 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
10509 PR rtl-optimization/70278
10510 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
10513 2016-03-18 Jason Merrill <jason@redhat.com>
10515 * calls.c (load_register_parameters): Fix zero size sibcall logic.
10517 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
10519 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
10520 values to 128b regs.
10522 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
10524 PR tree-optimization/70252
10525 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
10526 boolean vector has a proper number of elements.
10527 (supportable_narrowing_operation): Likewise.
10529 2016-03-18 Tom de Vries <tom@codesourcery.com>
10532 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
10534 2016-03-18 Jakub Jelinek <jakub@redhat.com>
10536 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
10537 instead of replace_rtx for DEBUG_INSNs.
10539 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
10541 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
10542 load type reservations.
10544 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
10547 * config/pa/constraints.md: Revert 2015-02-13 change. Use
10548 define_constraint for "Q" and "T" constraints.
10550 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
10552 Tweak the pipeline model for Exynos M1
10554 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
10557 2016-03-17 David Malcolm <dmalcolm@redhat.com>
10560 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
10561 where one or both locations aren't within a line_map.
10563 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
10566 * opts.c (finish_options): Don't set flag_pie to the default if
10567 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
10570 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
10572 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
10573 true as ALL_REGS argument to replace_rtx.
10575 2016-03-17 Richard Biener <rguenther@suse.de>
10578 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
10581 2016-03-17 Jakub Jelinek <jakub@redhat.com>
10584 * rtl.h (replace_rtx): Add ALL_REGS argument.
10585 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
10586 equality and assert mode is the same, instead of just rtx pointer
10588 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
10589 true as ALL_REGS argument to replace_rtx.
10591 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
10593 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
10594 for boolean vector with vector mode only.
10595 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
10597 2016-03-17 Nick Clifton <nickc@redhat.com>
10600 * config/rx/rx.c (rx_print_integer): Print negative constants in
10603 2016-03-17 Jakub Jelinek <jakub@redhat.com>
10606 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
10608 2016-03-16 Richard Henderson <rth@redhat.com>
10609 Richard Biener <rguenth@suse.de>
10611 PR middle-end/70240
10612 PR middle-end/68215
10614 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
10615 first operand as is_gimple_condexpr.
10617 PR middle-end/70240
10618 PR middle-end/68215
10620 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
10621 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
10622 Do not gimplify the result.
10623 (do_unop): Adjust call to tree_vec_extract.
10624 (do_binop): Likewise.
10625 (do_compare): Likewise.
10626 (do_plus_minus): Likewise.
10627 (do_negate): Likewise.
10628 (expand_vector_condition): Likewise.
10629 (do_cond): Likewise.
10631 2016-03-16 Richard Henderson <rth@redhat.com>
10634 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
10635 (aarch64_classify_address): Use it.
10636 (aarch64_legitimize_address): Force all subexpressions of PLUS
10637 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
10639 2016-03-16 Jakub Jelinek <jakub@redhat.com>
10640 Richard Biener <rguenth@suse.de>
10643 * rtlanal.c (replace_rtx): For REG, if from is a REG,
10644 return to even if only REGNO is equal, and assert
10647 2016-03-11 Jeff Law <law@redhat.com>
10649 PR rtl-optimization/70224
10650 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
10652 2016-03-16 Richard Henderson <rth@redhat.com>
10654 PR middle-end/70199
10655 * function.h (struct function): Add has_forced_label_in_static.
10656 * gimplify.c (force_labels_r): Set it.
10657 * lto-streamer-in.c (input_struct_function_base): Read it.
10658 * lto-streamer-out.c (output_struct_function_base): Write it.
10659 * tree-inline.c (has_label_address_in_static_1): Remove.
10660 (copy_forbidden): Remove fndecl parameter; test
10661 has_forced_label_in_static.
10662 (inline_forbidden_p): Update call to copy_forbidden.
10663 (tree_versionable_function_p): Likewise.
10664 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
10665 (chkp_versioning): Likewise.
10666 * tree-inline.h (copy_forbidden): Update decl.
10668 2016-03-16 Marek Polacek <polacek@redhat.com>
10671 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
10672 function being thunked if the result type doesn't have fixed size.
10673 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
10674 doesn't have fixed size.
10676 2016-03-16 Bin Cheng <bin.cheng@arm.com>
10678 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
10679 reporting malformed loop nest.
10681 2016-03-16 Tom de Vries <tom@codesourcery.com>
10684 * ipa-devirt.c (possible_polymorphic_call_targets): Move
10685 nodes.length () == 1 test to before first nodes[0] access.
10687 2016-03-16 Tom de Vries <tom@codesourcery.com>
10689 PR tree-optimization/68715
10690 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
10691 single_pred_p test.
10693 2016-03-16 Tom de Vries <tom@codesourcery.com>
10695 PR tree-optimization/68809
10696 * graphite-scop-detection.c (same_close_phi_node): Test if result types
10699 2016-03-16 Carlos O'Donell <carlos@redhat.com>
10700 Sandra Loosemore <sandra@codesourcery.com>
10702 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
10703 on leaf attribute. Mention ELF interposition problems.
10705 2016-03-16 Alan Modra <amodra@gmail.com>
10707 PR rtl-optimization/69195
10708 PR rtl-optimization/47992
10709 * ira.c (indirect_jump_optimize): Ignore artificial defs.
10712 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
10715 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
10717 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10719 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
10721 2016-03-15 Jakub Jelinek <jakub@redhat.com>
10723 PR rtl-optimization/70222
10724 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
10725 optimization if mode is different from result_mode, queue up masking
10726 of the result in outer_op. Formatting fix.
10728 PR middle-end/70239
10729 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
10732 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
10734 PR rtl-optimization/69032
10735 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
10736 looping backwards over basic block insns.
10738 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
10741 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
10742 to non-speculative when propagating trap bits.
10744 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
10746 PR rtl-optimization/63384
10747 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
10748 DEBUG_INSN_P insns.
10750 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
10753 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
10754 factored out from ...
10755 (sched_analyze_insn): ... here.
10756 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
10757 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
10758 get_implicit_reg_pending_clobbers in it.
10759 (setup_id_reg_sets): Use setup_id_implicit_regs.
10760 (deps_init_id): Ditto.
10762 2016-03-15 Tom de Vries <tom@codesourcery.com>
10765 * cgraph.c (cgraph_node::get_body): Save, reset and restore
10767 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
10768 execute_function_dump.
10769 (execute_one_pass): Don't dump function if it will be dumped after ipa
10772 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
10774 * genrecog.c (match_pattern_2): If pred is NULL don't call
10775 safe_predicate_mode on it.
10777 2016-03-14 Jakub Jelinek <jakub@redhat.com>
10779 PR middle-end/70219
10780 * lra-constraints.c (delete_move_and_clobber): Change assertion
10781 to also allow dregno == 0.
10783 2016-03-14 Richard Henderson <rth@redhat.com>
10786 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
10787 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
10788 (reassociate_bb): Use optimize_vec_cond_expr; avoid
10789 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
10792 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
10795 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
10797 (lra_create_live_ranges_1): initialize hard register biggest_mode to
10799 * lra-constraints.c (split_reg): For hard regs, try to find the
10800 biggest single-register mode used in the function.
10802 2016-03-14 Richard Biener <rguenther@suse.de>
10804 PR tree-optimization/56365
10805 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
10806 constants to compare against.
10808 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
10811 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
10812 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
10813 (define_split for the GPR case): Use int_reg_operand instead of
10814 gpc_reg_operand for the output.
10816 2016-03-14 Tom de Vries <tom@codesourcery.com>
10818 PR tree-optimization/70045
10819 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
10820 create_empty_if_region_on_edge argument.
10822 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
10824 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
10825 (STACK_CHECK_PROTECT): Likewise.
10826 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10827 (STACK_CHECK_PROTECT): Likewise.
10828 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10829 (STACK_CHECK_PROTECT): Likewise.
10830 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
10831 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10832 (STACK_CHECK_PROTECT): Likewise.
10834 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
10836 PR rtl-optimization/69307
10837 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
10838 registers in modes that span more than one register.
10840 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
10843 * lra-constraints.c (delete_move_and_clobber): New.
10844 (remove_inheritance_pseudos): Use it.
10846 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
10849 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
10850 the libcall is LCT_THROW.
10851 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
10852 for the checking routine.
10854 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
10857 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
10858 optimization if we have direct move.
10859 (roundu32<mode>2_fprs): Likewise.
10861 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
10864 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
10866 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
10867 Arguments swapped. All callers changed. Take reg_renumber into
10868 account, and Calculate and compare register ranges for hard regs.
10870 2016-03-11 Jeff Law <law@redhat.com>
10872 PR tree-optimization/70190
10873 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10874 Handle cases where we can not extract the taken edge, even though we
10875 found a constant value.
10877 PR tree-optimization/64058
10878 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
10879 (num_coalesce_pairs): Move up earlier in file.
10880 (find_coalesce_pair): Initialize the INDEX field for each pair
10882 (compare_pairs): No longer sort on the elements in each pair.
10883 Instead break ties with the index of the coalesce pair.
10885 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10888 * config/aarch64/aarch64-protos.h
10889 (aarch64_save_restore_target_globals): New prototype.
10890 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
10891 Call the above when popping pragma.
10892 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
10894 (aarch64_set_current_function): Rewrite using the above.
10896 2016-03-11 Jakub Jelinek <jakub@redhat.com>
10898 PR tree-optimization/70177
10899 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
10900 (extract_ops_from_tree): ... this. In the 2 argument
10901 overload remove _1 suffix.
10902 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
10903 (extract_ops_from_tree): ... this.
10904 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
10906 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
10907 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
10908 extract_ops_from_tree instead of 2 operand one.
10910 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
10912 PR tree-optimization/70013
10913 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
10914 for constant-pool entries.
10916 2016-03-11 Jakub Jelinek <jakub@redhat.com>
10918 PR rtl-optimization/70174
10919 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
10920 followed by gen_lowpart on force_reg instead of just gen_lowpart.
10922 PR tree-optimization/70169
10923 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
10924 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
10927 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
10928 Jakub Jelinek <jakub@redhat.com>
10931 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
10932 of uninitialized values.
10934 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10936 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
10938 ("*trunctddd2"): New pattern definition.
10939 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
10942 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10944 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
10945 definitions for BFP and DFP rounding modes.
10946 ("fixuns_truncdddi2", "fixuns_trunctddi2")
10947 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
10948 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
10949 ("fix_trunctf<mode>2"): Use the new constants instead of magic
10952 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10954 * config/s390/constraints.md: Adjust comment.
10955 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
10956 s390_decompose_addrstyle_without_index.
10957 * config/s390/predicates.md (shift_count_or_setmem_operand):
10958 Rename to setmem_operand.
10959 * config/s390/s390-protos.h
10960 (s390_decompose_shift_count): Rename to
10961 s390_decompose_addrstyle_without_index.
10962 * config/s390/s390.c (s390_decompose_shift_count)
10963 (s390_mem_constraint, print_shift_count_operand)
10964 (print_operand_address, print_operand): Rename
10965 s390_decompose_shift_count to
10966 s390_decompose_addrstyle_without_index and rename
10967 print_shift_count_operand to print_addrstyle_operand troughout the
10969 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
10970 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
10971 Rename shift_count_or_setmem_operand to setmem_operand.
10972 * config/s390/vx-builtins.md ("vec_insert<mode>")
10973 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
10976 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10979 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
10980 Handle overlapping retval and newval.
10982 2016-03-10 Nick Clifton <nickc@redhat.com>
10985 * config/aarch64/aarch64.c
10986 (aarch64_override_options_after_change_1): When forcing
10987 flag_omit_frame_pointer to be true, use a special value that can
10988 be detected if this function is called again, thus preventing
10989 flag_omit_leaf_frame_pointer from being forced to be false.
10991 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10993 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
10994 Set x_flag_omit_leaf_frame_pointer when handling
10995 -momit-leaf-frame-pointer.
10997 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
11000 * cgraph.c (cgraph_node::dump): Dump split_part and
11001 indirect_call_target.
11002 * cgraph.h (cgraph_node): Add indirect_call_target flag.
11003 * ipa.c (has_addr_references_p): Cleanup.
11004 (is_indirect_call_target_p): New.
11005 (walk_polymorphic_call_targets): Do not mark virtuals that may be
11006 called indirectly as local.
11007 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
11009 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
11012 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
11013 on cxa_pure_virtual.
11015 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
11018 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
11020 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
11023 * tree.c (need_assembler_name_p): Only record main variant type names.
11025 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
11028 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
11029 Always define to 0 or 1.
11030 (TARGET_FIX_ERR_A53_843419): New macro.
11031 * config/aarch64/aarch64-elf-raw.h
11032 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
11033 * config/aarch64/aarch64-linux.h: Likewise.
11034 * config/aarch64/aarch64.c
11035 (aarch64_override_options_after_change_1): Do not default
11036 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
11038 (aarch64_attributes): Handle fix-cortex-a53-843419.
11039 (aarch64_can_inline_p): Likewise.
11040 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
11042 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
11043 Jakub Jelinek <jakub@redhat.com>
11045 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
11046 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
11047 DECL_COMMONS if flag_unconstrained_commons is set.
11048 * tree-dfa.c (get_ref_base_and_extent): Likewise.
11049 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
11050 (funconstrained-commons): Document.
11052 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
11054 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
11055 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
11057 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
11059 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
11060 has a proper number of elements.
11062 2016-03-10 Alan Modra <amodra@gmail.com>
11064 PR rtl-optimization/69195
11065 PR rtl-optimization/47992
11066 * ira.c (recorded_label_ref): Delete.
11067 (update_equiv_regs): Return void.
11068 (indirect_jump_optimize): New function.
11069 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
11070 before regstat_compute_ri. Don't rebuild_jump_labels here.
11071 Delete update_regstat.
11073 2016-03-10 Richard Biener <rguenther@suse.de>
11075 PR tree-optimization/70128
11076 * tree-ssa-structalias.c (set_uids_in_ptset): Set
11077 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
11079 2016-03-09 Jakub Jelinek <jakub@redhat.com>
11081 PR tree-optimization/70152
11082 * tree-sra.c (replace_removed_params_ssa_names): Copy over
11083 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
11086 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
11087 instead of gen_sse2_loadlpd.
11088 * config/i386/sse.md (*vec_concatv2df): Rename to...
11089 (vec_concatv2df): ... this.
11091 PR tree-optimization/70127
11092 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
11094 2016-03-09 David Malcolm <dmalcolm@redhat.com>
11098 * diagnostic-show-locus.c (compatible_locations_p): New function.
11099 (layout::layout): Sanitize ranges using compatible_locations_p.
11101 2016-03-09 David Malcolm <dmalcolm@redhat.com>
11105 * diagnostic-show-locus.c (layout_range::layout_range): Replace
11106 location_range param with three const expanded_locations * and a
11108 (layout::layout): Replace call to
11109 rich_location::lazily_expand_location with get_expanded_location.
11110 Extract the range and perform location expansion here, passing
11111 the results to the layout_range ctor.
11112 * diagnostic.c (source_range::debug): Delete.
11113 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
11114 of rich_location::get_expanded_location.
11115 * gcc-rich-location.c (get_range_for_expr): Delete.
11116 (gcc_rich_location::add_expr): Reimplement to avoid the
11117 rich_location::add_range overload that took a location_range,
11118 passing a location_t instead.
11120 2016-03-09 Richard Biener <rguenther@suse.de>
11121 Jakub Jelinek <jakub@redhat.com>
11123 PR tree-optimization/70138
11124 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
11125 Also skip vect_double_reduction_def.
11127 2016-03-09 Jakub Jelinek <jakub@redhat.com>
11130 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
11131 if the operand is "m".
11133 2016-03-09 Nathan Sidwell <nathan@acm.org>
11135 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
11137 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
11139 * config/i386/i386.c (processor_target_table): Fix cost table
11140 intialization order for znver1.
11142 2016-03-08 Jakub Jelinek <jakub@redhat.com>
11144 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
11145 - becuase -> because.
11146 * ipa-reference.c (ignore_module_statics): Likewise.
11147 * cgraph.c (cgraph_node::get_body): Likewise.
11148 * ipa-inline.c (early_inliner): Likewise.
11149 * ipa-devirt.c (types_same_for_odr): Likewise.
11150 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
11151 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
11153 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11155 * tree-ssa-math-opts.c: Fix typo in comment.
11157 2016-03-08 Jakub Jelinek <jakub@redhat.com>
11160 * config/i386/i386.c (scalar_chain::make_vector_copies,
11161 scalar_chain::convert_reg): Call end_sequence in between
11162 get_insns and emit_conversion_insns rather than after both
11165 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
11168 * config/i386/i386.h (machine_function): Add
11169 pc_thunk_call_expanded flag.
11170 (ix86_pc_thunk_call_expanded): New define.
11171 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
11172 (*set_got): Rename insn pattern from set_got.
11173 (*set_got_labelled): Rename inst pattern from set_got_labelled.
11174 * config/i386/i386.c (ix86_compute_frame_layout): Use
11175 ix86_pc_thunk_call_expanded to prevent red-zone.
11177 2016-03-07 Martin Jambor <mjambor@suse.cz>
11179 * hsa.h (hsa_get_ctor_statements): Declare.
11180 (hsa_get_dtor_statements): Likewise.
11181 (hsa_get_kernel_dispatch_type): Likewise.
11182 * hsa.c (hsa_get_ctor_statements): New function.
11183 (hsa_get_dtor_statements): Likewise.
11184 (hsa_get_kernel_dispatch_type): Likewise.
11185 * hsa-brig.c (hsa_cdtor_statements): Removed.
11186 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
11187 hsa_get_dtor_statements.
11188 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
11189 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
11191 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
11193 * config/arm/arm-cores.def (cortex-r8): New.
11194 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
11195 * config/arm/arm-tune.md: Likewise.
11196 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
11198 2016-03-07 Martin Sebor <msebor@redhat.com>
11200 PR rtl-optimization/19705
11201 * doc/invoke.texi (Options That Control Optimization): Clarify
11202 -fno-branch-count-reg.
11204 2016-02-26 Richard Biener <rguenther@suse.de>
11205 Jeff Law <law@redhat.com>
11207 PR tree-optimization/69740
11208 * cfghooks.c (remove_edge): Request loop fixups if we delete
11209 an edge that might turn an irreducible loop into a natural
11211 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
11212 Move after definition of loops_state_clear.
11214 2016-03-07 Bin Cheng <bin.cheng@arm.com>
11216 PR rtl-optimization/69052
11217 * rtlanal.c (commutative_operand_precedence): Set higher precedence
11220 2016-03-07 Tom de Vries <tom@codesourcery.com>
11222 PR tree-optimization/70116
11223 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
11224 is_tm_ending stmts and ubsan/asan internal functions.
11225 (find_duplicate): Use it. Don't test is_tm_ending here.
11227 2016-03-07 Richard Biener <rguenther@suse.de>
11229 PR tree-optimization/70115
11230 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
11231 (propagate_constants_for_unrolling): Use replace_uses_by.
11233 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
11235 PR middle-end/69916
11236 * omp-low.c (struct oacc_loop): Add ifns.
11237 (new_oacc_loop_raw): Initialize it.
11238 (finish_oacc_loop): Clear mask & flags if no ifns.
11239 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
11240 (oacc_loop_xform_loop): Add ifns arg & adjust.
11241 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
11243 2016-03-07 Richard Henderson <rth@redhat.com>
11246 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
11247 (insert_value_copy_on_edge): Likewise.
11249 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11251 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
11253 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11256 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
11258 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
11260 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
11262 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
11264 Fix sseimul type attribute.
11265 * config/i386/znver1.md
11266 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
11267 znver1_sseimul_avx256_load) : Fix the type attribute.
11268 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
11269 pipe usage and latency.
11271 2016-03-05 Jakub Jelinek <jakub@redhat.com>
11274 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
11275 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
11278 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
11281 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
11283 PR rtl-optimization/69941
11284 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
11285 the reg share its mode.
11287 2016-03-04 Jeff Law <law@redhat.com>
11289 PR tree-optimization/69196
11290 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11291 If the both SSA_NAMEs are anonymous, then consider them unassociated
11292 and include the PHI in the statement count.
11294 2016-03-05 Tom de Vries <tom@codesourcery.com>
11296 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
11297 construct in oacc routine. Check for oacc region in oacc routine.
11299 2016-03-04 Jakub Jelinek <jakub@redhat.com>
11302 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
11303 2016-02-22 changes, instead don't recurse if RECUR is already true.
11304 Don't change *dynamic_check if RECUR. Adjust recursive caller
11305 to pass true to the new argument.
11306 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
11309 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
11310 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
11312 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
11314 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
11316 PR rtl-optimization/57676
11317 * lra-assigns.c (lra_assign): Guard test for maximum iterations
11318 with flag_checking.
11320 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
11322 * tree-vect-patterns.c (search_type_for_mask): Handle
11323 comparison of booleans.
11325 2016-03-04 Jakub Jelinek <jakub@redhat.com>
11327 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
11331 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
11332 all other ops that have dw_val_class_die_ref operands,
11333 and DW_OP_GNU_entry_value.
11335 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11337 PR rtl-optimization/69904
11338 * config/arm/arm.c (arm_cannot_copy_insn_p):
11339 Return true for load-exclusive instructions.
11341 2016-03-03 Jakub Jelinek <jakub@redhat.com>
11344 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
11345 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
11346 the pattern no matter if it is used just by non-pattern, pattern
11348 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
11349 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
11350 oprnd1 def_stmt is in pattern, don't look through it.
11352 2016-03-03 Marek Polacek <polacek@redhat.com>
11354 PR middle-end/70050
11355 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
11357 2016-03-03 Martin Liska <mliska@suse.cz>
11359 PR tree-optimization/70043
11360 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
11361 previous statement if we see a debug statement.
11363 2016-03-03 Richard Biener <rguenther@suse.de>
11365 PR tree-optimization/55936
11366 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
11367 parameter and guard unsafe equivalence use.
11368 (vrp_evaluate_conditional_warnv_with_ops): Always use
11369 safe equivalences but not via the quadratic compare_names
11372 2016-03-03 Michael Collison <michael.collison@linaro.org>
11375 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
11376 for operand 1 to s_register_operand. Change predicate for operand
11377 2 to arm_not_immediate_operand.
11379 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
11381 * doc/tm.texi: Regenerated.
11383 2016-03-02 Richard Henderson <rth@redhat.com>
11386 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
11387 simplification when all args are positive non-fixed registers.
11389 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11391 * target.def (lra_p): Specify that new ports should use LRA.
11393 2016-03-02 Jakub Jelinek <jakub@redhat.com>
11396 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
11397 gimplify_type_sizes the type they refer to.
11398 (omp_notice_variable): Handle reference vars to VLAs.
11399 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
11400 reference to VLA decls in the second pass instead of first pass.
11402 2016-03-02 Tom de Vries <tom@codesourcery.com>
11404 PR tree-optimization/68659
11405 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
11406 new_expr == NULL_TREE.
11407 (get_new_name): Handle ADDR_EXPR.
11409 2016-03-02 Bin Cheng <bin.cheng@arm.com>
11411 PR rtl-optimization/69052
11412 * loop-invariant.c (canonicalize_address): New function.
11413 (inv_can_prop_to_addr_use): Check validity of address expression
11414 which is canonicalized by above function.
11416 2016-03-02 Alan Modra <amodra@gmail.com>
11419 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
11422 2016-03-02 Jakub Jelinek <jakub@redhat.com>
11425 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
11426 (*movhi_internal): Put mask moves from and to memory separately
11427 from moves from/to GPRs.
11429 2016-03-02 Richard Biener <rguenther@suse.de>
11431 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
11432 GENERIC expressions in GIMPLE.
11434 2016-03-02 Richard Biener <rguenther@suse.de>
11436 * config/i386/i386.c (type_natural_mode): Fix typo.
11438 2016-03-02 Nick Clifton <nickc@redhat.com>
11440 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
11442 2016-03-02 Richard Biener <rguenther@suse.de>
11443 Uros Bizjak <ubizjak@gmail.com>
11446 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
11448 2016-03-02 Richard Biener <rguenther@suse.de>
11450 PR middle-end/67278
11451 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
11453 2016-03-02 Marek Polacek <polacek@redhat.com>
11456 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
11457 "is promoted to" warning.
11459 2016-03-01 DJ Delorie <dj@redhat.com>
11461 * config.gcc: Deprecate mep-*.
11463 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
11465 PR middle-end/70025
11466 * lra-constraints.c (regno_val_use_in): New.
11467 (match_reload): Use it instead of regno_use_in.
11469 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
11471 PR rtl-optimization/70007
11472 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
11473 references present in REG_EQUAL notes attached to non-SET patterns.
11475 2016-03-01 Jeff Law <law@redhat.com>
11477 PR tree-optimization/69196
11478 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11479 Appropriately clamp the number of statements to copy when the
11480 thread path does not traverse a loop backedge.
11482 PR tree-optimization/69196
11483 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11484 Do count some PHIs in the thread path against the insn count. Decrease
11485 final statement count by one as the control statement in the last
11486 block will get removed. Remove special cased code for handling PHIs
11489 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
11492 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
11493 asm dialect alternatives to explicit GOTPCREL calls.
11495 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
11498 * ira.c (do_reload): Issue warning for generic stack checking here...
11499 * reload1.c (reload): ...instead of here and streamline it.
11501 2016-03-01 Nick Clifton <nickc@redhat.com>
11503 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
11505 2016-03-01 Richard Biener <rguenther@suse.de>
11507 PR tree-optimization/69983
11508 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
11509 types and fall back to operand_equal_p.
11511 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11514 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11516 * config/s390/constraints.md ("jm8"): New constraint.
11517 * config/s390/predicates.md ("const_int_8bitset_operand"): New
11519 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
11521 ("*setmem_long<setmem_and>"): New pattern.
11522 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
11524 ("*setmem_long_31z<setmem_and>"): New pattern.
11525 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
11526 New substitution rules with the required attributes.
11529 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11532 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11534 * gensupport.c (process_substs_on_one_elem): Split loop to
11535 complete mark_operands_used_in_match_dup on all expressions in the
11537 (adjust_operands_numbers): Inline into process_substs_on_one_elem
11538 and remove function.
11540 2016-03-01 Richard Biener <rguenther@suse.de>
11542 PR middle-end/70022
11543 * fold-const.c (fold_indirect_ref_1): Fix range checking for
11544 vector BIT_FIELD_REF extract.
11546 2016-03-01 Richard Biener <rguenther@suse.de>
11548 PR tree-optimization/69994
11549 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
11551 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
11553 PR tree-optimization/69956
11554 * tree-vect-stmts.c (supportable_widening_operation): Support
11555 multi-step conversion of boolean vectors.
11556 (supportable_narrowing_operation): Likewise.
11558 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11560 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
11563 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11565 * config/s390/subst.md (DSI_VI): New mode iterator.
11566 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
11567 * config/s390/vector.md ("vec_set<mode>"): Move expander before
11568 the insn definition.
11569 ("*vec_set<mode>"): Change predicate and add alternative to
11570 support only either register or const_int operands as element
11572 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
11574 ("vec_extract<mode>"): New expander.
11575 ("*vec_extract<mode>"): New insn definition supporting reg and
11576 const_int element selectors.
11577 ("*vec_extract<mode>_plus"): New insn definition supporting
11578 reg+const_int element selectors.
11579 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
11580 following expander+insn definition.
11581 ("<vec_shifts_name><mode>3"): New expander.
11582 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
11584 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11586 * config/s390/s390.md ("*tabort_1"): Change predicate to
11587 nonmemory_operand. Add a second alternative to cover
11588 register as well as const int operands.
11589 ("*tabort_1_plus"): New pattern definition.
11591 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11593 * config/s390/s390.md ("*ashrdi3_cc_31")
11594 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
11595 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
11596 Merge insn definitions into ...
11597 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
11598 New pattern definition.
11599 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
11600 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
11601 ("*ashr<mode>3_and"): Merge insn definitions into ...
11602 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
11603 New pattern definition.
11604 * config/s390/subst.md ("addr_style_op_cc_subst")
11605 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
11606 substitutions patterns plus attributes.
11607 Add ashiftrt to SUBST iterator.
11609 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11611 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
11612 op2 to nonmemory_operand.
11613 ("*<shift>di3_31", "*<shift>di3_31_and"):
11614 Merge into single pattern definition ...
11615 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
11616 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
11617 pattern definition ...
11618 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
11619 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
11622 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11624 * config/s390/predicates.md (const_int_6bitset_operand): New
11626 * config/s390/s390.md: Include subst.md.
11627 ("rotl<mode>3"): New expander.
11628 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
11630 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
11631 * config/s390/subst.md: New file.
11633 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11635 * config/s390/s390.md ("op_type", "atype", "length" attributes):
11636 Remove RRR type. It doesn't really exist.
11637 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
11639 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
11640 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
11641 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
11642 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
11643 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
11644 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
11645 `enabled' attribute.
11647 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11649 * gensupport.c (process_substs_on_one_elem): Split loop to
11650 complete mark_operands_used_in_match_dup on all expressions in the
11652 (adjust_operands_numbers): Inline into process_substs_on_one_elem
11653 and remove function.
11655 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
11658 * config/sparc/sparc.c (NWORDS_UP): Rename to...
11659 (CEIL_NWORDS): ...this. Use CEIL macro.
11660 (compute_fp_layout): Adjust to above renaming.
11661 (function_arg_union_value): Likewise.
11662 (sparc_arg_partial_bytes): Likewise.
11663 (sparc_function_arg_advance): Likewise.
11665 2016-02-29 Jeff Law <law@redhat.com>
11667 PR tree-optimization/70005
11668 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
11669 where an object with a boolean range is compared against a value
11672 PR tree-optimization/69999
11673 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
11674 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
11677 2016-02-29 Richard Biener <rguenther@suse.de>
11679 PR tree-optimization/69994
11680 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
11681 (get_unary_op): Look through nop conversions.
11682 (ops_equal_values_p): New function, look for equality diregarding
11684 (eliminate_plus_minus_pair): Use ops_equal_values_p
11685 (repropagate_negates): Do not use get_unary_op here.
11687 2016-02-29 Martin Liska <mliska@suse.cz>
11689 * system.h: Poison ENABLE_CHECKING macro.
11691 2016-02-29 Martin Liska <mliska@suse.cz>
11693 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
11694 is presented in dump flags.
11695 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11696 (hsa_regalloc): Likewise.
11698 2016-02-19 Richard Biener <rguenther@suse.de>
11700 PR tree-optimization/69980
11701 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
11702 permutation of those we need to keep.
11704 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
11707 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
11708 (NWORDS_UP): ...this
11709 (init_cumulative_args): Minor tweaks.
11710 (sparc_promote_function_mode): Likewise.
11711 (scan_record_type): Delete.
11712 (traverse_record_type): New function template.
11713 (classify_data_t): New structure type.
11714 (classify_registers): New inline function.
11715 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
11716 exhausted. Instantiate traverse_record_type on classify_registers and
11717 deal with the case of a structure passed in slot #15 with no FP field
11719 (assign_data_t): New structure type.
11720 (compute_int_layout): New static function.
11721 (compute_fp_layout): Likewise.
11722 (count_registers): New inline function.
11723 (assign_int_registers): New static function.
11724 (assign_fp_registers): Likewise.
11725 (assign_registers): New inline function.
11726 (function_arg_record_value_1): Delete.
11727 (function_arg_record_value_2): Likewise.
11728 (function_arg_record_value_3): Likewise.
11729 (function_arg_record_value): Adjust to above changes. Instantiate
11730 traverse_record_type on count_registers to first count the number of
11731 registers to be used and then on assign_registers to assign them.
11732 (function_arg_union_value): Adjust to above renaming.
11733 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
11734 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
11735 case of a structure passed in slot #15
11736 (sparc_function_arg_advance): Likewise.
11737 (function_arg_padding): Minor tweak.
11739 2016-02-29 Richard Biener <rguenther@suse.de>
11741 PR tree-optimization/69720
11742 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
11743 the adjustment_def path for possibly vectorized defs.
11744 (vect_create_epilog_for_reduction): Handle vectorized initial
11747 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
11749 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
11751 2016-02-27 Jeff Law <law@redhat.com>
11754 2016-02-26 Richard Biener <rguenther@suse.de>
11755 Jeff Law <law@redhat.com>
11757 PR tree-optimization/69740
11758 * cfghooks.c (remove_edge): Request loop fixups if we delete
11759 an edge that might turn an irreducible loop into a natural
11762 2016-02-27 Jakub Jelinek <jakub@redhat.com>
11764 PR rtl-optimization/69896
11765 * tree-vect-generic.c (get_compute_type): Avoid single element
11768 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
11770 Rename the AArch64 tuning option and related functions to enable the
11771 Newton series for the reciprocal square root to reflect its
11772 approximative characteristic.
11774 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
11775 function to "aarch64_emit_approx_rsqrt".
11776 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
11777 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
11778 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
11779 (xgene1_tunings): Likewise.
11780 (use_rsqrt_p): Likewise.
11781 (aarch64_emit_swrsqrt): Use new function name.
11782 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
11783 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
11784 text explaining this option.
11785 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
11787 2016-02-26 Jakub Jelinek <jakub@redhat.com>
11790 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11791 complain about -mallow-movmisalign without -mvsx if
11792 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
11794 2016-02-26 Joel Sherrill <joel@rtems.org>
11796 * config.gcc: Add x86_64-*-rtems*.
11797 * config/i386/rtems-64.h: New file.
11799 2016-02-26 Joel Sherrill <joel@rtems.org>
11801 * config.gcc: Add aarch64-*-rtems*.
11802 * config/aarch64/rtems.h: New file.
11804 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
11807 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
11808 shift amount using %h. Add comment.
11810 2016-02-26 Richard Biener <rguenther@suse.de>
11811 Jeff Law <law@redhat.com>
11813 PR tree-optimization/69740
11814 * cfghooks.c (remove_edge): Request loop fixups if we delete
11815 an edge that might turn an irreducible loop into a natural
11818 2016-02-26 Martin Jambor <mjambor@suse.cz>
11820 PR middle-end/69920
11821 * tree-sra.c (sra_modify_assign): Do not remove loads of
11822 uninitialized aggregates to SSA_NAMEs.
11824 2016-02-26 Richard Henderson <rth@redhat.com>
11827 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
11828 pseudo in case the target rtx matches the source of the left
11831 2016-02-26 Martin Jambor <mjambor@suse.cz>
11834 * hsa.h (hsa_type_packed_p): Declare.
11835 * hsa.c (hsa_type_packed_p): New function.
11836 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
11838 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
11839 * hsa-brig.c (emit_basic_insn): Likewise.
11841 2016-02-26 Martin Jambor <mjambor@suse.cz>
11844 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
11846 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
11848 2016-02-26 Martin Jambor <mjambor@suse.cz>
11850 * hsa.h (is_a_helper): New overload for hsa_op_immed for
11851 hsa_op_with_type operands.
11852 (hsa_unsigned_type_for_type): Declare.
11853 * hsa.c (hsa_unsigned_type_for_type): New function.
11854 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
11855 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
11856 the finalizer. Do not emit extra move.
11858 2016-02-26 Martin Jambor <mjambor@suse.cz>
11860 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
11861 atomic operations in private segment.
11863 2016-02-26 Martin Jambor <mjambor@suse.cz>
11865 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
11866 statements to wi->info. Also disallow omp simd constructs.
11867 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
11868 for not gridifying. Dump special string for omp_for.
11870 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11873 * config/aarch64/aarch64.c (aarch64_set_current_function):
11874 Save/restore target globals when switching to
11875 target_option_default_node.
11877 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11880 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
11881 Return 0 if !SHIFT_COUNT_TRUNCATED.
11883 2016-02-26 Jakub Jelinek <jakub@redhat.com>
11884 Eric Botcazou <ebotcazou@adacore.com>
11886 PR rtl-optimization/69891
11887 * dse.c (scan_insn): If we can't figure out memset arguments
11888 or they are non-constant, call clear_rhs_from_active_local_stores.
11890 2016-02-26 Martin Liska <mliska@suse.cz>
11892 * doc/extend.texi: Mention clog10, clog10f an clog10l
11893 in Builtins section.
11895 2016-02-26 Martin Liska <mliska@suse.cz>
11897 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
11899 (resolve_args_picking_1): Likewise.
11900 * dwarf2out.h (struct GTY): Likewise.
11902 2016-02-26 Martin Liska <mliska@suse.cz>
11904 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
11905 with flag_checking.
11906 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11908 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
11909 Martin Liska <mliska@suse.cz>
11911 * doc/install.texi: Mention --enable-valgrind-annotations.
11913 2016-02-26 Richard Biener <rguenther@suse.de>
11915 PR tree-optimization/69551
11916 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
11917 looking through aliases adjust DECL_PT_UID to refer to the
11918 ultimate alias target.
11920 2016-02-25 Martin Liska <mliska@suse.cz>
11922 PR middle-end/69919
11923 * alloc-pool.c (after_memory_report): New variable.
11924 * alloc-pool.h (base_pool_allocator ::release): Do not use
11925 the infrastructure if after_memory_report.
11926 * toplev.c (toplev::main): Mark after memory report.
11928 2016-02-25 Richard Biener <rguenther@suse.de>
11930 PR tree-optimization/48795
11931 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
11933 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
11936 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
11937 offloading is enabled and -fopenacc or -fopenmp is specified.
11938 (CRTOFFLOADEND): Likewise.
11939 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
11940 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
11941 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
11942 (offload_objects_file_name): New static var.
11943 (tool_cleanup): Remove offload_objects_file_name file.
11944 (find_offloadbeginend): Replace with ...
11945 (find_crtoffloadtable): ... this.
11946 (run_gcc): Remove offload_argc and offload_argv.
11947 Get offload_objects_file_name from -foffload-objects=... option.
11948 Read names of object files with offload from this file, pass them to
11949 compile_images_for_offload_targets. Don't call find_offloadbeginend and
11950 don't pass offloadbegin and offloadend to the linker. Don't pass
11951 offload non-LTO files to the linker, because now they're not claimed.
11953 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
11956 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
11957 on builtin_unreachable.
11959 2016-02-25 Jakub Jelinek <jakub@redhat.com>
11961 PR rtl-optimization/69896
11962 * regcprop.c: Include cfgrtl.h.
11963 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
11964 than remembered mode, either delete it (if noop_move_p), or
11965 treat like copy_p but not noop_p instruction.
11967 2016-02-24 Jakub Jelinek <jakub@redhat.com>
11970 * dwarf2out.c (gen_variable_die): Work around buggy LTO
11971 - allow NULL decl for Fortran DW_TAG_common_block variables.
11973 2016-02-24 Jason Merrill <jason@redhat.com>
11975 * common.opt (flifetime-dse): Add -flifetime-dse=1.
11977 2016-02-24 Richard Biener <rguenther@suse.de>
11978 Jakub Jelinek <jakub@redhat.com>
11980 PR middle-end/69760
11981 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
11982 conditionally executed ops to well-defined overflow behavior.
11984 2016-02-24 Jakub Jelinek <jakub@redhat.com>
11986 PR middle-end/69915
11987 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
11990 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11992 PR rtl-optimization/69886
11993 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
11994 argument. Use it when checking validity of set instructions.
11995 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
11996 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
11998 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
11999 * store-motion.c (find_moveable_store): Update
12000 can_assign_to_reg_without_clobbers_p callsite.
12002 2016-02-24 Richard Biener <rguenther@suse.de>
12004 PR middle-end/68963
12005 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
12007 (record_nonwrapping_iv): Do not fall back to the low/high bound
12008 for non-constant IV bases if the stmt is not always executed.
12010 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12012 * config/arm/arm-cores.def (cortex-a32): New entry.
12013 * config/arm/arm-tables.opt: Regenerate.
12014 * config/arm/arm-tune.md: Regenerate.
12015 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
12016 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
12017 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
12018 for -mcpu and -mtune.
12020 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12023 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
12024 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
12025 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
12026 (atomic_loaddi_1): Delete.
12027 (atomic_loaddi): Rewrite expander using the above changes.
12029 2016-02-24 Jakub Jelinek <jakub@redhat.com>
12032 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
12035 2016-02-24 Jakub Jelinek <jakub@redhat.com>
12036 Richard Biener <rguenth@suse.de>
12038 PR middle-end/69909
12039 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
12040 set_mem_attributes if tem is SSA_NAME which got expanded
12043 2016-02-24 Richard Biener <rguenther@suse.de>
12045 PR tree-optimization/69907
12046 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
12047 end of permutations for BB vectorization.
12049 2016-02-24 Christian Bruel <christian.bruel@st.com>
12051 * config/arm/arm-c.c (arm_option_override): Initialize
12052 target_option_current_node.
12053 * config/arm/arm.c (arm_pragma_target_parse): Replace
12054 build_target_option_node call by target_option_current_node.
12055 Set target_option_current_node.
12058 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
12061 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
12062 define_insn_and_split to define_insn.
12063 (zero_extendqi<mode>2_dot2): Same.
12064 (extendqi<mode>2_dot): Same.
12065 (extendqi<mode>2_dot2): Same.
12067 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
12069 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
12070 and add bypass for AES{D,E} and AESMC pairs.
12071 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
12074 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
12076 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
12077 series for reciprocal square root in Exynos M1.
12079 2016-02-23 Martin Sebor <msebor@redhat.com>
12082 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
12083 __builtin_alloca_with_align.
12085 2016-02-23 Richard Henderson <rth@redhat.com>
12087 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
12088 (ix86_register_pragmas): Remove __seg_tls.
12089 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
12090 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
12091 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
12092 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
12093 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
12094 * doc/extend.texi (__seg_tls): Remove item.
12096 2016-02-23 Richard Biener <rguenther@suse.de>
12098 * alloc-pool.h (struct allocation_object): Make id member
12099 conditional on CHECKING_P again.
12100 (get_instance): Adjust.
12101 (base_pool_allocator): Likewise.
12103 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
12105 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
12106 (parallelize_loops): In OpenACC kernels mode, set n_threads to
12108 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
12110 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
12112 2016-02-23 Richard Biener <rguenther@suse.de>
12114 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
12115 * bitmap.h (struct bitmap_usage): Likewise.
12116 (bitmap_move): Declare.
12117 * bitmap.c (register_overhead): Take size_t argument.
12118 (bitmap_move): New function.
12119 * df-problems.c (df_rd_transfer_function): Use bitmap_move
12120 to properly account overhead.
12121 * tree.c (free_node): Use tree_size.
12123 2016-02-23 Jakub Jelinek <jakub@redhat.com>
12126 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
12127 when inverting comparison.
12130 * common.opt (Wunreachable-code): Add Warning flag.
12132 2016-02-23 Mark Wielaard <mjw@redhat.com>
12133 Jakub Jelinek <jakub@redhat.com>
12136 * cgraphunit.c (check_global_declaration): Check main_input_filename
12137 and DECL_SOURCE_FILE are not NULL.
12139 2016-02-23 Martin Jambor <mjambor@suse.cz>
12141 PR tree-optimization/69666
12142 * tree-sra.c (sra_modify_assign): Do not attempt to create
12143 default_def replacements for unscalarizable regions.
12145 2016-02-20 Mark Wielaard <mjw@redhat.com>
12148 * cgraphunit.c (check_global_declaration): Check level of
12149 warn_unused_const_variable and main_input_filename.
12150 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
12151 (-Wunused-variable): For C implies -Wunused-const-variable=1.
12152 (-Wunused-const-variable): Explain levels 1 and 2.
12154 2016-02-22 Jakub Jelinek <jakub@redhat.com>
12157 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
12158 identical arguments. Formatting and spelling fixes.
12161 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
12166 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
12167 and m68k-devices.def.
12168 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
12169 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
12171 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
12173 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
12174 and HImode registers.
12176 2016-02-22 Richard Biener <rguenther@suse.de>
12178 PR tree-optimization/69882
12179 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
12180 preserve permutations present because of gaps.
12181 (vect_supported_load_permutation_p): Always continue checking
12182 permutations after vect_attempt_slp_rearrange_stmts.
12184 2016-02-22 Bin Cheng <bin.cheng@arm.com>
12186 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
12187 min_profitable_estimate, rather than min_profitable_iters.
12189 2016-02-22 Jakub Jelinek <jakub@redhat.com>
12192 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
12193 SImode for last match_operand.
12195 2016-02-22 Martin Liska <mliska@suse.cz>
12197 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
12198 return bitsize - 1 as the return value.
12200 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
12204 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
12205 Handle negative shift counts.
12206 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
12207 force_reg on the shift constant.
12208 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
12209 (lshrsi3_d): Handle negative shift counts.
12211 2016-02-22 Richard Biener <rguenther@suse.de>
12212 Tom de Vries <tom@codesourcery.com>
12214 * graph.c: Include dumpfile.h.
12215 (print_graph_cfg): Split into three overloads.
12216 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
12218 2016-02-22 Tom de Vries <tom@codesourcery.com>
12220 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
12223 2016-02-22 Richard Biener <rguenther@suse.de>
12226 * ipa-inline-transform.c (inline_call): When not updating
12227 overall summaries adjust self size by the growth estimate.
12228 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
12229 hash-set, do not update overall summaries here. Renamed from ...
12230 (inline_to_all_callers): ... this which is now wrapping the
12231 above and performing delayed overall summary update.
12232 (early_inline_small_functions): Delay updating of the overall
12235 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
12237 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
12240 2016-02-19 Jakub Jelinek <jakub@redhat.com>
12243 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
12244 :%* in %:gt() argument.
12245 (greater_than_spec_func): Adjust for expecting only numbers,
12246 if there are more than two numbers, compare the last two.
12248 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
12250 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
12251 -Wnarrowing with -std.
12253 2016-02-19 Jakub Jelinek <jakub@redhat.com>
12256 * expr.c (store_field): Don't use bit-field path if exp is
12257 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
12258 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
12259 and the assignment can be performed by bitwise copy. Formatting
12262 PR middle-end/69838
12263 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
12264 call copy_reg_eh_region_note_forward on before and/or after sequences
12265 and remove note from insn if it no longer can throw.
12268 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
12269 if TARGET_AVX512BW.
12271 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12273 * config/s390/vector.md: Add missing commutative operand markers
12274 to the patterns which qualify for one.
12275 * config/s390/vx-builtins.md: Likewise.
12277 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12279 * config/s390/vector.md (VI, VI_QHS): Add single element vector
12280 types to mode iterators.
12281 (vec_double): ... and mode attribute.
12282 * config/s390/vx-builtins.md (non_vec_int): Likewise.
12284 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12286 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
12287 Change the predicate of op2 from nonimmediate to general and let
12288 reload fix it if necessary.
12290 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12292 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
12294 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12296 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
12299 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12301 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
12302 * config/s390/s390.c (s390_expand_vec_movstr): New function.
12303 * config/s390/s390.md ("movstr<P:mode>"): Call
12304 s390_expand_vec_movstr.
12306 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12308 * config/s390/s390.md: Add missing output modifier for operand 1
12309 to print it as address properly.
12311 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12313 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
12314 * config/s390/2964.md: New file.
12315 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
12316 of insn grouping attributes depending on the CPU level.
12317 (s390_get_unit_mask): New function.
12318 (s390_sched_score): Remove the OOO from the scheduling macros.
12319 Add loop to calculate a score for the instruction mix.
12320 (s390_sched_reorder): Likewise plus improve debug output.
12321 (s390_sched_variable_issue): Rename macros as above. Calculate
12322 the unit distances after actually scheduling an insn. Improve
12324 (s390_sched_init): Clear last_scheduled_unit_distance array.
12325 * config/s390/s390.md: Include 2964.md.
12327 2016-02-18 Jakub Jelinek <jakub@redhat.com>
12330 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
12331 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
12332 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
12333 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
12334 *avx512f_<code>v8div16qi2_mask_1): New insns.
12336 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
12339 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
12342 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
12343 earlyclobber from target. Use wF constraint for fused memory
12345 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
12347 2016-02-18 Jakub Jelinek <jakub@redhat.com>
12348 Martin Liska <mliska@suse.cz>
12351 * cfgexpand.c (asan_sanitize_stack_p): New function.
12352 (partition_stack_vars): Use the function.
12353 (expand_stack_vars): Likewise.
12354 (defer_stack_allocation): Likewise.
12355 (expand_used_vars): Likewise.
12357 2016-02-18 Richard Biener <rguenther@suse.de>
12359 PR middle-end/69553
12360 * fold-const.c (operand_equal_p): Properly compare offsets for
12361 IMAGPART_EXPR and ARRAY_REF.
12363 2016-02-18 Nick Clifton <nickc@redhat.com>
12367 * config/arm/arm.c (arm_option_override_internal): Disable
12368 interworking if the target does not support thumb instructions.
12369 (arm_reload_in_hi): Handle the case where a register to register
12370 move needs reloading because there is no simple pattern to handle
12372 (arm_reload_out_hi): Likewise.
12374 2016-02-18 Richard Biener <rguenther@suse.de>
12376 PR middle-end/69854
12377 * match.pd: Don't use fold_binary or fold_unary for folding
12380 2016-02-17 Jakub Jelinek <jakub@redhat.com>
12383 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
12384 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
12385 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
12386 warn on gimple_no_warning_p statements.
12388 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
12390 * doc/extend.texi (C++ Attributes): Correct description of
12391 warn_unused type attribute.
12393 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12395 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
12396 correct instruction.
12398 2016-02-17 Richard Biener <rguenther@suse.de>
12400 PR rtl-optimization/69609
12401 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
12402 (find_traces_1_round): When ending a trace update cached priority
12404 (bb_to_key): Use cached priority when available.
12405 (copy_bb): Initialize cached priority.
12406 (reorder_basic_blocks_software_trace_cache): Likewise.
12408 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12411 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
12413 (aarch64_comparison_operator): Break overly long line into two.
12414 (aarch64_comparison_operation): Likewise.
12415 * config/aarch64/aarch64.md (cstorecc4): Use
12416 aarch64_comparison_operator_mode instead of
12417 aarch64_comparison_operator.
12418 (cstore<mode>4): Likewise.
12419 (aarch64_cstore<mode>): Likewise.
12420 (*cstoresi_insn_uxtw): Likewise.
12421 (cstore<mode>_neg): Likewise.
12422 (*cstoresi_neg_uxtw): Likewise.
12424 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12427 * config/arm/predicates.md (arm_comparison_operator_mode):
12429 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
12430 instead of arm_comparison_operator.
12431 (*mov_negscc): Likewise.
12432 (*mov_notscc): Likewise.
12433 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
12434 (*thumb2_mov_negscc): Likewise.
12435 (*thumb2_mov_negscc_strict_it): Likewise.
12436 (*thumb2_mov_notscc): Likewise.
12437 (*thumb2_mov_notscc_strict_it): Likewise.
12439 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
12441 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
12442 Add missing return.
12444 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
12446 * config/visium/visium.c (machine_libfunc_index): New enum.
12447 (machine_libfuncs): New structure.
12448 (visium_libfuncs): New static variable.
12449 (TARGET_INIT_LIBFUNCS): Define to...
12450 (visium_init_libfuncs): ...this. New function.
12451 (expand_block_move_4): Use the appropriate libfunc.
12452 (expand_block_move_2): Likewise.
12453 (expand_block_move_1): Likewise.
12454 (expand_block_set_4): Likewise.
12455 (expand_block_set_2): Likewise.
12456 (expand_block_set_1): Likewise.
12457 (visium_trampoline_init): Likewise.
12459 2016-02-17 Nick Clifton <nickc@redhat.com>
12461 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
12462 TI's devices.csv file as of March 2016.
12464 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
12467 * opts-global.c (handle_common_deferred_options): Introduce and
12468 initialize two global variables to remember command-line options
12469 specifying a stack-limiting register.
12470 * opts.h: Add extern declarations of the two new global variables.
12471 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
12472 variable based on the values of the two new global variables.
12474 2016-02-16 Jakub Jelinek <jakub@redhat.com>
12477 * common.opt (Wnonnull-compare): New warning.
12478 * doc/invoke.texi (-Wnonnull): Remove text about comparison
12479 of arguments against NULL.
12480 (-Wnonnull-compare): Document.
12481 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
12482 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
12483 * passes.def (pass_warn_nonnull_compare): Add.
12484 * gimple-ssa-nonnull-compare.c: New file.
12486 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
12488 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
12489 AARCH64_EXTRA_TUNE_RECIP_SQRT.
12491 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
12493 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
12494 reciprocal sqrt for -mlow-precision-recip-sqrt.
12496 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
12497 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12499 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
12500 always use lane loads to construct non-constant vectors.
12502 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
12504 * config/aarch64/aarch64.md
12505 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
12506 constraints for operand 3.
12507 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
12509 2016-02-16 Jakub Jelinek <jakub@redhat.com>
12510 Richard Biener <rguenther@suse.de>
12512 PR tree-optimization/69820
12513 * tree-vect-patterns.c (type_conversion_p): Return false if
12514 *orig_type is unsigned single precision or boolean.
12515 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
12518 2016-02-16 Jakub Jelinek <jakub@redhat.com>
12520 PR rtl-optimization/69764
12521 PR rtl-optimization/69771
12522 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
12523 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
12525 2016-02-16 Richard Biener <rguenther@suse.de>
12527 PR tree-optimization/69776
12528 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
12530 (indirect_refs_may_alias_p): Likewise.
12531 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
12532 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
12533 according to tbaa_p.
12534 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
12535 (optimize_stmt): For redundant store discovery do not allow tbaa.
12537 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
12539 PR tree-optimization/69714
12540 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
12541 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
12543 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
12545 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
12546 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
12547 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
12548 * config/arc/arc.c (arc_init): Check FPU options.
12549 (get_arc_condition_code): Handle new CC_FPU* modes.
12550 (arc_select_cc_mode): Likewise.
12551 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
12552 register pair only. Allow access for ARCv2 accumulator.
12553 (gen_compare_reg): Whenever we have FPU support use FPU compare
12555 (arc_reorg): Don't generate brcc insns when FPU compare
12556 instructions are involved.
12557 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
12558 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
12559 floating point emulation.
12560 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
12561 (REVERSE_CONDITION): Add new CC_FPU* modes.
12562 (TARGET_FP_SP_BASE): Define.
12563 (TARGET_FP_DP_BASE): Likewise.
12564 (TARGET_FP_SP_FUSED): Likewise.
12565 (TARGET_FP_DP_FUSED): Likewise.
12566 (TARGET_FP_SP_CONV): Likewise.
12567 (TARGET_FP_DP_CONV): Likewise.
12568 (TARGET_FP_SP_SQRT): Likewise.
12569 (TARGET_FP_DP_SQRT): Likewise.
12570 (TARGET_FP_DP_AX): Likewise.
12571 * config/arc/arc.md (ARCV2_ACC): New constant.
12572 (type): New fpu type attribute.
12573 (SDF): Conditional iterator.
12574 (cstore<mode>, cbranch<mode>): Change expand condition.
12575 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
12576 handles FPU/FPX cases as well.
12577 * config/arc/arc.opt (mfpu): New option.
12578 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
12580 (adddf3, muldf3, subdf3): Removed.
12581 * config/arc/predicates.md (proper_comparison_operator): Recognize
12583 * config/arc/fpu.md: New file.
12584 * doc/invoke.texi (ARC Options): Document mfpu option.
12586 2016-02-16 Richard Biener <rguenther@suse.de>
12588 PR rtl-optimization/69291
12589 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
12590 noce_operand_ok check.
12592 2016-02-16 Tom de Vries <tom@codesourcery.com>
12595 * omp-low.c (simd_clone_create): Remove call to
12596 symtab->call_cgraph_insertion_hooks.
12598 2016-02-16 Jakub Jelinek <jakub@redhat.com>
12600 PR tree-optimization/69802
12601 * tree-ssa-reassoc.c (update_range_test): If op is
12602 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
12603 op == 1 test of precision 1 integral op, otherwise handle
12604 that case as op itself. Fix up formatting.
12605 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
12608 2016-02-16 Richard Biener <rguenther@suse.de>
12610 PR tree-optimization/69586
12611 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
12612 types for conversion sources.
12614 2016-02-16 Richard Biener <rguenther@suse.de>
12616 PR middle-end/69801
12617 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
12618 mask OEP_ADDRESS_OF.
12620 2016-02-16 Alan Modra <amodra@gmail.com>
12623 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
12624 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
12625 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
12627 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
12628 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
12629 (p8_fmrgow_<mode>): Likewise.
12630 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
12632 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
12633 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
12634 to use movdi_internal64. Remove op0_di.
12635 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
12637 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
12639 Add support for the FCCMP insn types
12641 * config/aarch64/aarch64.md (fccmp): Change insn type.
12642 (fccmpe): Likewise.
12643 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
12644 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
12645 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
12646 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
12647 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
12648 * config/arm/types.md (fccmps): Add new insn type.
12649 (fccmpd): Likewise.
12651 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
12653 * alias.c (get_alias_set): Fix a typo in comment.
12655 2016-02-15 Richard Biener <rguenther@suse.de>
12657 PR tree-optimization/69595
12658 * match.pd: Complete range test simplification to true.
12660 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
12662 PR rtl-optimization/69648
12663 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
12664 pic_offset_table_rtx.
12666 PR rtl-optimization/69752
12667 * ira.c (update_equiv_regs): When looking for more than a single SET,
12668 also take other side effects into account.
12670 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
12672 * config/s390/s390.c (s390_function_profiler): Add a new sequence
12673 for z900+ CPUs in 31-bit mode.
12675 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
12677 * common/config/s390/s390-common.c (s390_supports_split_stack):
12679 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
12680 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
12681 * config/s390/s390.c (struct machine_function): New field
12682 split_stack_varargs_pointer.
12683 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
12684 in s390_emit_prologue.
12685 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
12687 (morestack_ref): New global.
12688 (SPLIT_STACK_AVAILABLE): New macro.
12689 (s390_expand_split_stack_prologue): New function.
12690 (s390_live_on_entry): New function.
12691 (s390_va_start): Use split-stack vararg pointer if appropriate.
12692 (s390_asm_file_end): Emit the split-stack note sections.
12693 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
12694 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
12695 (UNSPECV_SPLIT_STACK_CALL): New unspec.
12696 (UNSPECV_SPLIT_STACK_DATA): New unspec.
12697 (split_stack_prologue): New expand.
12698 (split_stack_space_check): New expand.
12699 (split_stack_data): New insn.
12700 (split_stack_call): New expand.
12701 (split_stack_call_*): New insn.
12702 (split_stack_cond_call): New expand.
12703 (split_stack_cond_call_*): New insn.
12705 2016-02-15 Richard Biener <rguenther@suse.de>
12707 PR tree-optimization/69783
12708 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12709 Add trivially correct cases.
12711 2016-02-15 Tom de Vries <tom@codesourcery.com>
12714 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
12716 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
12718 2016-02-15 Richard Biener <rguenther@suse.de>
12720 PR tree-optimization/69776
12721 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
12722 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
12723 indicate whether we can use TBAA to disambiguate against stores.
12724 Use alias-set zero if not.
12725 (visit_reference_op_store): Do not use TBAA when looking up
12727 * tree-ssa-pre.c (compute_avail): Use TBAA here.
12728 (eliminate_dom_walker::before_dom_children): But not when looking
12729 up redundant stores.
12731 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
12733 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
12735 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12737 * config/i386/znver1.md
12738 (znver1_pop, znver1_pop_mem,
12739 znver1_load_imov_double_store,
12740 znver1_load_imov_direct_store,
12741 znver1_load_imov_direct_load,
12742 znver1_load_imov_double_load): Add new.
12743 (znver1_insn, znver1_insn_load): Add icmov type.
12744 (znver1_sseavx_fma,
12745 znver1_sseavx_fma_load,
12747 znver1_avx256_fma_load): Fix pipe usage.
12749 2016-02-14 Alan Modra <amodra@gmail.com>
12752 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
12753 with an invalid hard reg, reload just the reg not the entire
12754 pre/post-inc/dec address expression.
12756 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
12759 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
12760 fixed R1_REG scratch reg.
12761 (sibcall_value_pcrel_fdpic): Likewise.
12763 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
12767 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
12769 2016-02-12 Walter Lee <walt@tilera.com>
12771 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
12772 * config/tilegx/t-tilegx: Likewise.
12774 2016-02-12 David Malcolm <dmalcolm@redhat.com>
12777 * diagnostic-show-locus.c (struct line_span): New struct.
12778 (layout::get_first_line): Delete.
12779 (layout::get_last_line): Delete.
12780 (layout::get_num_line_spans): New member function.
12781 (layout::get_line_span): Likewise.
12782 (layout::print_heading_for_line_span_index_p): Likewise.
12783 (layout::get_expanded_location): Likewise.
12784 (layout::calculate_line_spans): Likewise.
12785 (layout::m_first_line): Delete.
12786 (layout::m_last_line): Delete.
12787 (layout::m_line_spans): New field.
12788 (layout::layout): Update comment. Replace m_first_line and
12789 m_last_line with m_line_spans, replacing their initialization
12790 with a call to calculate_line_spans.
12791 (diagnostic_show_locus): When printing source lines and
12792 annotations, rather than looping over a single span
12793 of lines, instead loop over each line_span within
12794 the layout, with an inner loop over the lines within them.
12795 Call the context's start_span callback when changing line spans.
12796 * diagnostic.c (diagnostic_initialize): Initialize start_span.
12797 (diagnostic_build_prefix): Break out the building of the location
12798 part of the string into...
12799 (diagnostic_get_location_text): ...this new function, rewriting
12800 it from nested ternary expressions to a sequence of "if"
12802 (default_diagnostic_start_span_fn): New function.
12803 * diagnostic.h (diagnostic_start_span_fn): New typedef.
12804 (diagnostic_context::start_span): New field.
12805 (default_diagnostic_start_span_fn): New prototype.
12807 2016-02-12 David Malcolm <dmalcolm@redhat.com>
12810 * gcc.c (driver::finalize): Fix cleanup of "specs".
12812 2016-02-12 David Malcolm <dmalcolm@redhat.com>
12816 * gcc.c (driver::driver): Initialize m_option_suggestions.
12817 (driver::~driver): Clean up m_option_suggestions.
12818 (suggest_option): Convert to...
12819 (driver::suggest_option): ...this, and split out into
12820 driver::build_option_suggestions and find_closest_string.
12821 (driver::build_option_suggestions): New function, from
12822 first half of suggest_option. Special-case
12823 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
12824 the sanitizer_opts array. For options of enum types, add the
12825 various enum values to the candidate strings.
12826 (driver::handle_unrecognized_options): Remove "const".
12827 * gcc.h (driver::handle_unrecognized_options): Likewise.
12828 (driver::build_option_suggestions): New decl.
12829 (driver::suggest_option): New decl.
12830 (driver::m_option_suggestions): New field.
12831 * opts-common.c (add_misspelling_candidates): New function.
12832 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
12833 and make non-static.
12834 * opts.h (sanitizer_opts): New array decl.
12835 (add_misspelling_candidates): New function decl.
12836 * spellcheck.c (find_closest_string): New function.
12837 * spellcheck.h (find_closest_string): New function decl.
12839 2016-02-12 Jakub Jelinek <jakub@redhat.com>
12841 PR rtl-optimization/69764
12842 PR rtl-optimization/69771
12843 * optabs.c (expand_binop_directly): For shift_optab_p, force
12844 convert_modes with VOIDmode if xop1 has VOIDmode.
12846 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
12849 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
12850 to correctly determine instrumentation thunks.
12852 2016-02-12 Jakub Jelinek <jakub@redhat.com>
12855 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
12856 type by reference, force lhs on the call.
12859 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
12860 Compute retval and retbnd early in all cases if split_part_return_p
12861 and return_bb is not EXIT. Remove all clobber stmts and reset
12862 all debug stmts that refer to SSA_NAMEs defined in split part,
12863 except if it is retval, in that case replace the old retval with the
12864 lhs of the call to the split part.
12866 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
12869 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
12871 PR middle-end/66726
12872 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12873 whose result is used in PHI.
12874 (maybe_optimize_range_tests): Likewise.
12875 (final_range_test_p): Likweise.
12877 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
12879 PR middle-end/66726
12880 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12881 whose result is used in PHI.
12882 (maybe_optimize_range_tests): Likewise.
12883 (final_range_test_p): Likweise.
12885 2016-02-12 Jakub Jelinek <jakub@redhat.com>
12887 * cgraph.c: Spelling fixes - behaviour -> behavior and
12888 neighbour -> neighbor.
12889 * target.def: Likewise.
12890 * sel-sched.c: Likewise.
12891 * config/mips/mips.c: Likewise.
12892 * config/arc/arc.md: Likewise.
12893 * config/arm/cortex-a57.md: Likewise.
12894 * config/arm/arm.c: Likewise.
12895 * config/arm/neon.md: Likewise.
12896 * config/arm/arm-c.c: Likewise.
12897 * config/vms/vms-c.c: Likewise.
12898 * config/s390/s390.c: Likewise.
12899 * config/i386/znver1.md: Likewise.
12900 * config/i386/i386.c: Likewise.
12901 * config/ia64/hpux-unix2003.h: Likewise.
12902 * config/msp430/msp430.md: Likewise.
12903 * config/rx/rx.c: Likewise.
12904 * config/rx/rx.md: Likewise.
12905 * config/aarch64/aarch64-simd.md: Likewise.
12906 * config/aarch64/aarch64.c: Likewise.
12907 * config/nvptx/nvptx.c: Likewise.
12908 * config/bfin/bfin.c: Likewise.
12909 * config/cris/cris.opt: Likewise.
12910 * config/rs6000/rs6000.c: Likewise.
12911 * target.h: Likewise.
12912 * spellcheck.c: Likewise.
12913 * ira-build.c: Likewise.
12914 * tree-inline.c: Likewise.
12915 * builtins.c: Likewise.
12916 * lra-constraints.c: Likewise.
12917 * explow.c: Likewise.
12918 * hwint.h: Likewise.
12919 * targhooks.c: Likewise.
12920 * tree-vect-data-refs.c: Likewise.
12921 * expr.c: Likewise.
12922 * doc/tm.texi: Likewise.
12923 * doc/extend.texi: Likewise.
12924 * doc/install.texi: Likewise.
12925 * doc/md.texi: Likewise.
12926 * tree-ssa-tail-merge.c: Likewise.
12927 * sched-int.h: Likewise.
12928 * match.pd: Likewise.
12929 * sched-ebb.c: Likewise.
12930 * target.def (omit_struct_return_reg): Likewise.
12931 * gimple-ssa-isolate-paths.c: Likewise.
12932 (find_implicit_erroneous_behaviour): Renamed to...
12933 (find_implicit_erroneous_behavior): ... this.
12934 (find_explicit_erroneous_behaviour): Renamed to...
12935 (find_explicit_erroneous_behavior): ... this.
12936 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
12938 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
12940 PR rtl-optimization/64682
12941 PR rtl-optimization/69567
12942 PR rtl-optimization/69737
12943 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
12944 in I2 as well, just lose it.
12946 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12948 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
12950 (aarch64_last_printed_tune_string): Likewise.
12951 (aarch64_declare_function_name): Only output .arch assembler
12952 directive if it will be different from the previously output
12953 directive. Same for .tune comment but only if -dA is set.
12954 (aarch64_start_file): New function.
12955 (TARGET_ASM_FILE_START): Define.
12957 2016-02-11 David Malcolm <dmalcolm@redhat.com>
12960 * Makefile.in (PLUGIN_HEADERS): Add params.list.
12962 2016-02-11 Jakub Jelinek <jakub@redhat.com>
12965 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
12966 -Wmaybe-uninitialized warning.
12968 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
12971 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
12973 2016-02-11 Richard Biener <rguenther@suse.de>
12975 PR rtl-optimization/69291
12976 * ifcvt.c (noce_try_store_flag_constants): Do not allow
12977 subexpressions affected by changing the result.
12979 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
12982 * lra-constraints.c (curr_insn_transform): Find in/out operands
12983 for secondary memory moves. Update dups.
12985 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
12987 PR tree-optimization/69652
12988 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
12989 to nested loop, did source re-formatting, skip debug statements,
12990 add check on statement with volatile operand, remove dead scalar
12993 2016-02-10 Jakub Jelinek <jakub@redhat.com>
12994 Patrick Palka <ppalka@gcc.gnu.org>
12998 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
12999 calls if the return type is TREE_ADDRESSABLE.
13000 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
13001 * ipa-split.c (split_function): Fix doubled "we" in comment.
13002 Use void return type for the split part even if
13003 !split_point->split_part_set_retval.
13005 2016-02-10 Bin Cheng <bin.cheng@arm.com>
13007 PR tree-optimization/68021
13008 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
13009 when computing the value of biv cand by itself.
13011 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
13013 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
13014 (cortexa57_tunings): Likewise.
13015 (cortexa72_tunings): Likewise.
13016 (arch_macro_fusion_pair_p): Add support for AES fusion.
13017 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
13018 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
13019 Allow virtual registers before reload so early scheduling works.
13020 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
13021 correct latency and pipeline.
13022 (cortex_a57_crypto_complex): Likewise.
13023 (cortex_a57_crypto_xor): Likewise.
13024 (define_bypass): Add AES bypass.
13026 2016-02-10 Richard Biener <rguenther@suse.de>
13028 PR tree-optimization/69726
13029 * passes.def: Add DCE pass before late uninit.
13030 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
13031 really fixup if-conversions job.
13033 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
13035 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
13036 (arm_cortex_a57_tune): Likewise.
13037 (aarch_macro_fusion_pair_p): Add support for AES fusion.
13038 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
13040 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
13042 * timevar.def (TV_PHASE_DBGINFO): Delete.
13043 (TV_PHASE_CHECK_DBGINFO): Likewise.
13044 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
13046 2016-02-10 Richard Biener <rguenther@suse.de>
13048 PR tree-optimization/69719
13049 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
13050 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
13052 2016-02-09 Andrew Pinski <apinski@cavium.com>
13055 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
13056 get_vcond_mask_icode returns false.
13058 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
13061 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
13062 an ADDIS that adds a pointer to a large constant that sets the
13063 upper16 bits with a load operation.
13065 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
13068 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
13070 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
13072 (vzipq_s16): Likewise.
13073 (vzipq_s32): Likewise.
13074 (vzipq_f32): Likewise.
13075 (vzipq_u8): Likewise.
13076 (vzipq_u16): Likewise.
13077 (vzipq_u32): Likewise.
13078 (vzipq_p8): Likewise.
13079 (vzipq_p16): Likewise.
13081 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
13084 * config/arm/arm.c (neon_endian_lane_map): New function.
13085 (neon_vector_pair_endian_lane_map): New function.
13086 (arm_evpc_neon_vuzp): Allow for big endian lane order.
13087 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
13089 (vuzpq_s16): Likewise.
13090 (vuzpq_s32): Likewise.
13091 (vuzpq_f32): Likewise.
13092 (vuzpq_u8): Likewise.
13093 (vuzpq_u16): Likewise.
13094 (vuzpq_u32): Likewise.
13095 (vuzpq_p8): Likewise.
13096 (vuzpq_p16): Likewise.
13098 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
13101 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
13104 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
13106 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
13107 truncate const_int operand 1 to QImode.
13109 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
13111 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
13112 corresponding to an abnormal edge.
13114 2016-02-09 Tom de Vries <tom@codesourcery.com>
13116 PR tree-optimization/69599
13117 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
13119 (find_func_aliases_for_builtin_call, find_func_clobbers)
13120 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
13123 2016-02-09 Richard Biener <rguenther@suse.de>
13125 PR tree-optimization/69715
13126 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
13127 LHS on calls as non-rewritable.
13129 2016-02-09 Tom de Vries <tom@codesourcery.com>
13132 * lto-wrapper.c (append_diag_options): New function.
13133 (compile_offload_image): Call append_diag_options.
13135 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
13138 * doc/extend.texi (Flag Output Operands): Correct sectioning.
13139 Minor copy-edit to fix verb tenses.
13141 2016-02-08 Jakub Jelinek <jakub@redhat.com>
13143 PR tree-optimization/69209
13144 * ipa-split.c (split_function): If split part is not
13145 returning retval, retval has gimple type but is not
13146 gimple value, force it into a SSA_NAME first.
13148 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
13150 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
13153 2016-02-08 Jason Merrill <jason@redhat.com>
13156 * convert.c (convert_to_integer_1): Check dofold on truncation
13158 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
13159 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
13160 Rename from *_nofold.
13161 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
13162 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
13164 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
13167 * tree.c (build_common_tree_nodes): Remove short_double argument.
13168 All callers changed.
13169 * tree.h (build_common_tree_nodes): Adjust declaration.
13170 * doc/invoke.texi (-fshort-double): Remove documentation.
13171 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
13172 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
13173 * lto-wrapper.c (merge_and_complain, append_compiler_options)
13174 (append_linker_options): Don't handle OPT_fshort_double.
13176 PR rtl-optimization/68730
13177 * lra-remat.c (insn_to_cand_activation): New static variable.
13178 (lra_remat): Allocate and free it.
13179 (create_cand): New arg activation. Initialize a field in
13180 insn_to_cand_activation if it is nonnull.
13181 (create_cands): Pass the activation insn to create_cand when making
13182 a candidate involving an output reload. Reorganize code a little.
13183 (do_remat): Keep track of active status of candidates in a separate
13186 2016-02-08 Richard Biener <rguenther@suse.de>
13188 PR tree-optimization/69719
13189 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
13190 Properly use absolute of the difference of the two offsets to
13191 compare or adjust the segment length.
13193 2016-02-08 Richard Biener <rguenther@suse.de>
13194 Jeff Law <law@redhat.com>
13197 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
13198 types for anonymous SSA names.
13200 2016-02-08 Richard Biener <rguenther@suse.de>
13202 PR rtl-optimization/69274
13203 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
13205 2016-02-08 Jeff Law <law@redhat.com>
13207 PR tree-optimization/65917
13208 * tree-ssa-dom.c (record_temporary_equivalences): Record both
13209 equivalences from if (x == y) style conditionals.
13210 (loop_depth_of_name): Remove.
13211 (record_equality): Remove loop depth check.
13212 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
13213 (const_and_copies::record_const_or_copy_raw): New member function.
13214 * tree-ssa-scopedtables.c
13215 (const_and_copies::record_const_or_copy_raw): New, factored out of
13216 (const_and_copies::record_const_or_copy): Call new member function.
13218 2016-02-05 Jeff Law <law@redhat.com>
13220 PR tree-optimization/68541
13221 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
13222 (count_stmts_in_block): New function.
13223 (poor_ifcvt_candidate_code): Likewise.
13224 (is_feasible_trace): Add some heuristics to determine when path
13225 splitting is profitable.
13226 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
13227 is a diamond with a single exit.
13229 2016-02-05 Martin Sebor <msebor@redhat.com>
13232 * doc/invoke.texi: Update -Wplacement-new to take an optional
13235 2016-02-06 Richard Henderson <rth@redhat.com>
13238 * tree.c (tree_nop_conversion_p): Do not strip casts into or
13239 out of non-standard address spaces.
13241 2016-02-05 Jakub Jelinek <jakub@redhat.com>
13243 PR rtl-optimization/69691
13244 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
13246 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
13248 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
13249 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
13250 (*ieee128_mfvsrd_64bit): Likewise.
13251 (*ieee128_mfvsrd_32bit): Likewise.
13253 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
13257 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
13259 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
13260 instrumented_version.
13262 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
13264 * doc/invoke.texi (Optimize Options): In table of --param options
13265 rename second occurrence of tracer-min-branch-ratio to
13266 tracer-min-branch-probability, rename
13267 tracer-min-branch-ratio-feedback to
13268 tracer-min-branch-probability-feedback and clarify description,
13269 rename sched-spec-state-edge-prob-cutoff to
13270 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
13271 to selsched-insns-to-rename, rename lto-minpartition to
13272 lto-min-partition, delete reorder-blocks-duplicate and
13273 reorder-blocks-duplicate-feedback.
13275 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13277 * config/s390/s390.c (s390_register_info_set_ranges): Remove
13280 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
13282 * doc/extend.texi: S/390: Correct some typos.
13284 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13286 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
13288 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13291 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
13292 (s390_register_info_gprtofpr): Use new macros above.
13293 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
13295 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
13296 its name. Adjust restore and save gpr ranges.
13297 (s390_register_info_set_ranges): New function.
13298 (s390_register_info): Use new macros above. Call
13299 s390_register_info_set_ranges.
13300 (s390_optimize_register_info): Likewise.
13301 (s390_hard_regno_rename_ok): Use new macros.
13302 (s390_hard_regno_scratch_ok): Likewise.
13303 (s390_emit_epilogue): Likewise.
13304 (s390_can_use_return_insn): Likewise.
13305 (s390_optimize_prologue): Likewise.
13306 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
13308 2016-02-05 Jakub Jelinek <jakub@redhat.com>
13311 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
13313 (ix86_option_override_internal): Disable TARGET_STV even for
13314 -m{incoming,preferred}-stack-boundary=3.
13316 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13318 * config.gcc: Mark deprecated rtems targets as obsolete.
13320 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
13322 PR rtl-optimization/64682
13323 PR rtl-optimization/69567
13324 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
13325 before I2 only if the register is both used and set in I2.
13327 2016-02-04 DJ Delorie <dj@redhat.com>
13329 * config/msp430/msp430.c (msp430_start_function): Add function type.
13331 2016-02-04 Jakub Jelinek <jakub@redhat.com>
13334 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
13336 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
13338 PR rtl-optimization/69577
13340 2015-10-29 Richard Henderson <rth@redhat.com>
13344 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
13345 sse check to the exact conditions of PR 67609.
13347 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
13350 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
13351 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
13352 not allowed into the traditional Altivec registers.
13353 (movtd_64bit_nodm): Likewise.
13354 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
13356 2016-02-04 David Malcolm <dmalcolm@redhat.com>
13358 * config/aarch64/cortex-a57-fma-steering.c
13359 (aarch64_register_fma_steering): Remove "static" from arguments
13362 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
13365 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
13366 twice when complex.
13368 2016-02-04 Mike Frysinger <vapier@gentoo.org>
13370 * doc/invoke.texi: Delete -mno-fma4.
13372 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
13374 PR rtl-optimization/69577
13375 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
13376 (find_subregs_of_mode): Update accordingly. Iterate over partial
13379 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
13381 * config/arm/arm-protos.h (neon_reinterpret): Remove.
13382 * config/arm/arm.c (neon_reinterpret): Remove.
13383 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
13384 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
13385 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
13386 vreinterpretti): Remove.
13387 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
13388 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
13389 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
13390 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
13391 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
13392 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
13393 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
13394 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
13395 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
13396 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
13397 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
13398 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
13399 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
13400 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
13401 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
13402 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
13403 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
13404 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
13405 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
13406 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
13407 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
13408 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
13409 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
13410 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
13411 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
13412 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
13413 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
13414 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
13415 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
13416 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
13417 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
13418 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
13419 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
13420 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
13421 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
13422 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
13423 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
13424 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
13425 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
13426 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
13427 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
13428 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
13429 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
13430 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
13431 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
13432 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
13433 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
13434 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
13435 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
13436 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
13437 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
13438 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
13439 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
13440 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
13441 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
13442 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
13443 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
13444 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
13445 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
13446 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
13447 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
13448 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
13449 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
13450 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
13451 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
13452 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
13453 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
13454 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
13455 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
13456 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
13457 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
13458 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
13459 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
13460 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
13461 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
13462 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
13463 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
13464 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
13465 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
13466 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
13467 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
13468 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
13469 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
13470 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
13471 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
13472 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
13473 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
13474 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
13475 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
13476 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
13477 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
13478 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
13479 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
13480 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
13481 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
13482 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
13483 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
13484 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
13485 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
13486 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
13487 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
13488 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
13489 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
13491 2016-02-04 Martin Liska <mliska@suse.cz>
13494 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
13495 that are gimple_store_p.
13496 (maybe_instrument_call): Likewise.
13498 2016-02-04 Bin Cheng <bin.cheng@arm.com>
13500 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
13501 register scaling out of memory reference and comment why.
13503 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13507 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
13508 folding the source of a SET.
13510 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13514 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
13515 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
13517 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
13521 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
13524 2016-02-04 Christian Bruel <christian.bruel@st.com>
13526 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
13527 * config/arm/arm.c (arm_set_current_function): Likewise.
13529 2016-02-04 Jakub Jelinek <jakub@redhat.com>
13530 Ilya Enkovich <enkovich.gnu@gmail.com>
13531 H.J. Lu <hongjiu.lu@intel.com>
13534 * config/i386/i386.c (convert_scalars_to_vector): Remove
13535 stack alignment fixes.
13536 (ix86_option_override_internal): Disable TARGET_STV if stack
13537 might not be aligned enough.
13538 (ix86_minimum_alignment): Assert that TARGET_STV is false.
13540 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
13542 * config/i386/x86-tune.def: Disable default prefetching
13545 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
13546 Vladimir Makarov <vmakarov@redhat.com>
13549 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
13550 in validating fused toc addresses.
13552 2016-02-03 Jakub Jelinek <jakub@redhat.com>
13555 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
13556 range->m_caret fields if range->m_show_caret_p is false.
13559 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
13560 Force oldval into register if it does not satisfy reg_or_short_operand
13561 predicate. Fix up formatting.
13563 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
13564 Alexandre Oliva <aoliva@redhat.com>
13567 * lra-constraints.c (simplify_operand_subreg): Check additionally
13568 address validity after potential reloading.
13569 (process_address_1): Check insns validity. In case of failure do
13572 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
13575 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
13578 2016-02-02 Jakub Jelinek <jakub@redhat.com>
13580 * wide-int.cc (canonize_uhwi): New function.
13581 (wi::divmod_internal): Use it.
13583 2016-02-02 James Norris <jnorris@codesourcery.com
13585 * gimplify.c (omp_notice_variable): Add usage check.
13587 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
13589 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
13590 like LE, GE, LT, GT when emitting relational operator.
13592 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
13594 * ira-costs.c (find_costs_and_classes): Add extra argument.
13595 * target.def (ira_change_pseudo_allocno_class): Add parameter.
13596 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
13597 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
13598 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
13599 Add best_class parameter, and return it if not ALL_REGS.
13600 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
13602 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
13603 Update target hook.
13605 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
13607 * config/aarch64/aarch64.c
13608 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
13609 (aarch64_ira_change_pseudo_allocno_class): New function.
13611 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
13614 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
13616 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
13618 * config/avr/avr.c (avr_option_override): Set
13619 PARAM_ALLOW_STORE_DATA_RACES to 1.
13621 2016-02-02 Richard Biener <rguenther@suse.de>
13623 PR tree-optimization/69595
13624 * match.pd: Add range test simplifications to true/false.
13626 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
13628 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
13629 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
13632 2016-02-02 Richard Biener <rguenther@suse.de>
13634 PR tree-optimization/69606
13635 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
13636 info on the result before moving a stmt.
13638 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
13640 PR middle-end/68542
13641 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
13642 branch with vector comparison.
13643 * config/i386/sse.md (VI48_AVX): New mode iterator.
13644 (define_expand "cbranch<mode>4): Add support for conditional branch
13645 with vector comparison.
13646 * tree-vect-loop.c (optimize_mask_stores): New function.
13647 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
13648 has_mask_store field of vect_info.
13649 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
13650 vectorized loops having masked stores after vec_info destroy.
13651 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
13652 correspondent macros.
13653 (optimize_mask_stores): Add prototype.
13655 2016-02-02 Alan Modra <amodra@gmail.com>
13658 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
13661 2016-02-02 Alan Modra <amodra@gmail.com>
13664 * config/rs6000/rs6000.c (need_toc_init): New var, set it
13665 whenever toc_label_name used.
13666 (rs6000_file_start): Don't set up toc section here,
13667 (rs6000_output_function_epilogue): do so here instead,
13668 (rs6000_xcoff_file_start): and here.
13669 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
13670 (load_toc_aix_di): Likewise.
13672 2016-02-01 Jakub Jelinek <jakub@redhat.com>
13674 PR rtl-optimization/69592
13675 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
13676 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
13677 (num_sign_bit_copies_binary_arith_p): New inline function.
13678 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
13680 2016-02-01 Jeff Law <law@redhat.com>
13682 PR tree-optimization/69580
13683 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
13684 * tree-ssa-threadbackward.c
13685 (fsm_find_control_statement_thread_paths): Do not try to walk
13686 through large PHI nodes.
13688 2016-02-01 Jakub Jelinek <jakub@redhat.com>
13690 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
13691 when count is incremented above limit, don't analyze further
13694 * omp-low.c (oacc_parse_default_dims): Avoid
13695 -Wsign-compare warning, make sure value fits into int
13696 rather than just unsigned int.
13698 2016-02-01 Bin Cheng <bin.cheng@arm.com>
13700 PR tree-optimization/67921
13701 * fold-const.c (split_tree): New parameters. Convert pointer
13702 type variable part to proper type before negating.
13703 (fold_binary_loc): Pass new arguments to split_tree.
13705 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
13707 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
13708 (nvptx_goacc_validate_dims): Extend to handle global defaults.
13709 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
13710 * doc/tm.texti: Rebuilt.
13711 * doc/invoke.texi (fopenacc-dim): Document.
13712 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
13713 (append_compiler_options): Likewise.
13714 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
13715 (oacc_parse_default_dims): New.
13716 (oacc_validate_dims): Add USED arg. Select non-unity default when
13718 (oacc_loop_fixed_partitions): Return mask of used partitions.
13719 (oacc_loop_auto_partitions): Emit dump info.
13720 (oacc_loop_partition): Return mask of used partitions.
13721 (execute_oacc_device_lower): Parse default dimension arg. Adjust
13722 loop partitioning and validation calls.
13724 2016-02-01 Richard Biener <rguenther@suse.de>
13726 PR middle-end/69556
13727 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
13729 2016-02-01 Richard Biener <rguenther@suse.de>
13731 PR tree-optimization/69574
13732 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
13733 of asserting return chrec_dont_know.
13735 2016-02-01 Martin Liska <mliska@suse.cz>
13737 * mem-stats-traits.h: Add copyright header.
13738 * mem-stats.h: Likewise.
13740 2016-02-01 Richard Biener <rguenther@suse.de>
13742 PR tree-optimization/69579
13743 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
13744 Do not propagate through abnormal PHI results.
13746 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
13748 * postreload.c (reload_cse_simplify): Remove dead code.
13750 2016-02-01 Jakub Jelinek <jakub@redhat.com>
13752 PR rtl-optimization/69570
13753 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
13754 if there is more than one set, not if there is a single set.
13756 2016-02-01 Richard Henderson <rth@redhat.com>
13759 * combine.c (make_compound_operation): When looking through a
13760 subreg, make sure to re-extend to the width of the outer mode.
13762 2016-01-30 Jakub Jelinek <jakub@redhat.com>
13764 PR tree-optimization/69546
13765 * wide-int.cc (wi::divmod_internal): For unsigned division
13766 where both operands fit into uhwi, if o1 is 1 and o0 has
13767 msb set, if divident_prec is larger than bits per hwi,
13768 clear another quotient word and return 2 instead of 1.
13769 Similarly for remainder with msb in HWI set, if dividend_prec
13770 is larger than bits per hwi.
13772 2016-01-29 Martin Jambor <mjambor@suse.cz>
13774 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
13775 Use short lowercase names.
13776 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
13777 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
13778 acq_rel one. Protect warning agains segfaults if
13779 get_memory_order_name returns NULL.
13780 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
13781 with release semantics. Do not warn if get_memory_order already did.
13782 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
13783 semantics. Fix check for relaxed or acquire semantics. Do not warn
13784 if get_memory_order already did.
13786 2016-01-29 Sebastian Pop <s.pop@samsung.com>
13788 * doc/install.texi: Document that isl-0.16 is supported.
13790 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
13793 * config/i386/constraints.md (Bm): Describe as special memory
13795 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
13796 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13797 * genpreds.c (struct constraint_data): Add is_special_memory.
13798 (have_special_memory_constraints, special_memory_start): New
13800 (special_memory_end): Ditto.
13801 (add_constraint): Add new arg is_special_memory. Add code to
13802 process its true value. Update have_special_memory_constraints.
13803 (process_define_constraint): Pass the new arg.
13804 (process_define_register_constraint): Ditto.
13805 (choose_enum_order): Process special memory.
13806 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
13807 function insn_extra_special_memory_constraint.
13808 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13809 * gensupport.c (process_rtx): Process
13810 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13811 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
13812 * ira-lives.c (single_reg_class): Use
13813 insn_extra_special_memory_constraint.
13814 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
13815 * lra-constraints.c (process_alt_operands): Ditto.
13816 (curr_insn_transform): Use insn_extra_special_memory_constraint.
13817 * recog.c (asm_operand_ok, preprocess_constraints): Process
13819 * reload.c (find_reloads): Ditto.
13820 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
13821 * stmt.c (parse_input_constraint): Use
13822 insn_extra_special_memory_constraint.
13824 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
13827 * lra-splill.c (lra_final_code_change): Revert r229087 by
13828 removing all sub-registers.
13830 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
13833 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
13835 2016-01-29 Jakub Jelinek <jakub@redhat.com>
13838 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
13839 SSE1, copy target into the temporary reg first before recursing
13842 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
13844 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
13847 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
13849 * ginclude/stdarg.h: Test __cplusplus instead of
13850 __GXX_EXPERIMENTAL_CXX0X__.
13852 2016-01-29 Richard Biener <rguenther@suse.de>
13854 PR tree-optimization/69547
13855 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
13856 Do not mark clobbers necessary.
13857 (mark_all_reaching_defs_necessary_1): Likewise.
13859 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
13861 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
13862 declaration name with %qs and print it in both error messages.
13863 Also fix indentation.
13865 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
13868 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
13869 trailing blank line from error message.
13871 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
13874 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
13877 2016-01-29 Richard Biener <rguenther@suse.de>
13879 PR middle-end/69537
13880 * match.pd: Allow all integral types when simplifying a
13881 widening or sign-changing conversion.
13883 2016-01-28 Sebastian Pop <s.pop@samsung.com>
13885 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
13886 back to setting codegen_error to fail codegen.
13888 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
13891 * config/i386/constraints.md (C): Only accept constant zero operand.
13892 (BC): New constraint.
13893 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
13894 instead of C constraint.
13895 * doc/md.texi (Machine Constraints): Update description
13898 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
13901 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
13903 2016-01-28 Jakub Jelinek <jakub@redhat.com>
13905 PR middle-end/69542
13906 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
13909 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
13911 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
13912 branches if using guessed profile.
13914 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
13916 * graphite-optimize-isl.c (optimize_isl): Fix dump.
13918 2016-01-28 Richard Henderson <rth@redhat.com>
13921 * config/aarch64/aarch64-modes.def (CC_Cmode): New
13922 * config/aarch64/aarch64-protos.h: Update.
13923 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
13924 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
13925 (aarch64_get_condition_code_1): Handle CC_Cmode.
13926 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
13927 (*add<mode>3_compareC_cconly_imm): New.
13928 (*add<mode>3_compareC_cconly): New.
13929 (*add<mode>3_compareC_imm): New.
13930 (add<mode>3_compareC): New.
13931 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
13932 to be first. Use aarch64_carry_operation.
13933 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
13934 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
13935 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
13936 (subti3): Use subdi3_compare1.
13937 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
13938 (sub<mode>3_compare1): New.
13939 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
13940 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
13941 (*subsi3_carryin_uxtw): Likewise.
13942 (*ngc<mode>, *ngcsi_uxtw): Likewise.
13943 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
13944 * config/aarch64/iterators.md (DWI): New.
13945 * config/aarch64/predicates.md (aarch64_carry_operation): New.
13946 (aarch64_borrow_operation): New.
13948 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
13950 * graphite-optimize-isl.c (optimize_isl): Print a different debug
13951 message when isl does not return a valid schedule.
13953 2016-01-28 Sebastian Pop <s.pop@samsung.com>
13955 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
13956 Remove comments from class declarations: they are already in the code
13959 2016-01-28 Sebastian Pop <s.pop@samsung.com>
13961 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
13963 (ternary_op_to_tree): Same.
13964 (unary_op_to_tree): Same.
13965 (nary_op_to_tree): Same.
13966 (gcc_expression_from_isl_expr_op): Same.
13967 (gcc_expression_from_isl_expression): Same.
13968 (graphite_create_new_loop): Same.
13969 (graphite_create_new_loop_guard): Same.
13970 (build_iv_mapping): Same.
13971 (graphite_create_new_guard): Same.
13972 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
13973 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
13975 2016-01-28 Sebastian Pop <s.pop@samsung.com>
13977 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
13978 instead of setting codegen_error to fail codegen.
13980 2016-01-28 Jason Merrill <jason@redhat.com>
13982 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
13984 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
13986 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
13987 Remove CONST_INT_P check in CCMP cost calculation.
13989 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
13991 * config/aarch64/aarch64.c (generic_vector_cost):
13992 Set vec_permute_cost.
13993 (cortexa57_vector_cost): Likewise.
13994 (exynosm1_vector_cost): Likewise.
13995 (xgene1_vector_cost): Likewise.
13996 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
13997 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
13998 Add vec_permute_cost entry.
14000 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
14002 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
14004 (add<mode>3_compare0): Likewise.
14005 (addsi3_compare0_uxtw): Likewise.
14006 (add<mode>3nr_compare0): Likewise.
14007 (compare_neg<mode>): Likewise.
14008 (<optab><mode>3): Likewise.
14010 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
14012 * tree-vect-stmts.c (vectorizable_comparison): Add
14013 NULL check for vectype.
14015 2016-01-28 Richard Biener <rguenther@suse.de>
14017 PR tree-optimization/69466
14018 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
14019 Account for PHIs we couldn't duplicate.
14021 2016-01-28 Martin Liska <mliska@suse.cz>
14024 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
14025 instead of ENABLE_VALGRIND_CHECKING.
14027 2016-01-27 Richard Henderson <rth@redhat.com>
14030 * lra-remat.c (subreg_regs): New.
14031 (dump_candidates_and_remat_bb_data): Dump it.
14032 (operand_to_remat): Reject if operand in subreg_regs.
14033 (set_bb_regs): Collect subreg_regs.
14034 (lra_remat): Init and free subreg_regs. Compute
14035 calculate_local_reg_remat_bb_data before create_cands.
14037 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
14040 * config/i386/i386.c (ix86_update_stack_boundary): Don't
14041 change stack_alignment_needed for __tls_get_addr call.
14043 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
14045 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
14047 2016-01-27 Jeff Law <law@redhat.com>
14049 PR tree-optimization/68398
14050 PR tree-optimization/69196
14051 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
14052 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
14053 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
14054 Only count PHIs in the last block in the path. The others will
14055 const/copy propagate away. Add heuristic to allow more irreducible
14056 subloops to be created when it is likely profitable to do so.
14058 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
14059 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
14060 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
14062 2016-01-27 Jakub Jelinek <jakub@redhat.com>
14065 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
14066 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
14067 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
14068 * tree-streamer-in.c: Include asan.h.
14069 (streamer_get_builtin_tree): For builtins in sanitizer
14070 range call initialize_sanitizer_builtins and retry.
14072 2016-01-27 Ian Lance Taylor <iant@google.com>
14074 * common.opt (fkeep-gc-roots-live): New undocumented option.
14075 * tree-ssa-loop-ivopts.c (add_candidate_1): If
14076 -fkeep-gc-roots-live, skip pointers.
14077 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
14080 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
14083 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
14084 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
14086 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
14089 * configure.ac: NetBSD provides SSP in its C library.
14090 * configure: Updated.
14092 2016-01-27 Richard Biener <rguenther@suse.de>
14094 PR tree-optimization/69166
14095 * tree-vect-loop.c (vect_is_simple_reduction): Always check
14096 reduction code for commutativity / associativity.
14098 2016-01-27 Martin Jambor <mjambor@suse.cz>
14100 PR tree-optimization/69355
14101 * tree-sra.c (analyze_access_subtree): Correct hole detection when
14102 total_scalarization fails.
14104 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
14106 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
14109 2016-01-27 Christian Bruel <christian.bruel@st.com>
14112 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
14113 Move arm_reset_previous_fndecl and set_target_option_current_node in
14114 the conditional part. Call save_restore_target_globals.
14115 * config/arm/arm.c (arm_set_current_function):
14116 Refactor to better support #pragma target and attribute mix.
14117 Call save_restore_target_globals.
14118 * config/arm/arm-protos.h (save_restore_target_globals): New function.
14120 2016-01-27 Martin Liska <mliska@suse.cz>
14122 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
14123 reference for an HSA kernel and its host function.
14125 2016-01-27 Jakub Jelinek <jakub@redhat.com>
14127 PR tree-optimization/69399
14128 * wide-int.h (wi::lrshift): For larger precisions, only
14129 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
14131 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
14133 * config/arc/predicates.md (proper_comparison_operator): Reject
14134 constant-constant comparison.
14136 2016-01-26 Tom de Vries <tom@codesourcery.com>
14138 PR tree-optimization/69110
14139 * tree-data-ref.c (initialize_data_dependence_relation): Handle
14140 DR_NUM_DIMENSIONS == 0.
14142 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
14143 Sebastian Pop <s.pop@samsung.com>
14145 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
14146 isl_ast_op_cond and isl_ast_op_select.
14147 (gcc_expression_from_isl_expr_op): Same.
14149 2016-01-26 Jason Merrill <jason@redhat.com>
14152 * tree.c (recompute_constructor_flags): Split out from
14154 (verify_constructor_flags): New.
14155 * tree.h: Declare them.
14157 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
14159 PR rtl-optimization/69217
14160 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
14161 are no TYPE_FIELDS set for the record type.
14163 2016-01-26 Jakub Jelinek <jakub@redhat.com>
14166 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
14167 toc_label_name unconditionally.
14168 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
14169 SYMBOL_REF string. Use toc_label_name instead of constructing
14171 (rs6000_elf_declare_function_name): Use toc_label_name instead of
14172 constructing LCTOC1.
14174 2016-01-26 Martin Sebor <msebor@redhat.com>
14177 * doc/extend.texi (Common Type Attributes): Move text that talks about
14178 attribute packed from attribute aligned to the section discussing
14179 the former attribute for clarity.
14181 2016-01-26 Richard Henderson <rth@redhat.com>
14183 PR middle-end/60908
14184 * trans-mem.c (tm_region_init): Mark entry block as visited.
14186 2016-01-26 David Malcolm <dmalcolm@redhat.com>
14189 * diagnostic-show-locus.c (layout::print_source_line): Replace
14190 call to pp_newline with call to layout::print_newline.
14191 (layout::print_annotation_line): Likewise.
14192 (layout::move_to_column): Likewise.
14193 (layout::print_any_fixits): After printing any fixits, print a
14194 trailing newline, if necessary.
14195 (layout::print_newline): New method, resetting any colorization
14197 (diagnostic_show_locus): Move the pp_newline to before the
14198 early bailout. Remove dummy block enclosing the layout instance.
14199 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
14200 of pp_newline_and_flush with pp_flush.
14201 (diagnostic_append_note): Delete use of pp_newline.
14202 (diagnostic_append_note_at_rich_loc): Delete.
14203 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
14204 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
14205 when newline characters are added to the buffer.
14207 2016-01-26 Michael Matz <matz@suse.de>
14209 * configure.ac (ac_cv_std_swap_in_utility): New test.
14210 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
14211 * configure: Regenerate.
14212 * config.in: Regenerate.
14214 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
14216 * config/arc/arc.md (cstoresi4): Force operand into register.
14217 (arcset<code>): Fix predicate.
14218 (arcsetltu): Likewise.
14219 (arcsetgeu): Likewise.
14220 (arcsethi): Likewise.
14221 (arcsetls): Likewise.
14223 2016-01-26 Jakub Jelinek <jakub@redhat.com>
14225 PR tree-optimization/69483
14226 * gimple-fold.c (canonicalize_constructor_val): Return NULL
14227 if base has error_mark_node type.
14229 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
14232 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
14233 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
14235 (vget_lane_f16): Handle big-endian.
14236 (vgetq_lane_f16): Likewise.
14237 (vset_lane_f16): Likewise.
14238 (vsetq_lane_f16): Likewise.
14239 * config/arm/iterators.md (VQXMOV): Add V8HF.
14240 (VDQ): Add V4HF and V8HF.
14241 (V_reg): Handle V4HF and V8HF.
14242 (Is_float_mode): Likewise.
14243 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
14244 neon_vdup_nv8hf): New patterns.
14245 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
14246 Use VD_LANE iterator.
14247 (neon_vld1_dup<mode>): Use VQ2 iterator.
14249 2016-01-26 Nathan Sidwell <nathan@acm.org>
14251 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
14252 (set_oacc_fn_attrib): Add IS_KERNEL arg.
14253 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
14254 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
14255 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
14256 (oacc_validate_dims): Add LEVEL arg, don't return level.
14257 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
14258 oacc_validate_dims.
14259 (execute_oacc_device_lower): Adjust, add more dump output.
14260 * tree-ssa-loop.c (gate_oacc_kernels): Use
14261 oacc_fn_attrib_kernels_p.
14262 * tree-parloops.c (create_parallel_loop): Adjust
14263 set_oacc_fn_attrib call.
14265 2016-01-26 Jakub Jelinek <jakub@redhat.com>
14268 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
14269 (append_compiler_options): Handle -fcilkplus.
14270 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
14272 2016-01-26 Nick Clifton <nickc@redhat.com>
14275 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
14276 been marked as DECL_ONE_ONLY but we do not the means to make it
14277 so, then do not allow it to bind locally.
14279 2016-01-26 Jakub Jelinek <jakub@redhat.com>
14282 * opts.h (parse_sanitizer_options): New prototype.
14283 * opts.c (sanitizer_opts): New array.
14284 (parse_sanitizer_options): New function.
14285 (common_handle_option): Use parse_sanitizer_options.
14287 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
14290 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
14291 alignment adjustment to ...
14292 (ix86_update_stack_boundary): Here. Don't over-align stack for
14294 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
14295 if __tls_get_addr is called.
14297 2016-01-26 Christian Bruel <christian.bruel@st.com>
14299 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
14301 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
14303 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
14305 2016-01-26 Richard Biener <rguenther@suse.de>
14307 PR middle-end/69467
14308 * match.pd: Guard X * CST CMP 0 pattern with single_use.
14310 2016-01-26 Richard Biener <rguenther@suse.de>
14312 PR tree-optimization/69452
14313 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
14314 (move_computations_dom_walker::before_dom_children): Rename
14316 (move_computations_worker): This.
14317 (move_computations): Perform an RPO rather than a DOM walk.
14319 2016-01-26 Jakub Jelinek <jakub@redhat.com>
14322 * combine.c (combine_instructions): For REG_EQUAL note with
14323 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
14324 to the underlying register.
14325 * doc/rtl.texi (REG_EQUAL): Document the behavior of
14326 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
14328 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
14331 * config/aarch64/aarch64-builtins.c
14332 (aarch64_init_simd_builtin_types): Do not set structural
14333 equality to __Poly{8,16,64,128}_t types.
14335 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
14337 PR tree-optimization/69400
14338 * wide-int.cc (wi_pack): Take the precision as argument and
14339 perform canonicalization here rather than in the callers.
14340 Use the main loop to handle all full-width HWIs. Add a
14341 zero HWI if in_len isn't a full result.
14342 (wi::divmod_internal): Update accordingly.
14343 (wi::mul_internal): Likewise. Simplify.
14345 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
14346 Sebastian Pop <s.pop@samsung.com>
14348 * graphite-poly.c (apply_poly_transforms): Simplify.
14349 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
14350 (print_isl_map): Same.
14351 (print_isl_union_map): Same.
14352 (print_isl_schedule): New.
14353 (debug_isl_schedule): New.
14354 * graphite-dependences.c (scop_get_reads): Do not call
14355 isl_union_map_add_map that is undocumented isl functionality.
14356 (scop_get_must_writes): Same.
14357 (scop_get_may_writes): Same.
14358 (scop_get_original_schedule): Remove.
14359 (scop_get_dependences): Do not call isl_union_map_compute_flow that
14360 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
14361 (compute_deps): Remove.
14362 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
14363 (debug_schedule_ast): New.
14364 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
14365 set_separate_option.
14366 (graphite_regenerate_ast_isl): Add dump.
14367 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
14368 from scop->transformed_schedule.
14369 (graphite_regenerate_ast_isl): Add more dump.
14370 * graphite-optimize-isl.c (optimize_isl): Set
14371 scop->transformed_schedule. Check whether schedules are equal.
14372 (apply_poly_transforms): Move here.
14373 * graphite-poly.c (apply_poly_transforms): ... from here.
14374 (free_poly_bb): Static.
14375 (free_scop): Static.
14376 (pbb_number_of_iterations_at_time): Remove.
14377 (print_isl_ast): New.
14378 (debug_isl_ast): New.
14379 (debug_scop_pbb): New.
14380 * graphite-scop-detection.c (print_edge): Move.
14381 (print_sese): Move.
14382 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
14383 (build_scop_scattering): Remove.
14384 (create_pw_aff_from_tree): Assert instead of bailing out.
14385 (add_condition_to_pbb): Remove unused code, do not fail.
14386 (add_conditions_to_domain): Same.
14387 (add_conditions_to_constraints): Remove.
14388 (build_scop_context): New.
14389 (add_iter_domain_dimension): New.
14390 (build_iteration_domains): Initialize pbb->iterators.
14391 Call add_conditions_to_domain.
14394 (index_outermost_in_loop): New.
14395 (index_pbb_in_loop): New.
14396 (outermost_pbb_in): New.
14397 (add_in_sequence): New.
14398 (add_outer_projection): New.
14399 (outer_projection_mupa): New.
14400 (add_loop_schedule): New.
14401 (build_schedule_pbb): New.
14402 (build_schedule_loop): New.
14403 (embed_in_surrounding_loops): New.
14404 (build_schedule_loop_nest): New.
14405 (build_original_schedule): New.
14406 (build_poly_scop): Call build_original_schedule.
14407 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
14408 (free_poly_dr): Remove.
14409 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
14410 (free_poly_bb): Remove.
14411 (debug_loop_vec): Remove.
14412 (print_isl_ast): Declare.
14413 (debug_isl_ast): Declare.
14414 (scop_do_interchange): Remove.
14415 (scop_do_strip_mine): Remove.
14416 (scop_do_block): Remove.
14417 (flatten_all_loops): Remove.
14418 (optimize_isl): Remove.
14419 (pbb_number_of_iterations_at_time): Remove.
14420 (debug_scop_pbb): Declare.
14421 (print_schedule_ast): Declare.
14422 (debug_schedule_ast): Declare.
14423 (struct scop): Remove schedule. Add original_schedule,
14424 transformed_schedule.
14425 (free_gimple_poly_bb): Remove.
14426 (print_generated_program): Remove.
14427 (debug_generated_program): Remove.
14428 (unify_scattering_dimensions): Remove.
14429 * sese.c (print_edge): ... here.
14430 (print_sese): ... here.
14431 (debug_edge): ... here.
14432 (debug_sese): ... here.
14433 * sese.h (print_edge): Declare.
14434 (print_sese): Declare.
14435 (dump_edge): Declare.
14436 (dump_sese): Declare.
14438 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
14439 Sebastian Pop <s.pop@samsung.com>
14441 * Makefile.in: Set ISLVER in site.exp.
14443 2016-01-25 Jakub Jelinek <jakub@redhat.com>
14445 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
14446 DECL_VALUE_EXPR of new_var even for the non-array case. Look
14447 through DECL_VALUE_EXPR for expansion.
14449 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
14451 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
14452 the frame info after reload completed.
14454 2016-01-25 Jeff Law <law@redhat.com>
14456 PR tree-optimization/69196
14457 PR tree-optimization/68398
14458 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
14459 tree-ssa-threadupdate.c.
14460 (determine_bb_domination_status): Prototype
14461 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
14462 (determine_bb_domination_status): No longer static.
14463 (valid_jump_thread_path): Remove code to detect characteristics
14464 of the jump thread path not associated with correctness.
14465 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
14466 Correct test for thread path length. Count PHIs for real operands as
14467 statements that need to be copied. Do not count ASSERT_EXPRs.
14468 Look at all the blocks in the thread path. Compute and selectively
14469 filter thread paths based on threading through the latch, threading
14470 a multiway branch or crossing a multiway branch.
14472 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14474 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
14475 decl with __attribute__ ((unused)) annotation.
14477 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
14480 * tree-vect-stmts.c (vectorizable_condition): Check vectype
14481 of operands is compatible with a statement vectype.
14483 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
14485 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
14486 improve wording for mixed storage order support.
14488 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
14490 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
14491 (vcvt_u64_f64): Likewise.
14492 (vcvta_s64_f64): Likewise.
14493 (vcvta_u64_f64): Likewise.
14494 (vcvtm_s64_f64): Likewise.
14495 (vcvtm_u64_f64): Likewise.
14496 (vcvtn_s64_f64): Likewise.
14497 (vcvtn_u64_f64): Likewise.
14498 (vcvtp_s64_f64): Likewise.
14499 (vcvtp_u64_f64): Likewise.
14501 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
14503 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
14504 (arc_init): Check validity mll64 option.
14505 (arc_save_restore): Use double load/store instruction.
14506 (arc_expand_movmem): Likewise.
14507 (arc_split_move): Don't split if we have double load/store
14508 instructions. Returns a boolean.
14509 (arc_process_double_reg_moves): Change function to return boolean
14510 instead of a sequence of instructions.
14511 (arc_dwarf_register_span): New function.
14512 * config/arc/arc-protos.h (arc_split_move): Change prototype.
14513 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
14514 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
14515 (*movdf_insn): Likewise.
14516 * config/arc/arc.opt (mll64): New option.
14517 * config/arc/predicates.md (even_register_operand): New predicate.
14518 * doc/invoke.texi (ARC Options): Add mll64 documentation.
14520 2016-01-25 Richard Biener <rguenther@suse.de>
14523 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
14524 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
14526 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
14528 2016-01-25 Richard Biener <rguenther@suse.de>
14530 PR tree-optimization/69376
14531 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
14533 (VN_INFO_ANTI_RANGE_P): New inline.
14534 (VN_INFO_RANGE_TYPE): Likewise.
14535 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
14536 SSA_NAME_ANTI_RANGE_P.
14537 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
14538 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
14539 Properly query VN_INFO_RANGE_TYPE.
14541 2016-01-25 Nick Clifton <nickc@redhat.com>
14544 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
14546 2016-01-23 Tom de Vries <tom@codesourcery.com>
14548 PR tree-optimization/69426
14549 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
14552 2016-01-23 Jakub Jelinek <jakub@redhat.com>
14554 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
14555 "the the" with "the" in the comments.
14556 * ipa-devirt.c (build_type_inheritance_graph,
14557 update_type_inheritance_graph): Likewise.
14558 * tree.c (build_function_type_list_1): Likewise.
14559 * cfgloopmanip.c (scale_loop_profile): Likewise.
14560 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
14561 * gimple-ssa-split-paths.c
14562 (find_block_to_duplicate_for_splitting_paths): Likewise.
14563 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
14564 * expr.c (convert_move): Likewise.
14565 * var-tracking.c (vt_stack_adjustments): Likewise.
14566 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
14567 * tree-vrp.c (test_for_singularity): Likewise.
14569 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
14570 directly instead of building a temporary tree.
14573 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
14574 remove <algorithm> include.
14576 2016-01-22 Jakub Jelinek <jakub@redhat.com>
14579 * config/i386/i386.c: Include dojump.h.
14580 (expand_small_movmem_or_setmem,
14581 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
14583 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
14584 if dynamic_check != -1.
14586 2016-01-21 Jeff Law <law@redhat.com>
14588 PR middle-end/69347
14589 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
14590 record_temporary_equivalences. Rewritten to avoid unnecessary calls
14591 into dominated_by_p.
14592 (cprop_into_successor_phis): Avoid unnecessary tests.
14594 2016-01-22 Richard Henderson <rth@redhat.com>
14597 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
14598 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
14600 2016-01-22 Michael Matz <matz@suse.de>
14602 * system.h (string, algorithm): Include only conditionally.
14603 (new): Include always under C++.
14604 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
14605 * final.c (toplevel): Ditto.
14606 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
14607 * genconditions.c (write_header): Make gencondmd.c define
14609 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
14611 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
14612 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
14614 2016-01-22 Christian Bruel <christian.bruel@st.com>
14617 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
14619 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14622 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
14623 define_insn_and_split. Ensure operands[1] and operands[0] do not
14624 get assigned the same register.
14626 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
14628 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
14630 2016-01-22 Christian Bruel <christian.bruel@st.com>
14632 * config/arm/arm-c.c (arm_pragma_target_parse):
14633 Remove warn_builtin_macro_redefined overwrite.
14635 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
14637 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
14638 flag_non_call_exceptions compatibility.
14640 2016-01-22 Jakub Jelinek <jakub@redhat.com>
14643 * dwarf2out.c (add_child_die_after): New function.
14644 (dwarf_qual_info_t): New type.
14645 (dwarf_qual_info): New variable.
14646 (qualified_die_p): New function.
14647 (modified_type_die): For -fdebug-types-section, ensure
14648 canonical order of qualifiers. Put qualified DIEs adjacent
14649 to the corresponding non-qualified type DIE and search there
14650 for existing qualified DIEs.
14652 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
14654 * doc/extend.texi (scalar_storage_order type attribute): Document
14655 restriction on type punning and aliasing, and remove future tense.
14657 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
14660 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
14663 2016-01-21 Jeff Law <law@redhat.com>
14665 PR middle-end/69347
14666 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
14667 useless call to record_temporary_equivalences.
14668 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
14669 allocate 10 slots in the bb_path vector and let it grow as needed.
14670 (fsm_find_control_statement_thread_paths): Similarly for the next_path
14673 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
14675 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
14677 * configure: Regenerate.
14679 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
14681 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
14682 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
14684 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
14686 PR middle-end/66178
14687 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
14688 drop EXPAND_INITIALIZER.
14689 * rtl.h (contains_symbolic_reference_p): Declare.
14690 * rtlanal.c (contains_symbolic_reference_p): New function.
14691 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
14692 a subtraction into a NOT if symbolic constants are involved.
14694 2016-01-21 Anton Blanchard <anton@samba.org>
14695 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14698 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
14700 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
14703 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
14705 * config/microblaze/microblaze.c
14706 (get_branch_target): New.
14707 (insert_wic_for_ilb_runout): New.
14709 (microblaze_machine_dependent_reorg): New.
14710 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
14711 * config/microblaze/microblaze.md
14712 (UNSPEC_IPREFETCH): Define.
14713 (iprefetch): New pattern
14714 * config/microblaze/microblaze.opt
14715 (mxl-prefetch): New flag.
14717 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
14719 * config/microblaze/microblaze.h
14720 (FIXED_REGISTERS): Update in macro.
14721 (CALL_USED_REGISTERS): Update in macro.
14723 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
14725 PR rtl-optimization/68920
14726 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
14729 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
14731 PR rtl-optimization/68990
14732 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
14733 pseudo instead of inheritance ones.
14735 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
14736 Nick Clifton <nickc@redhat.com>
14740 * config/mips/mips.c (mips_compute_frame_info): Initialise
14741 args_size and hard_frame_pointer_offset fields of the frame
14742 structure before calling mips_global_pointer.
14744 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
14746 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
14748 * configure: Regenerate.
14750 2016-01-21 Richard Biener <rguenther@suse.de>
14752 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
14754 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
14756 * config/s390/s390.c (s390_asm_declare_function_size): Add code
14757 to actually emit the .size directive.
14759 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
14760 Jakub Jelinek <jakub@redhat.com>
14764 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
14765 args array size by one to avoid buffer overflow.
14767 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
14769 * config/s390/s390.md (pool_section_start): Use switch_to_section
14770 to select proper read-only data section instead of hardcoding
14772 (pool_section_end): Use switch_to_section to match the above.
14774 2016-01-21 Richard Biener <rguenther@suse.de>
14776 PR tree-optimization/69378
14777 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
14778 (set_ssa_val_to): Use it for dominance checks taking into
14779 account not executable edges.
14781 2016-01-21 Jakub Jelinek <jakub@redhat.com>
14784 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
14785 for bitsize instead of GET_MODE_PRECISION (mode).
14787 2016-01-20 Martin Sebor <msebor@redhat.com>
14790 * extend.texi (__sync Builtins): Clarify the semantics of
14791 __sync_fetch_and_OP built-ins on pointers.
14792 (__atomic Builtins): Same.
14794 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
14795 Sebastian Pop <s.pop@samsung.com>
14797 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
14798 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
14799 (is_valid_rename): Same.
14800 (translate_isl_ast_to_gimple::get_rename): Same.
14801 (translate_isl_ast_to_gimple::rename_all_uses): Same.
14802 (translate_isl_ast_to_gimple::rename_uses): Same.
14803 (get_new_name): Check for close_phi nodes.
14804 (copy_loop_phi_args): Use phi_node_kind.
14805 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
14806 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
14808 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
14809 Sebastian Pop <s.pop@samsung.com>
14811 Revert commit r229783.
14812 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
14813 Remove use of parameter_rename_map.
14814 (copy_def): Remove.
14815 (copy_internal_parameters): Remove.
14816 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
14817 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
14818 (free_sese_info): Do not free parameter_rename_map.
14819 (set_rename): Do not use parameter_rename_map.
14820 (rename_uses): Update call to set_rename.
14821 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
14822 * sese.h (parameter_rename_map_t): Remove.
14823 (struct sese_info_t): Remove field parameter_rename_map.
14825 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
14826 Sebastian Pop <s.pop@samsung.com>
14828 * graphite-isl-ast-to-gimple.c: Fix comment.
14829 * graphite-scop-detection.c (defined_in_loop_p): New.
14830 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
14831 names defined in loop.
14833 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
14834 Sebastian Pop <s.pop@samsung.com>
14836 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
14837 Discard unstructured if-then-else regions.
14839 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
14840 Sebastian Pop <s.pop@samsung.com>
14842 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
14843 (cleanup_loop_iter_dom): Remove.
14844 (build_loop_iteration_domains): Remove.
14845 (build_scop_context): Remove.
14846 (build_scop_iteration_domain): Remove.
14847 (add_loop_constraints): New.
14848 (build_iteration_domains): New.
14849 (build_poly_scop): Call build_iteration_domains.
14851 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
14852 Sebastian Pop <s.pop@samsung.com>
14854 * graphite-scop-detection.c
14855 (scop_detection::harmful_loop_in_region): Free dom and loops.
14856 (scop_detection::loop_body_is_valid_scop): Free bbs.
14858 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
14859 Sebastian Pop <s.pop@samsung.com>
14861 * graphite-scop-detection.c (record_loop_in_sese): New.
14862 (gather_bbs::before_dom_children): Call record_loop_in_sese.
14863 (build_scops): Remove call to build_sese_loop_nests.
14864 * sese.c (sese_record_loop): Remove.
14865 (build_sese_loop_nests): Remove.
14866 (new_sese_info): Remove region->loops.
14867 (free_sese_info): Same.
14868 * sese.h (sese_contains_loop): Same.
14869 (build_sese_loop_nests): Remove.
14870 (sese_contains_loop): Remove.
14872 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
14873 Sebastian Pop <s.pop@samsung.com>
14875 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
14876 loop_is_valid_in_scop.
14877 (scop_detection::harmful_stmt_in_region): Renamed
14878 harmful_loop_in_region.
14879 Call loop_is_valid_in_scop.
14881 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
14882 Sebastian Pop <s.pop@samsung.com>
14884 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
14887 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
14888 Sebastian Pop <s.pop@samsung.com>
14890 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
14891 * graphite.h (struct poly_bb): Remove field is_reduction.
14892 (PBB_IS_REDUCTION): Remove.
14894 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
14895 Sebastian Pop <s.pop@samsung.com>
14897 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
14898 (add_pdr_constraints): Same.
14899 (scop_get_reads): Same.
14900 (scop_get_must_writes): Same.
14901 (scop_get_may_writes): Same.
14902 (scop_get_original_schedule): Same.
14903 (extend_schedule): Same.
14904 (apply_schedule_on_deps): Same.
14905 (carries_deps): Same.
14906 (compute_deps): Same.
14907 (scop_get_dependences): Same.
14908 * graphite-isl-ast-to-gimple.c
14909 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
14910 * graphite-optimize-isl.c (get_schedule_for_band): Same.
14911 (get_schedule_for_band_list): Same.
14912 (get_schedule_map): Same.
14913 (apply_schedule_map_to_scop): Same.
14914 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14915 (build_loop_iteration_domains): Same.
14916 (add_condition_to_pbb): Same.
14917 (add_param_constraints): Same.
14918 (pdr_add_memory_accesses): Same.
14919 (pdr_add_data_dimensions): Same.
14921 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
14923 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
14926 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
14928 * common.opt (feliminate-dwarf2-dups): Replace references to
14929 "DWARF 2" with just "DWARF".
14930 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
14931 * doc/extend.texi: Likewise.
14932 * doc/cpp.texi: Likewise.
14933 * doc/invoke.texi: Likewise.
14934 (Option Summary): Add -gdwarf to list of Debugging Options.
14935 (Debugging Options): Document -gdwarf.
14936 * doc/contrib.texi: Spell "DWARF" like that.
14938 2016-01-21 Jakub Jelinek <jakub@redhat.com>
14940 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
14941 warning. Fix up formatting.
14943 PR middle-end/67653
14944 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
14945 attempt to mark memory input operand addressable and
14946 call prepare_gimple_addressable in that case. Don't adjust
14947 input_location for diagnostics, use error_at instead.
14949 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
14951 * config/rs6000/ppc-auxv.h: New file.
14952 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
14953 (cpu_is): Likewise.
14954 (cpu_supports): Likewise.
14955 * config/rs6000/rs6000.c: include "ppc-auxv.h".
14956 (cpu_is_info): New variable.
14957 (cpu_supports_info): Likewise.
14958 (tcb_verification_symbol): Likewise.
14959 (cpu_builtin_p): Likewise.
14960 (cpu_expand_builtin): New function.
14961 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
14962 (rs6000_init_builtins): Likewise.
14963 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
14964 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
14965 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
14966 * configure: Regenerate.
14967 * config.in: Likewise.
14968 * doc/extend.texi (PowerPC Built-in Functions): Document
14969 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
14971 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
14974 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
14976 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
14979 2016-01-20 Richard Henderson <rth@redhat.com>
14985 * tree.c (tm_define_builtin): New.
14986 (find_tm_vector_type): New.
14987 (build_tm_vector_builtins): New.
14988 (build_common_builtin_nodes): Call it.
14990 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
14992 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
14993 (arm_fp_ok): Likewise.
14994 (arm_fp): Likewise.
14995 (arm_crypto): Likewise.
14997 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
14998 Richard Biener <rguenther@suse.de>
15000 PR tree-optimization/69328
15001 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
15002 vectors have same number of elements.
15003 (vectorizable_condition): Fix masked version recognition.
15005 2016-01-20 Richard Biener <rguenther@suse.de>
15007 PR tree-optimization/69345
15008 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
15009 (VN_INFO_PTR_INFO): Likewise.
15010 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
15011 info when it is equal between non-dominating SSA names.
15012 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15013 Make sure to look at original SSA infos.
15015 2016-01-20 Jeff Law <law@redhat.com>
15018 * config/m68k/predicates.md (pow2_m1_operand): New predicate
15020 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
15021 (pc_or_label_operand): New predicate.
15022 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
15023 tests for small integers that are 2^n - 1.
15025 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
15027 * doc/invoke.texi (Options Summary): Add '.' after @xref.
15029 2016-01-19 Jeff Law <law@redhat.com>
15031 PR middle-end/69347
15032 * tree-ssa-threadbackwards.c
15033 (fsm_find_control_statement_thread_paths): Do not try to lookup
15034 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
15036 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
15038 * doc/lto.texi: Remove text that says only Gold has linker plugin
15041 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
15043 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
15044 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
15045 the DIE accordingly.
15046 (modified_type_die): Add REVERSE parameter and pass it recursively,
15047 as well as to base_type_die. Adjust presence check accordingly.
15048 (base_type_for_mode): Adjust call to modified_type_die.
15049 (add_type_attribute): Add REVERSE parameter and pass it to
15051 (generic_parameter_die): Adjust call to add_type_attribute.
15052 (add_scalar_info): Likewise.
15053 (add_subscript_info): Likewise.
15054 (gen_array_type_die): Likewise.
15055 (gen_descr_array_type_die): Likewise.
15056 (gen_entry_point_die): Likewise.
15057 (gen_enumeration_type_die): Likewise.
15058 (gen_formal_parameter_die): Likewise.
15059 (gen_subprogram_die): Likewise.
15060 (gen_variable_die ): Likewise.
15061 (gen_const_die): Likewise.
15062 (gen_field_die): Likewise.
15063 (gen_pointer_type_die): Likewise.
15064 (gen_reference_type_die): Likewise.
15065 (gen_ptr_to_mbr_type_die): Likewise.
15066 (gen_inheritance_die): Likewise.
15067 (gen_subroutine_type_die): Likewise.
15068 (gen_typedef_die): Likewise.
15069 (force_type_die): Adjust call to modified_type_die.
15071 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
15073 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
15074 flow throughout the file. Fix broken link to Objective-C 2.0
15076 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
15079 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
15081 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
15083 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
15086 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
15087 (maybe_record_node): Record cxa_pure_virtual as the only possible
15088 target if there are not ohter candidates.
15089 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
15091 2016-01-19 Richard Biener <rguenther@suse.de>
15093 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
15094 (get_memory_order): Likewise.
15096 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
15098 * tree-vect-stmts.c (vectorizable_store): Check
15101 2016-01-19 David Malcolm <dmalcolm@redhat.com>
15104 * gcc.c (driver::decode_argv): Add call to
15105 init_opts_obstack before init_options_struct.
15106 * opts.c (init_opts_obstack): Remove idempotency.
15107 (init_options_struct): Replace call to init_opts_obstack
15108 with a gcc_assert to verify that it has already been called.
15109 * toplev.c (toplev::main): Add call to init_opts_obstack before
15110 calls to init_options_struct.
15111 (toplev::finalize): Move cleanup of opts_obstack next to
15112 cleanup of save_decoded_options, clearing the latter, and
15113 save_decoded_options_count.
15115 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15118 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
15119 attribute to unconditional. Remove %? from output template.
15121 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
15122 Jiong Wang <jiong.wang@arm.com>
15124 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
15125 generated from different expand order.
15127 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
15129 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
15130 Add support for CCMP costing.
15132 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
15134 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
15135 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
15136 (fccmpe<mode>): Likewise.
15137 (fcmp): Rename to fcmp and globalize pattern.
15139 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
15140 (aarch64_gen_ccmp_next): Add FP support.
15142 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
15144 * target.def (gen_ccmp_first): Update documentation.
15145 (gen_ccmp_next): Likewise.
15146 * doc/tm.texi (gen_ccmp_first): Update documentation.
15147 (gen_ccmp_next): Likewise.
15148 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
15149 expand_ccmp_expr_1. Improve comments.
15150 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
15151 (ccmp_ior<mode>): Remove pattern.
15152 (cmp<mode>): Remove expand.
15153 (cmp): Globalize pattern.
15154 (cstorecc4): Use cc_register.
15155 (mov<mode>cc): Remove ccmp_cc_register check.
15156 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
15157 Simplify after removal of CC_DNE/* modes.
15158 (aarch64_ccmp_mode_to_code): Remove.
15159 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
15160 In 'k' case use integer as condition.
15161 (aarch64_nzcv_codes): Remove inverted cases.
15162 (aarch64_code_to_ccmode): Remove.
15163 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
15164 comparison with CC register to be used in folowing CCMP/branch/CSEL.
15165 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
15166 pattern. Return the comparison with CC register. Invert conditions
15167 when bitcode is OR.
15168 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
15169 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
15171 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
15173 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
15174 instrumented_version.
15176 2016-01-19 Richard Biener <rguenther@suse.de>
15178 PR tree-optimization/69336
15179 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
15180 handled components with get_ref_base_and_extent.
15181 (equal_mem_array_ref_p): Adjust.
15183 2016-01-19 Jakub Jelinek <jakub@redhat.com>
15186 * shrink-wrap.c: Include valtrack.h.
15187 (move_insn_for_shrink_wrap): Add DEBUG argument. If
15188 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
15189 in between insn and where it will be moved to. Call
15190 dead_debug_insert_temp.
15191 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
15192 first and dead_debug_local_finish at the end.
15193 For uses and defs bitmap, handle all regs in between REGNO and
15194 END_REGNO, not just the first one.
15196 2016-01-19 Richard Biener <rguenther@suse.de>
15198 PR tree-optimization/69352
15199 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
15200 (equal_mem_array_ref_p): Constrain size and max size properly.
15201 Compare the reverse flag.
15203 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
15205 * ira.c (ira): Update regstat data if we deleted insns.
15207 2016-01-19 Jakub Jelinek <jakub@redhat.com>
15209 PR rtl-optimization/68955
15210 PR rtl-optimization/64557
15211 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
15212 here. Fix up formatting.
15213 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
15215 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
15218 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
15219 assume that the node has body.
15220 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
15223 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
15225 * lto-streamer-out.c (lto_output): Do not stream instrumentation
15228 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
15230 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
15231 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
15233 2016-01-19 Martin Jambor <mjambor@suse.cz>
15234 Martin Liska <mliska@suse.cz>
15235 Michael Matz <matz@suse.de>
15237 * Makefile.in (OBJS): Add new source files.
15238 (GTFILES): Add hsa.c.
15239 * common.opt (disable_hsa): New variable.
15240 (-Whsa): New warning.
15241 * config.in (ENABLE_HSA): New.
15242 * configure.ac: Treat hsa differently from other accelerators.
15243 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
15244 $enable_offloading.
15245 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
15246 * doc/install.texi (Configuration): Document --with-hsa-runtime,
15247 --with-hsa-runtime-include, --with-hsa-runtime-lib and
15248 --with-hsa-kmt-lib.
15249 * doc/invoke.texi (-Whsa): Document.
15250 (hsa-gen-debug-stores): Likewise.
15251 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
15252 to invoke offload compiler for hsa acclerator.
15253 * opts.c (common_handle_option): Determine whether HSA offloading
15254 should be performed.
15255 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
15256 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
15257 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
15258 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
15259 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
15260 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
15261 GF_OMP_FOR_KIND_GRID_LOOP.
15262 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
15263 (pp_gimple_stmt_1): Likewise.
15264 * gimple-walk.c (walk_gimple_stmt): Likewise.
15265 * gimple.c (gimple_build_omp_grid_body): New function.
15266 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
15267 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
15268 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
15269 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
15270 GF_OMP_TEAMS_GRID_PHONY.
15271 (gimple_statement_omp_single_layout): Updated comments.
15272 (gimple_build_omp_grid_body): New function.
15273 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
15274 (gimple_omp_for_grid_phony): New function.
15275 (gimple_omp_for_set_grid_phony): Likewise.
15276 (gimple_omp_parallel_grid_phony): Likewise.
15277 (gimple_omp_parallel_set_grid_phony): Likewise.
15278 (gimple_omp_teams_grid_phony): Likewise.
15279 (gimple_omp_teams_set_grid_phony): Likewise.
15280 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
15281 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
15282 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
15283 (BUILT_IN_GOMP_TARGET): Updated type.
15284 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
15285 (adjust_for_condition): New function.
15286 (get_omp_for_step_from_incr): Likewise.
15287 (extract_omp_for_data): Moved parts to adjust_for_condition and
15288 get_omp_for_step_from_incr.
15289 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
15290 (fixup_child_record_type): Bail out if receiver_decl is NULL.
15291 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
15292 (scan_omp_parallel): Do not create child functions for phony
15294 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
15295 (scan_omp_1_op): Checking assert we are not remapping to
15296 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
15297 (parallel_needs_hsa_kernel_p): New function.
15298 (expand_parallel_call): Register apprpriate parallel child
15299 functions as HSA kernels.
15300 (grid_launch_attributes_trees): New type.
15301 (grid_attr_trees): New variable.
15302 (grid_create_kernel_launch_attr_types): New function.
15303 (grid_insert_store_range_dim): Likewise.
15304 (grid_get_kernel_launch_attributes): Likewise.
15305 (get_target_argument_identifier_1): Likewise.
15306 (get_target_argument_identifier): Likewise.
15307 (get_target_argument_value): Likewise.
15308 (push_target_argument_according_to_value): Likewise.
15309 (get_target_arguments): Likewise.
15310 (expand_omp_target): Call get_target_arguments instead of looking
15311 up for teams and thread limit.
15312 (grid_expand_omp_for_loop): New function.
15313 (grid_arg_decl_map): New type.
15314 (grid_remap_kernel_arg_accesses): New function.
15315 (grid_expand_target_kernel_body): New function.
15316 (expand_omp): Call it.
15317 (lower_omp_for): Do not emit phony constructs.
15318 (lower_omp_taskreg): Do not emit phony constructs but create for them
15319 a temporary variable receiver_decl.
15320 (lower_omp_taskreg): Do not emit phony constructs.
15321 (lower_omp_teams): Likewise.
15322 (lower_omp_grid_body): New function.
15323 (lower_omp_1): Call it.
15324 (grid_reg_assignment_to_local_var_p): New function.
15325 (grid_seq_only_contains_local_assignments): Likewise.
15326 (grid_find_single_omp_among_assignments_1): Likewise.
15327 (grid_find_single_omp_among_assignments): Likewise.
15328 (grid_find_ungridifiable_statement): Likewise.
15329 (grid_target_follows_gridifiable_pattern): Likewise.
15330 (grid_remap_prebody_decls): Likewise.
15331 (grid_copy_leading_local_assignments): Likewise.
15332 (grid_process_kernel_body_copy): Likewise.
15333 (grid_attempt_target_gridification): Likewise.
15334 (grid_gridify_all_targets_stmt): Likewise.
15335 (grid_gridify_all_targets): Likewise.
15336 (execute_lower_omp): Call grid_gridify_all_targets.
15337 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
15338 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
15339 (tree_omp_clause): Added union field dimension.
15340 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
15341 * tree.c (omp_clause_num_ops): Added number of arguments of
15342 OMP_CLAUSE__GRIDDIM_.
15343 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
15344 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
15345 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
15346 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
15347 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
15348 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
15349 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
15350 * tree-pass.h (make_pass_gen_hsail): Declare.
15351 (make_pass_ipa_hsa): Likewise.
15352 * ipa-hsa.c: New file.
15353 * lto-section-in.c (lto_section_name): Add hsa section name.
15354 * lto-streamer.h (lto_section_type): Add hsa section.
15355 * timevar.def (TV_IPA_HSA): New.
15356 * hsa-brig-format.h: New file.
15357 * hsa-brig.c: New file.
15358 * hsa-dump.c: Likewise.
15359 * hsa-gen.c: Likewise.
15362 * toplev.c (compile_file): Call hsa_output_brig.
15363 * hsa-regalloc.c: New file.
15365 2016-01-18 Jeff Law <law@redhat.com>
15367 PR tree-optimization/69320
15368 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
15369 ranged object, do nothing if the RHS constant is not [0..1].
15370 (optimize_stmt): Comparing a boolean ranged object against a
15371 constant outside [0..1] results in a compile-time constant.
15373 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
15376 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
15378 * doc/invoke.texi (Invoking GCC): Add new section to menu.
15379 (Option Summary): Update to reflect new section and moved options.
15380 (C++ Dialect Options): Move -fstats to new section.
15381 (Debugging Options): Move all dump, statistics, and other GCC
15382 developer options to new section. Rewrite section introduction
15383 and re-order remaining options to put the more basic ones first.
15384 (Optimization Options): Move -fira-verbose and -flto-report* to
15386 (Developer Options): New section incorporating moved options.
15387 * doc/cppopts.texi (-dM): Update cross-reference.
15389 2016-01-18 Richard Henderson <rth@redhat.com>
15392 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
15393 operands to pseudo only if CSE is expected. Split long immediate
15394 operands only after reload, and for the stack pointer.
15395 (*add<GPI>3_pluslong): Remove.
15396 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
15397 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
15398 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
15399 (*add<GPI>3 peepholes): New.
15400 (*add<GPI>3 splitters): New.
15401 * config/aarch64/constraints.md (Upl): New.
15402 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
15404 2016-01-18 Richard Biener <rguenther@suse.de>
15406 PR tree-optimization/69297
15407 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
15409 (vect_bb_vectorization_profitable_p): Clear visited flag again.
15411 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
15413 PR middle-end/68542
15414 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
15415 of mixind vector and scalar types.
15416 (fold_relational_const): Add handling of vector
15417 comparison with boolean result.
15418 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
15419 comparison of vector operands with boolean result for EQ/NE only.
15420 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
15421 (verify_gimple_cond): Likewise.
15422 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
15425 2016-01-18 Joseph Myers <joseph@codesourcery.com>
15427 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
15430 2016-01-18 Richard Biener <rguenther@suse.de>
15432 PR middle-end/69308
15433 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
15435 2016-01-18 Tom de Vries <tom@codesourcery.com>
15437 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
15439 2016-01-18 Tom de Vries <tom@codesourcery.com>
15441 * omp-low.c (set_oacc_fn_attrib): Make extern.
15442 * omp-low.h (set_oacc_fn_attrib): Declare.
15443 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
15444 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
15445 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
15446 Add and handle function parameter oacc_kernels_p.
15447 (find_reduc_addr, get_omp_data_i_param): New function.
15448 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
15449 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
15450 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
15451 Calculate dominance info. Skip loops that are not in a kernels region
15452 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
15453 (pass_parallelize_loops::execute): Call parallelize_loops with
15454 oacc_kernels_p argument.
15455 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
15456 New member function.
15457 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
15458 * passes.def: Add argument to pass_parallelize_loops instantation.
15460 2016-01-18 Tom de Vries <tom@codesourcery.com>
15462 * tree-parloops.c (pass_parallelize_loops::execute): Allow
15463 pass_parallelize_loops to be run outside the loop pipeline.
15465 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
15467 * tree-scalar-evolution.c (follow_copies_to_constant): New.
15468 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
15470 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
15473 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
15474 using get_ref_base_and_extent.
15475 (equal_mem_array_ref_p): New.
15476 (hashable_expr_equal_p): Add call to previous.
15478 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
15481 * tree-sra.c (disqualified_constants, constant_decl_p): New.
15482 (sra_initialize): Allocate disqualified_constants.
15483 (sra_deinitialize): Free disqualified_constants.
15484 (disqualify_candidate): Update disqualified_constants when appropriate.
15485 (create_access): Scan for constant-pool entries as we go along.
15486 (scalarizable_type_p): Add check against type_contains_placeholder_p.
15487 (maybe_add_sra_candidate): Allow constant-pool entries.
15488 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
15489 (initialize_constant_pool_replacements): New.
15490 (sra_modify_assign): Avoid mangling assignments created by previous,
15491 and don't generate writes into constant pool.
15492 (sra_modify_function_body): Call initialize_constant_pool_replacements.
15494 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
15496 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
15497 andnot instruction.
15498 (scalar_chain::convert_op): Likewise.
15499 * config/i386/i386.md (*andndi3_doubleword): New.
15501 2016-01-18 Richard Biener <rguenther@suse.de>
15503 PR tree-optimization/69170
15504 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
15505 building a vector from scalar results of a pattern stmt.
15507 2016-01-18 Jakub Jelinek <jakub@redhat.com>
15509 * haifa-sched.c (autopref_multipass_init): Work around
15510 -Wmaybe-uninitialized warning.
15512 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
15514 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
15515 against the constant 0.
15517 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15519 PR tree-optimization/68799
15520 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
15521 look up phi candidates in the statement-candidate map.
15522 (phi_add_costs): Likewise.
15523 (record_phi_increments): Likewise.
15524 (phi_incr_cost): Likewise.
15525 (ncd_with_phi): Likewise.
15526 (all_phi_incrs_profitable): Likewise.
15528 2016-01-17 Jakub Jelinek <jakub@redhat.com>
15530 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
15531 -Wmaybe-uninitialized warning.
15533 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
15535 * doc/invoke.texi (Invoking GCC): Add new section to menu.
15536 (Option Summary): Update to reflect new section and moved options.
15537 (C++ Dialect Options): Move -fvtable-verify and related options.
15538 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
15539 and profiling-related options.
15540 (Optimization Options): Move profile generation options and
15541 -fstack-protector and related options.
15542 (Instrumentation Options): New section incorporating moved options.
15543 (Code Generation Options): Move -finstrument-functions and
15544 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
15546 2016-01-16 Tom de Vries <tom@codesourcery.com>
15548 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
15550 2016-01-16 Tom de Vries <tom@codesourcery.com>
15552 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
15554 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
15556 * hash-table.h (hash_table::empty): Turn into an inline wrapper
15557 that checks whether the table is already empty. Rename the
15558 original implementation to...
15559 (hash_table::empty_slot): ...this new private function.
15561 2016-01-15 David Malcolm <dmalcolm@redhat.com>
15563 PR diagnostic/68899
15564 * diagnostic-show-locus.c (layout::print_source_line): Move x
15565 offset of line until after call to
15566 get_line_width_without_trailing_whitespace.
15568 2016-01-15 Jeff Law <law@redhat.com>
15570 PR tree-optimization/69270
15571 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
15572 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
15573 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
15574 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
15575 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
15576 ssa_name_has_boolean_range and constant_boolean_node.
15578 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
15580 PR rtl-optimization/69030
15581 * lra-spills.c (remove_pseudos): Check nrefs and make the function
15583 (spill_pseudos): Delete debug insn for dead pseudo.
15584 (lra_spill): Initiate spill_hard_reg and slots memory separately.
15586 2016-01-15 Jiong Wang <jiong.wang@arm.com>
15588 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
15590 (TYPES_UNOPUS): Likewise.
15591 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
15592 builtin type, from UNOP to UNOPUS.
15593 (lbtruncuv4sf): Likewise.
15594 (lbtruncuv2df): Likewise.
15595 (lrounduv2sf): Likewise.
15596 (lrounduv4sf): Likewise.
15597 (lrounduv2df): Likewise.
15598 (lroundusf): Likewise.
15599 (lroundusf): Likewise.
15600 (lceiluv2sf): Likewise.
15601 (lceiluv4sf): Likewise.
15602 (lceiluv2df): Likewise.
15603 (lceilusf): Likewise.
15604 (lceiludf): Likewise.
15605 (lflooruv2sf): Likewise.
15606 (lflooruv4sf): Likewise.
15607 (lflooruv2df): Likewise.
15608 (lfloorusf): Likewise.
15609 (lfloorudf): Likewise.
15610 (lfrintnuv2sf): Likewise.
15611 (lfrintnuv4sf): Likewise.
15612 (lfrintnuv2df): Likewise.
15613 (lfrintnusf): Likewise.
15614 (lfrintnudf): Likewise.
15615 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
15617 (vcvtq_u32_f32): Likewise.
15618 (vcvtq_u64_f64): Likewise.
15619 (vcvta_u32_f32): Likewise.
15620 (vcvtaq_u32_f32): Likewise.
15621 (vcvtaq_u64_f64): Likewise.
15622 (vcvtm_u32_f32): Likewise.
15623 (vcvtmq_u32_f32): Likewise.
15624 (vcvtmq_u64_f64): Likewise.
15625 (vcvtn_u32_f32): Likwise.
15626 (vcvtnq_u32_f32): Likewise.
15627 (vcvtnq_u64_f64): Likewise.
15628 (vcvtp_u32_f32): Likewise.
15629 (vcvtpq_u32_f32): Likewise.
15630 (vcvtpq_u64_f64): Likewise.
15631 (vcvtmd_u64_f64): Likewise.
15632 (vcvtms_u32_f32): Likewise.
15633 (vcvtad_u64_f64): Likewise.
15634 (vcvtas_u32_f32): Likewise.
15635 (vcvtnd_u64_f64): Likewise.
15636 (vcvtns_u32_f32): Likewise.
15637 (vcvtpd_u64_f64): Likewise.
15638 (vcvtps_u32_f32): Likewise.
15640 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15642 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
15643 CSEL of zero_extended registers.
15645 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15647 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
15648 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
15650 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15652 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
15653 false when argument string is not found in the attributes table
15656 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
15659 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
15660 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
15661 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
15662 precision estimate.
15664 2016-01-15 Richard Biener <rguenther@suse.de>
15666 PR tree-optimization/66856
15667 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
15668 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
15669 (vect_create_new_slp_node): Increment stmt reference count.
15670 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
15671 an SLP tree before swapping operands.
15672 (vect_build_slp_tree): Likewise.
15673 (destroy_bb_vec_info): Free stmt info after SLP instances.
15674 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
15675 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
15676 (STMT_VINFO_NUM_SLP_USES): New macro.
15678 2016-01-15 Richard Biener <rguenther@suse.de>
15681 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
15682 (add_linkage_name): ... here.
15683 (gen_typedef_die): Use add_linkage_name_raw instead of
15684 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
15687 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
15689 * gimplify.c (oacc_default_clause): Decode reference and pointer
15690 types for both kernels and parallel regions.
15692 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
15694 PR middle-end/69246
15695 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
15697 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
15699 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
15700 (convert_scalars_to_vector): Likewise.
15702 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
15704 * doc/extend.texi (Type Traits): Fix grammar.
15706 2016-01-15 Martin Jambor <mjambor@suse.cz>
15708 * tree-inline.c (remap_decl): Use existing dclarations if
15709 remapping a type and prevent_decl_creation_for_types.
15710 (replace_locals_stmt): Do an initial remapping of non-VLA typed
15711 decls first. Do real remapping with
15712 prevent_decl_creation_for_types set.
15713 * tree-inline.h (copy_body_data): New field
15714 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
15717 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
15719 * config/s390/s390.opt (mmvcle): More verbose help text.
15721 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
15723 * config/s390/s390.opt: Add period to -mzvector option text.
15725 2016-01-15 Richard Biener <rguenther@suse.de>
15727 PR tree-optimization/68961
15728 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
15729 of invariants in stores again.
15731 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
15733 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
15735 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
15737 * config/i386/i386.c (ix86_expand_branch): Don't split
15738 DI mode xor instruction to SI mode.
15740 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
15743 * ipa-icf.c (sem_function::merge): Virtual functions may become
15744 reachable even if they address is not taken and there are no
15747 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
15749 * lto-streamer-out.c (subtract_estimated_size): New function.
15750 (get_symbol_initial_value): Use it.
15752 2016-01-15 Christian Bruel <christian.bruel@st.com>
15755 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
15756 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
15757 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
15758 use add_builtin_function_ext_scope instead of add_builtin_function.
15759 (neon_set_p, neon_crypto_set_p): Remove.
15760 (arm_init_builtins): Always call arm_init_neon_builtins and
15761 arm_init_crypto_builtins.
15762 (arm_expand_builtin): Check that builtins are allowed for the arch.
15763 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
15764 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
15765 arm_init_neon_builtins call.
15767 2016-01-15 Richard Biener <rguenther@suse.de>
15769 PR tree-optimization/69117
15770 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
15771 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
15772 of the leader conservatively.
15773 (free_scc_vn): Restore original SSA name infos.
15775 2016-01-14 Jeff Law <law@redhat.com>
15777 PR tree-optimization/69270
15778 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
15779 single bit of precision, verify it's also unsigned.
15780 (record_edge_info): Use constant_boolean_node rather than fold_convert
15781 to convert boolean_true/boolean_false to the right type.
15783 2016-01-14 Richard Henderson <rth@redhat.com>
15786 * loop-doloop.c (record_reg_sets): New.
15787 (doloop_optimize): Reject the transform if the sequence
15788 clobbers registers live at the end of the loop block.
15789 (doloop_optimize_loops): Enable df_live if needed.
15791 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
15793 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
15794 * config/rs6000/rs6000.c: Likewise.
15795 * config/rs6000/rs6000.h: Likewise.
15796 * config/rs6000/rs6000.md: Likewise.
15797 * doc/extend.texi: Likewsie.
15799 2016-01-14 Jeff Law <law@redhat.com>
15801 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
15804 2016-01-14 Richard Henderson <rth@redhat.com>
15808 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
15809 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
15810 instead of builtin_decl_declared_p to test for declaration.
15812 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
15814 * doc/loop.texi (Loop Analysis and Representation): Document
15815 loop_depth function.
15817 2016-01-14 Tom de Vries <tom@codesourcery.com>
15819 PR tree-optimization/68773
15820 * omp-low.c (expand_omp_target): Don't set force_output.
15821 * varpool.c (varpool_node::get_create): Same.
15822 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
15823 offload_funcs with force_output.
15825 2016-01-14 Jakub Jelinek <jakub@redhat.com>
15828 * lra-eliminations.c (move_plus_up): Don't change anything if either
15829 the outer or inner subreg mode is not MODE_INT.
15830 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
15831 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
15833 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
15835 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
15836 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
15837 reduc_uplus_@var{m}): Remove.
15838 * expr.c (expand_expr_real_2): Remove expansion path for
15839 reduc_[us](min|max|plus) optabs.
15840 * optabs-tree.c (scalar_reduc_to_vector): Remove.
15841 * optabs-tree.h (scalar_reduc_to_vector): Remove.
15842 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
15843 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
15844 * tree-vect-loop.c (vectorizable_reduction): Remove test for
15845 reduc_[us](min|max|plus) optabs.
15847 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
15849 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
15850 (reduc_plus_scal_v2sf): New.
15851 (reduc_smax_v2sf): Rename to...
15852 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
15853 (reduc_smin_v2sf): Rename to...
15854 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
15856 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
15858 * alias.c (compare_base_symbol_refs): New function.
15859 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
15862 2016-01-14 Jakub Jelinek <jakub@redhat.com>
15864 PR middle-end/68146
15865 PR tree-optimization/69155
15866 * tree-complex.c: Include cfganal.h.
15867 (phis_to_revisit): New variable.
15868 (extract_component): Add phiarg_p argument. Assert that returned
15869 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
15870 (update_phi_components): Partly rewrite to use loop over real/imag
15871 components instead of code duplication. If extract_component returns
15872 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
15873 create_tmp_reg into the PHI node instead, and mention the phi triplet
15874 in phis_to_revisit.
15875 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
15876 in phis_to_revisit at the end.
15878 2016-01-14 Richard Biener <rguenther@suse.de>
15880 PR tree-optimization/68060
15881 * tree-vect-loop.c (vect_is_simple_reduction): Check the
15882 outer loop reduction is only used in the inner loop before
15883 detecting a double reduction.
15885 2016-01-14 Jakub Jelinek <jakub@redhat.com>
15888 * combine.c (expand_field_assignment): Punt if compute_mode is
15889 unsupported scalar mode.
15891 2016-01-14 Richard Biener <rguenther@suse.de>
15893 PR tree-optimization/66856
15894 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
15895 SLP node only if it built successfully.
15896 (vect_analyze_slp_instance): Adjust.
15898 2016-01-14 Jeff Law <law@redhat.com>
15900 PR tree-optimization/69270
15901 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
15902 (record_edge_info): Use it. Convert boolean_{true,false}_node
15903 to the type of op0.
15905 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
15908 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
15909 use block_ultimate_origin
15910 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
15912 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
15914 * doc/invoke.texi (Submodel Options): Rename section to
15915 "Machine-Dependent Options" to better reflect its content.
15916 Rewrite introductory text to remove archaic CPU names.
15919 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
15921 * doc/invoke.texi (Code Gen Options): Move section up in file,
15922 before target-specific options. Update menu and option summary
15923 to reflect the new section ordering.
15925 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
15927 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
15928 (C++ Dialect Options): Add cross-reference to -std option.
15929 * doc/standards.texi (C++ Language): Document C++14 support.
15931 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
15933 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
15934 for pack/unpack functions for __ibm128.
15935 (PACK_IF): Likewise.
15936 (UNPACK_IF): Likewise.
15938 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
15939 support for __ibm128 pack/unpack functions.
15940 (rs6000_invalid_builtin): Likewise.
15941 (rs6000_init_builtins): Likewise.
15942 (rs6000_opt_masks): Likewise.
15944 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
15945 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
15947 (RS6000_BTM_COMMON): Likewise.
15949 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
15950 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
15951 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
15952 128-bit floating point. Add support for the double values to be
15953 in Altivec registers for TF/IF packing and unpacking, but restrict
15954 TD packing sub-fields to be FPR registers. Don't allow overlapped
15955 register support for packing. Allow pack inputs to be memory
15956 locations. Don't build generator functions for unpack<mode>_dm
15957 and unpack<mode>_nodm.
15958 (unpack<mode>_dm): Likewise.
15959 (unpack<mode>_nodm): Likewise.
15960 (pack<mode>): Likewise.
15962 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
15963 built-in functions to pack/unpack explicit __ibm128 values.
15964 (__builtin_unpack_ibm128): Likewise.
15966 * doc/extend.texi (PowerPC Built-in Functions): Document
15967 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
15969 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
15972 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
15973 Add new arg loc and pass it down as context.
15974 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
15975 to the location to use for the warning.
15976 (check_function_arguments): New arg loc. All callers changed. Pass
15977 it to check_function_nonnull.
15978 * c-common.h (check_function_arguments): Adjust declaration.
15980 2016-01-13 Jakub Jelinek <jakub@redhat.com>
15982 PR tree-optimization/69156
15983 * gimple.c (validate_type): Removed.
15984 (gimple_builtin_call_types_compatible_p): Use
15985 useless_type_conversion_p instead of validate_type.
15986 * value-prof.c (gimple_stringop_fixed_value): Fold
15987 icall_size to correct type.
15989 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
15991 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
15994 2016-01-13 Richard Henderson <rth@redhat.com>
15997 * target.def (builtin_tm_load, builtin_tm_store): Remove.
15998 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
15999 (ix86_builtin_tm_store): Remove.
16000 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
16001 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
16002 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
16003 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
16004 * doc/tm.texi: Rebuild.
16006 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
16007 (BUILT_IN_TM_MEMCPY_RTWN): New.
16008 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
16009 fallback from vector to integer helpers.
16010 (build_tm_load): Handle vector types directly, instead of
16012 (build_tm_store): Likewise.
16013 (expand_assign_tm): Prepare for register types not handled by
16014 the above. Copy them to memory and use memcpy.
16015 * tree.c (tm_define_builtin): New.
16016 (find_tm_vector_type): New.
16017 (build_tm_vector_builtins): New.
16018 (build_common_builtin_nodes): Call it.
16020 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
16022 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
16023 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
16025 2016-01-13 Tom de Vries <tom@codesourcery.com>
16027 PR tree-optimization/69169
16028 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
16029 handled_struct_type param.
16030 (create_variable_info_for, intra_create_variable_infos): Call
16031 create_variable_info_for_1 with extra arg.
16033 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
16035 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
16036 and "armv8.1-a+crc" entries.
16038 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
16041 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
16042 Change first operand predicate from register_or_constm1_operand
16043 to register_operand.
16044 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
16045 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
16046 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
16047 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
16048 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
16049 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
16050 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
16051 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
16052 comparison with constm1_rtx from vec_prefetch_gen part.
16054 2016-01-13 Richard Biener <rguenther@suse.de>
16056 PR tree-optimization/69013
16057 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
16058 Exchange assert for a test.
16060 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16063 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
16065 2016-01-13 Richard Biener <rguenther@suse.de>
16067 PR tree-optimization/69242
16068 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
16069 assert with a check.
16071 2016-01-13 Richard Biener <rguenther@suse.de>
16073 PR tree-optimization/69186
16074 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
16075 Properly guard vect_update_misalignment_for_peel call.
16077 2016-01-12 Jeff Law <law@redhat.com>
16079 PR tree-optimization/pr67755
16080 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
16081 "need_profile_correction".
16082 (thread_block_1): Initialize new field to false by default. If we
16083 have multiple thread paths through a common joiner to different
16084 final targets, then set new field to true.
16085 (compute_path_counts): Only do count adjustment when it's really
16088 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
16090 * doc/invoke.texi (Spec Files): Move section down in file, past
16091 all command-line option descriptions.
16093 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16095 PR middle-end/54809
16096 * doc/gty.texi: Remove documentation of mark_hook.
16097 * gengtype.c (struct write_types_data): Remove code to support
16098 mark_hook attribute.
16099 (walk_type): Likewise.
16100 (write_func_for_structure): Likewise.
16102 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
16104 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
16105 Directory Options, and -specs= to Overall Options.
16106 (Overall Options): Adjust similarly. Reorder to group related
16107 options together. Make -specs= cross-reference the spec file details.
16108 (Directory Options): Adjust similarly.
16110 2016-01-12 Jeff Law <law@redhat.com>
16112 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
16114 2016-01-12 Olivier Hainque <hainque@adacore.com>
16116 * gcc.c (spec_undefvar_allowed): New global.
16117 (process_command): Set to true when running for --version or --help,
16119 (getenv_spec_function): When the variable is not defined, use the
16120 variable name as the variable value if we're allowed not to issue
16123 2016-01-12 Bin Cheng <bin.cheng@arm.com>
16125 PR tree-optimization/68911
16126 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
16127 information computed for expression "init + nit * step".
16129 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
16131 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
16132 about name of GCC executable. Remove deleted node from menu.
16133 (Directory Options) <-B>: Remove cross-reference to deleted node.
16134 (Target Options): Delete section.
16136 2016-01-12 Christian Bruel <christian.bruel@st.com>
16139 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
16140 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
16142 2016-01-12 Jakub Jelinek <jakub@redhat.com>
16145 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
16146 aligned_mem is properly set for AVX512-VL floating point masked
16150 * ifcvt.c (cond_exec_process_if_block): When removing the last
16151 insn from then_bb, remove also any possible barriers that follow it.
16153 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
16157 * config/i386/iamcu.h (SIZE_TYPE): New macro.
16158 (PTRDIFF_TYPE): Likewise.
16159 (WCHAR_TYPE): Likewise.
16160 (WCHAR_TYPE_SIZE): Likewise.
16161 (STDINT_LONG32): Likewise.
16163 2016-01-12 Richard Biener <rguenther@suse.de>
16165 PR tree-optimization/69053
16166 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
16167 convert initial value for cond reductions.
16169 2016-01-12 Richard Biener <rguenther@suse.de>
16171 PR tree-optimization/69007
16172 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
16173 widen_sum after dot_prod and sad.
16175 2016-01-12 Richard Biener <rguenther@suse.de>
16177 PR tree-optimization/69168
16178 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
16179 pattern stmt SLP type.
16180 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
16181 end up unused so cope with that case.
16183 2016-01-12 Richard Biener <rguenther@suse.de>
16185 PR tree-optimization/69157
16186 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
16187 stmts def type only during analyze phase.
16188 (vectorizable_call): Likewise.
16189 (vectorizable_simd_clone_call): Likewise.
16190 (vectorizable_conversion): Likewise.
16191 (vectorizable_assignment): Likewise.
16192 (vectorizable_shift): Likewise.
16193 (vectorizable_operation): Likewise.
16194 (vectorizable_store): Likewise.
16195 (vectorizable_load): Likewise.
16197 2016-01-12 Richard Biener <rguenther@suse.de>
16199 PR tree-optimization/69174
16200 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
16202 (vectorizable_load): Properly compute the number of loads needed
16203 for permuted strided SLP loads and do not spuriously assign
16204 to SLP_TREE_VEC_STMTS.
16206 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
16208 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
16209 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
16210 (MD_EXEC_PREFIX): Remove.
16211 (MD_STARTFILE_PREFIX) Removee.
16212 (FILE_NAME_ABSOLUTE_P): Remove.
16213 (CPP_SPEC): Do not read macros from sys/version.h.
16214 (LINK_COMMAND_SPEC): Remove.
16215 (LOCAL_INCLUDE_DIR): Remove.
16216 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
16217 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
16218 (POST_LINK_SPEC): Define to invoke stubify after linker
16219 (LIBSTDCXX): Remove define
16220 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
16221 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
16222 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
16223 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
16224 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
16225 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
16226 (i386_djgpp_asm_named_section): Add propotype of new procedure
16228 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
16229 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
16230 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
16231 in config/i386/djgpp.h).
16232 (STANDARD_STARTFILE_PREFIX_2): Define identical to
16233 STANDARD_STARTFILE_PREFIX_1.
16234 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
16235 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
16236 installation errors.
16237 (MAX_OFILE_ALIGNMENT): Define to 128.
16238 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
16240 * config/i386/djgpp.c: New file. Add implementation of
16241 i386_djgpp_asm_named_section.
16243 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
16245 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
16246 Add rule for building djgpp.o.
16248 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16250 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
16251 (rtx_is_swappable_p): Reductions are swappable.
16252 (insn_is_swappable_p): V2DF reductions are swappable.
16254 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
16256 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
16257 reloads for other unsupported memory operands.
16259 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
16260 Jim Wilson <jim.wilson@linaro.org>
16263 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
16264 copy_to_mode_reg instead of force_reg.
16266 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
16269 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
16270 TARGET_80387 is true.
16272 2016-01-11 Jakub Jelinek <jakub@redhat.com>
16275 * lra-eliminations.c (move_plus_up): Only move plus up
16276 if subreg of the constant can be simplified into constant
16277 and use the simplified subreg of the constant instead of
16278 the original constant.
16280 * fold-const.c (fold_convertible_p): Don't return true
16281 for conversion of VECTOR_TYPE to same sized integral type.
16282 (fold_convert_loc): Fix up formatting. Fold conversion of
16283 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
16284 instead of NOP_EXPR.
16286 PR tree-optimization/69214
16287 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
16288 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
16291 PR tree-optimization/69207
16292 * tree-vect-slp.c (vect_get_constant_vectors): For
16293 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
16294 fold_convertible_p to vector_type's element type, and always
16295 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
16297 2016-01-11 Richard Biener <rguenther@suse.de>
16299 PR tree-optimization/69173
16300 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
16301 fixup the cycle if all stmts are in a pattern.
16303 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
16305 PR middle-end/68999
16306 * alias.c (base_alias_check): Move check for addresses with
16307 alignment ANDs before the call for compare_base_decls.
16308 (memrefs_conflict_p): Return -1 for different decls
16309 that went through alignment adjustments.
16311 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16313 PR rtl-optimization/68796
16314 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
16315 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
16316 and QImode comparisons against zero with CC_NZmode.
16317 * config/aarch64/iterators.md (short_mask): New mode_attr.
16319 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
16321 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
16322 (<avx512>_store<mode>_mask): Likewise.
16324 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
16325 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16327 PR rtl-optimization/68841
16328 * ifcvt.c (struct noce_if_info): Add orig_x field.
16329 (bbs_ok_for_cmove_arith): Add to_rename parameter.
16330 Don't record conflicts on to_rename if it's present.
16331 Allow memory destinations in sets.
16332 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
16333 blocks, passing orig_x to the checks.
16334 (noce_process_if_block): Set if_info->orig_x appropriately.
16336 2016-01-11 Tom de Vries <tom@codesourcery.com>
16338 PR tree-optimization/69069
16339 * tree-parloops.c (create_parallel_loop): Add missing phi args.
16341 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
16343 PR rtl-optimization/68920
16344 * config/i386/i386.c (ix86_option_override_internal): Restrict number
16345 of conditional moves for RTL if-conversion to 1 for
16346 TARGET_ONE_IF_CONV_INSN.
16347 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
16348 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
16349 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
16350 parameter to restirct number of conditional moves for
16352 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
16353 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
16356 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
16359 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
16360 onepart vars. Fix typo in comment. Fix reversed condition in
16362 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
16365 * var-tracking.c (dump_onepart_variable_differences): New.
16366 (dataflow_set_different): If a detailed dump is requested,
16367 delay early returns and dump differences between onepart
16368 variables present before and after, and added variables.
16370 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
16373 * expr.c (expand_expr_real_1): For boolean vector constants
16374 with a scalar mode use const_scalar_mask_from_tree.
16375 (const_scalar_mask_from_tree): New.
16376 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
16377 assigned to a mask type to handle constants.
16379 2016-01-11 Martin Jambor <mjambor@suse.cz>
16382 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
16383 useless parameters if we cannot change function signature.
16385 2016-01-11 Martin Jambor <mjambor@suse.cz>
16388 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
16391 2016-01-11 Tom de Vries <tom@codesourcery.com>
16393 PR tree-optimization/69109
16394 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
16397 2016-01-11 Tom de Vries <tom@codesourcery.com>
16399 PR tree-optimization/69108
16400 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
16401 res is not used in a phi.
16403 2016-01-11 Yury Gribov <y.gribov@samsung.com>
16406 * common.opt (frandom-seed): Fix parameter name.
16407 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
16409 2016-01-11 Tom de Vries <tom@codesourcery.com>
16411 PR tree-optimization/69058
16412 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
16415 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
16417 * config/arc/arc.opt (mdiv-rem): Add period to the end.
16418 (mcode-density): Likewise.
16420 2016-01-10 Tom de Vries <tom@codesourcery.com>
16422 PR tree-optimization/69062
16423 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
16424 (parallelize_loops): Don't paralelize loop that has phi with address
16427 2016-01-10 Tom de Vries <tom@codesourcery.com>
16429 PR tree-optimization/69039
16430 * tree-parloops.c (try_create_reduction_list): Only allow single exit
16433 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
16435 PR middle-end/68743
16436 * match.pd: Require target has function_c99_misc before doing
16437 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
16439 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
16441 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
16443 * configure: Regenerate.
16445 2016-01-09 Jakub Jelinek <jakub@redhat.com>
16447 PR middle-end/50865
16448 PR tree-optimization/69097
16449 * fold-const.h (expr_not_equal_to): New prototype.
16450 * fold-const.c: Include stringpool.h and tree-ssanames.h.
16451 (expr_not_equal_to): New function.
16452 * match.pd (X % -Y is the same as X % Y): Don't optimize
16453 unless X is known not to be equal to minimum or Y is known
16454 not to be equal to -1.
16455 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
16456 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
16457 (simplify_stmt_using_ranges): Adjust caller.
16458 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
16459 substitute_and_fold.
16461 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
16463 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
16466 2016-01-08 Jakub Jelinek <jakub@redhat.com>
16468 PR tree-optimization/69167
16469 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
16470 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
16472 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
16474 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
16475 Richard Biener <rguenther@suse.de>
16477 PR tree-optimization/68707
16478 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
16479 instances that can be handled via vect_load_lanes.
16481 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
16483 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
16484 if we can't determine address equivalence.
16485 * alias.c (compare_base_decl): Update for changed return value of
16486 symtab_node::equal_address_to.
16488 2016-01-08 Jason Merrill <jason@redhat.com>
16492 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
16493 * expr.c (store_field): Not here.
16494 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
16495 call with TREE_ADDRESSABLE type.
16496 * tree-cfg.c (verify_gimple_call): Adjust.
16498 2016-01-08 Olivier Hainque <hainque@adacore.com>
16500 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
16503 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
16505 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
16506 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
16507 (reduc_smin_v2sf): Rename to...
16508 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
16509 (reduc_splus_v2sf): Rename to...
16510 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
16512 2016-01-08 Jakub Jelinek <jakub@redhat.com>
16514 PR tree-optimization/69162
16515 * gimplify.c (gimplify_va_arg_expr): Encode original type of
16516 valist argument in another argument.
16517 (gimplify_modify_expr): Adjust for the above change. Cleanup.
16518 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
16519 to determine the va_list type, build a MEM_REF instead of
16520 build_fold_indirect_ref.
16522 PR tree-optimization/69172
16523 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
16526 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
16528 PR tree-optimization/67781
16529 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
16530 and cmpnop in two steps: first the ones not accessed in original
16531 gimple expression in a endian independent way and then the ones not
16532 accessed in the final result in an endian-specific way.
16534 2016-01-08 Jakub Jelinek <jakub@redhat.com>
16536 PR tree-optimization/69083
16537 * tree-vect-slp.c (vect_get_constant_vectors): For
16538 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
16539 element type. If op is fold_convertible_p to vector_type's element
16540 type, use NOP_EXPR instead of VCE.
16542 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
16544 PR rtl-optimization/67778
16545 PR rtl-optimization/68634
16546 PR rtl-optimization/68909
16547 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
16548 block from the stack until done with it. Remove a superfluous
16549 bitmap set. Remove a superfluous bitmap test.
16551 2016-01-07 Martin Sebor <msebor@redhat.com>
16554 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
16555 constraint on the type of arguments.
16557 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
16559 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
16560 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
16561 unaligned_access on the gcc_options set.
16562 * config/arm/arm.c (arm_option_override_internal): Use
16563 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
16565 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
16568 * config/i386/i386.c (ix86_frame_pointer_required): Enable
16569 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
16571 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
16574 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
16577 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
16578 depending on frame_pointer_needed before remaining integer and SSE
16579 registers are saved.
16581 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
16584 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
16586 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
16589 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
16590 Use the "xBm" constraint.
16591 (float<sseintvecmodelower><mode>2<mask_name><round_name):
16593 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
16594 (sse_cvtsi2ssq<round_name>): Likewise.
16595 (sse_cvtss2si<round_name>): Likewise.
16596 (sse_cvtss2siq<round_name>): Likewise.
16597 (sse2_cvtsi2sdq<round_name>): Likewise.
16598 (sse2_cvtsd2si<round_name>): Likewise.
16599 (sse2_cvtsd2siq<round_name>): Likewise.
16600 * config/i386/subst.md (round_nimm_scalar_predicate): New
16603 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
16605 PR middle-end/67639
16606 * varasm.c (make_decl_rtl): Mark invalid register vars as
16609 PR rtl-optimization/66206
16610 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
16611 All callers changed.
16613 2016-01-07 Jakub Jelinek <jakub@redhat.com>
16615 PR tree-optimization/69141
16616 * tree-ssa-pre.c: Include langhooks.h.
16617 (eliminate_dom_walker::before_dom_children): Use
16618 lang_hooks.decl_printable_name instead of
16619 cgraph_node::get ()->name ().
16621 PR middle-end/68960
16622 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
16623 it and DECL_ALIGN too.
16625 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
16627 * config/mips/mips-ftypes.def: Sort to lexicographical order.
16629 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
16632 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
16633 depending on frame_pointer_needed before remaining integer and SSE
16634 registers are saved.
16636 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16638 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
16639 mode iterator with VSX_M2.
16640 (*p9_vecstore_<mode>): Likewise.
16641 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
16642 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
16643 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
16644 (define_split for VSX_LE128 stores): Likewise.
16645 (define_peephole2 for TImode LE swaps): Likewise.
16646 (define_split for VSX_LE128 post-reload stores): Likewise.
16648 2016-01-06 Marek Polacek <polacek@redhat.com>
16651 * convert.c (convert_to_integer_1): Adjust call to
16652 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
16653 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
16654 EXPR instead of ARG.
16655 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
16657 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
16660 * doc/extend.texi (RL78 Variable Attributes): New section.
16662 2016-01-05 Marek Polacek <polacek@redhat.com>
16665 * builtins.c (get_memmodel): Use expansion point location rather than
16666 the input location. Call warning_at rather than warning.
16667 (expand_builtin_atomic_compare_exchange): Likewise.
16668 (expand_builtin_atomic_load): Likewise.
16669 (expand_builtin_atomic_store): Likewise.
16670 (expand_builtin_atomic_clear): Likewise.
16672 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
16675 * config/i386/i386.c (ix86_expand_vector_logical_operator):
16676 Replace nonimmediate_operand with vector_operand.
16677 * config/i386/predicates.md (vector_operand): New predicate.
16678 (general_vector_operand): Replace nonimmediate_operand with
16680 * config/i386/sse.md: Replace nonimmediate_operand with
16681 vector_operand and m constraint with Bm constraint on SSE
16682 patterns with 16-byte memory operand.
16683 * config/i386/subst.md (round_nimm_predicate): Replace
16684 nonimmediate_operand with vector_operand.
16685 (round_saeonly_nimm_predicate): Likewise.
16686 (round_saeonly_nimm_scalar_predicate): New.
16688 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
16691 * config/i386/constraints.md (Bm): New constraint.
16692 * config/i386/predicates.md (vector_memory_operand): New
16694 * config/i386/sse.md: Replace xm with xBm in plusminus and
16695 any_logic patterns.
16697 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
16700 * doc/extend.texi (V850 Function Attributes): New section.
16701 (V850 Variable Attributes): New section.
16703 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
16706 * doc/extend.texi (MicroBlaze Function Attributes): Document
16707 interrupt_handler and fast_interrupt attributes.
16709 2016-01-05 Sergei Trofimovich <siarheit@google.com>
16712 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
16713 for local symbolic operands.
16714 * config/ia64/predicates.md (local_symbolic_operand64): New
16717 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16719 PR rtl-optimization/68651
16720 * combine.c (combine_simplify_rtx): Canonicalize x + x into
16723 2016-01-05 Nathan Sidwell <nathan@acm.org>
16725 * alias.c (compare_base_decls): Use symtab_node::get.
16727 2016-01-05 Nick Clifton <nickc@redhat.com>
16730 * ira-costs.c (copy_cost): Initialise the t_icode field of the
16731 secondary_reload_info structure.
16734 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
16735 decls if weak support is available.
16737 2016-01-04 Martin Sebor <msebor@redhat.com>
16739 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
16741 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
16743 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
16744 OPTION_MASK_P9_DFORM.
16746 * config/rs6000/constraints.md (wo constraint): New constraint for
16749 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
16751 (rs6000_init_hard_regno_mode_ok): Likewise.
16753 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
16756 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
16757 expanders not to have constraints. Add support for ISA 3.0 xxperm
16758 instruction. Add support for fusing xxlor with xxperm.
16759 (altivec_vperm_<mode>_internal): Likewise.
16760 (altivec_vperm_v8hiv16qi): Likewise.
16761 (altivec_vperm_<mode>v16q): Likewise.
16762 (altivec_vperm_<mode>_uns): Likewise.
16763 (vperm_v8hiv4si): Likewise.
16764 (vperm_v16qiv8hi): Likewise.
16766 * doc/md.texi (RS/6000 constraints): Document wo constraint.
16768 2016-01-04 Jakub Jelinek <jakub@redhat.com>
16770 Update copyright years.
16772 * gcc.c (process_command): Update copyright notice dates.
16773 * gcov-dump.c (print_version): Ditto.
16774 * gcov.c (print_version): Ditto.
16775 * gcov-tool.c (print_version): Ditto.
16776 * gengtype.c (create_file): Ditto.
16777 * doc/cpp.texi: Bump @copying's copyright year.
16778 * doc/cppinternals.texi: Ditto.
16779 * doc/gcc.texi: Ditto.
16780 * doc/gccint.texi: Ditto.
16781 * doc/gcov.texi: Ditto.
16782 * doc/install.texi: Ditto.
16783 * doc/invoke.texi: Ditto.
16785 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
16787 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
16788 modes larger than TImode as TImode if NEON is not enabled.
16790 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
16793 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
16794 mode for %f0-%f31 only if TARGET_FPU.
16796 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
16799 * config/sparc/sparc.c (scan_record_type): Take into account subfields
16800 to compute the PACKED_P predicate.
16801 (function_arg_record_value): Minor tweaks.
16803 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
16805 * doc/install.texi (--with-multilib-list): Describe the meaning of the
16806 option for arm*-*-* targets.
16808 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
16810 * doc/extend.texi (Common Function Attributes): Move docs for
16811 MSP430-specific attributes to....
16812 (MSP430 Function Attributes): ...here. Delete the redundant
16813 entries and copy-edit the remaining text.
16814 (MSP430 Variable Attributes): Use uniform format for index
16815 entries and add a cross-reference to the corresponding function
16818 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
16820 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
16822 (x86 Options): Likewise.
16824 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
16828 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
16829 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
16830 to corresponding attribute.
16832 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
16834 * doc/extend.texi (Common Function Attributes) <noplt>: Move
16835 to correct alphabetization of table. Copy-edit and correct
16837 <stack_protect>: Likewise.
16838 <target_clones>: Likewise.
16840 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
16841 Correct punctuation.
16842 (Code Gen Options) <-fno-plt>: Copy-edit.
16844 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
16847 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
16848 SI values. Explicitly convert SI to DI and vice-versa.
16850 2016-01-01 Jakub Jelinek <jakub@redhat.com>
16852 PR tree-optimization/69070
16853 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
16854 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
16857 * ubsan.c (ubsan_instrument_float_cast): Call
16858 initialize_sanitizer_builtins.
16861 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
16863 Copyright (C) 2016 Free Software Foundation, Inc.
16865 Copying and distribution of this file, with or without modification,
16866 are permitted in any medium without royalty provided the copyright
16867 notice and this notice are preserved.