Mark -fstack-protect as optimization flag.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-06-29  Martin Liska  <mliska@suse.cz>
2
3         PR middle-end/71585
4         * common.opt (flag_stack_protect): Mark the flag as optimization
5         flag.
6         * ipa-inline-transform.c (inline_call): Remove unnecessary call
7         of build_optimization_node.
8
9 2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
10
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.
16
17 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
18
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
30         get_addr_stridx.
31
32 2016-06-29  Richard Biener  <rguenther@suse.de>
33
34         PR rtl-optimization/68961
35         * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
36
37 2016-06-29  Richard Biener  <rguenther@suse.de>
38
39         PR middle-end/71002
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.
43
44 2016-07-29  Richard Biener  <rguenther@suse.de>
45
46         * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
47         precision not matching mode precision.
48
49 2016-06-28  John David Anglin  <danglin@gcc.gnu.org>
50
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.
57
58 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
59
60         PR middle-end/71626
61         * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
62         a constant, force its SUBREG_REG into memory or register instead
63         of whole op1.
64
65 2016-06-28  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
66
67         PR target/58655
68         * config/avr/avr.opt (-mfract-convert-truncate): Update description.
69         * doc/invoke.texi (AVR Options): Document it.
70
71 2016-06-28  Walter Lee  <walt@tilera.com>
72
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.
77
78 2016-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
79
80         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
81         for big-endian BIT_FIELD_REF.
82
83 2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
84
85         * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
86         ('size' attribute): Add '128'.
87         Include power9.md.
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
104         htmsimple.
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
124         reordering.
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
132         variables.
133
134 2016-06-28  Richard Biener  <rguenther@suse.de>
135
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.
142
143 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
144
145         * Makefile.in: Don't cat ../stage_current if it does not exist.
146
147         * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
148         last argument is a bit-field.
149
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
153         expand_simple_binop.
154
155         PR middle-end/66867
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
161         last argument.
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.
174
175 2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
176
177         PR target/71670
178         * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
179         gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
180
181 2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
182
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
205         type to veclogical.
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,
224         vecmove.
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,
232         veccmpfx.
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
248         fpsimple.
249         * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
250
251 2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
252
253         PR target/71656
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
260         support.
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.
270
271 2016-06-26  Uros Bizjak  <ubizjak@gmail.com>
272
273         PR target/70902
274         PR target/71453
275         PR target/71555
276         PR target/71596
277         PR target/71657
278         * config/i386/i386.c (ix86_spill_class): Disable condition to
279         always return NO_REGS.
280
281 2016-06-26  Jan Hubicka  <hubicka@ucw.cz>
282
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.
291
292 2016-06-26  John David Anglin  <danglin@gcc.gnu.org>
293
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.
299
300 2016-06-25  Jakub Jelinek  <jakub@redhat.com>
301
302         PR tree-optimization/71643
303         * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
304         EH preds.
305
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.
308
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.
315
316 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
317
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.
322
323 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
324
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
328         predictor.
329         * predict.def (PRED_RECURSIVE_CALL): New.
330
331 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
332
333         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
334         (BU_FLOAT128_1): Likewise.
335         (FABSQ): 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.
361
362 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
363
364         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
365         PRIu64 instead of lu.
366
367 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
368
369         PR debug/71642
370         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
371         copy the type name.
372
373 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
374
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.
379
380 2016-06-24  H.J. Lu  <hongjiu.lu@intel.com>
381
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
396         is 1.
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.
401
402 2016-06-24  Martin Liska  <mliska@suse.cz>
403
404         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
405         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
406         few functions.
407         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
408         argument to true if the expected number of iterations is
409         loop-based.
410
411 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
412
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.
419
420 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
421
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.
425
426 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
427
428         * internal-fn.c (expand_arith_set_overflow): New function.
429         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
430         Use it.
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.
439
440 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
441             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
442
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.
452
453 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
454
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.
459
460 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
461
462         PR target/66232
463         PR target/67400
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,
472         defined to 0.
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.
487
488 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
489
490         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
491
492 2016-06-23  Andi Kleen  <ak@linux.intel.com>
493
494         * Makefile.in: Regenerate.
495         * doc/install.texi: Document autoprofiledbootstrap.
496
497 2016-06-23  Andi Kleen  <ak@linux.intel.com>
498
499         * config/i386/gcc-auto-profile: New file.
500
501 2016-06-23  Martin Liska  <mliska@suse.cz>
502
503         PR middle-end/71619
504         * predict.c (predict_loops): Revert the hunk that was removed
505         in r237103.
506
507 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
508
509         * config.gcc: Add support for arm*-*-phoenix* targets.
510         * config/arm/t-phoenix: New.
511         * config/phoenix.h: New.
512
513 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
514             H.J. Lu  <hongjiu.lu@intel.com>
515
516         PR target/67400
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.
530
531 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
532
533         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
534
535 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
536
537         PR c/70339
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.
545
546 2016-06-22  Nick Clifton  <nickc@redhat.com>
547
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.
559
560 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
561
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.
585
586 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
587
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.
593
594 2016-06-22  Andreas Schwab  <schwab@suse.de>
595
596         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
597         Remove declaration.
598
599 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
600
601         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
602
603 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
604
605         * config/i386/i386.c (print_reg): Emit an error message on attempt to
606         print FLAGS_REG.
607
608 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
609
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.
622
623 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
624
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
632         -mcpu and -mtune.
633
634 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
635
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.
642
643 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
644
645         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
646
647 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
648
649         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
650         (do_rewrite): likewise.
651
652 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
653
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.
678
679 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
680
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.
685
686 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
687
688         * config.gcc: Remove m32r-rtems support.
689         * config/m32r/rtems.h: Remove.
690
691 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
692
693         * config.gcc: Remove h8300-rtems support.
694         * config/h8300/rtems.h: Remove.
695         * config/h8300/t-rtems: Remove.
696
697 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
698
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.
704
705 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
706
707         * config.gcc: Remove support for openbsd 2 and 3.
708         * config/openbsd-oldgas.h: Remove.
709
710 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
711
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.
719
720 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
721
722         * config/rs6000/rs6000.h: Add conditional preprocessing directives
723         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
724         not defined.
725
726 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
727
728         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
729         they are both PLACEHOLDER_EXPRs.
730
731 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
732
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.
736
737 2016-06-21  Martin Liska  <mliska@suse.cz>
738
739         * predict.c (force_edge_cold): Replace imposisble with
740         impossible.
741
742 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
743
744         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
745         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
746
747 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
748
749         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
750
751 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
752             Ilya Enkovich  <ilya.enkovich@intel.com>
753
754         PR target/71549
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.
760
761 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
762
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.
766
767 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
768
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.
772
773 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
774
775         PR target/30417
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:...}.
779
780 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
781
782         PR target/71103
783         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
784         constant addresses if can_create_pseudo_p.
785
786 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
787
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
791         it.
792
793 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
794
795         PR middle-end/71581
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,
800         punt.
801
802         PR rtl-optimization/71591
803         * toplev.c (toplev::run_self_tests): If no_backend, complain and
804         don't run any tests.
805
806 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
807
808         PR target/71571
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".
812
813 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
814
815         PR target/71559
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.
819
820 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
821
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.
833
834 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
835
836         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
837         costs relative to the cost of a register move.
838
839 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
840
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.
849
850 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
851
852         * config/aarch64/aarch64.md
853         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
854         iterators.
855         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
856         attributes.
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
865         rather than BINOP.
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.
869
870 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
871
872         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
873         costs relative to the cost of a register move.
874
875 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
876
877         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
878         Allow scalar/single vector modes to be tieable.
879
880 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
881
882         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
883
884 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
885
886         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
887         "alignement".
888         * tree.h (TYPE_ALIGN): Likewise.
889
890 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
891
892         PR target/71103
893         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
894
895 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
896
897         * config/avr/avr.c (avr_print_operand): Fix "format not a string
898         literal" build warnings.
899         (avr_print_operand_address): Dito.
900
901 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
902
903         PR target/71375
904         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
905         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
906
907 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
908
909         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
910
911 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
912
913         PR bootstrap/71435
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.
917
918 2016-06-17  DJ Delorie  <dj@redhat.com>
919
920         PR target/71338
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.
926
927 2016-06-17  Martin Liska  <mliska@suse.cz>
928
929         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
930
931 2016-06-17  Martin Liska  <mliska@suse.cz>
932
933         * predict.def: PRED_LOOP_EXIT from 92 to 85.
934
935 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
936
937         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
938         __FAST_MATH__.
939         (vaddq_f32): Likewise.
940         (vmul_f32): Likewise.
941         (vmulq_f32): Likewise.
942         (vsub_f32): Likewise.
943         (vsubq_f32): Likewise.
944
945 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
946
947         PR tree-optimization/71347
948         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
949         cost for all uses in group.
950
951 2016-06-17 Bin Cheng  <bin.cheng@arm.com>
952
953         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
954         insert gimple seq if it's not empty.
955
956 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
957
958         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
959         member OFFSET.
960         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
961         rather than OFFSET.
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
966         DR_OFFSET directly.
967
968 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
969
970         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
971
972 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
973
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.
980
981 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
982
983         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
984
985 2016-06-16  Martin Liska  <mliska@suse.cz>
986
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
990         DS theory predictor.
991         (combine_predictions_for_bb): Likewise.
992
993 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
994
995         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
996         with base of reference to struct.
997
998 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
999
1000         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
1001
1002 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1003
1004         PR target/71151
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.
1011
1012 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
1013
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.
1022
1023 2016-06-16  Martin Liska  <mliska@suse.cz>
1024
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.
1028
1029 2016-06-16  Martin Liska  <mliska@suse.cz>
1030
1031         * predict.def: Add 'Fortran' to display text of all
1032         PRED_FORTRAN_* predictors.
1033
1034 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
1035
1036         PR target/71242
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.
1044
1045 2016-06-16  Nick Clifton  <nickc@redhat.com>
1046
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.
1053
1054 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
1055
1056         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
1057         of comparsions in the last iteration.
1058
1059 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
1060             Joern Rennecke  <joern.rennecke@embecosm.com>
1061
1062         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
1063         addresses.
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
1068         GOTOFFPC.
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.
1074
1075 2016-06-16  Martin Liska  <mliska@suse.cz>
1076
1077         * predict.def: Define a new predictor.
1078
1079 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
1080
1081         * config/arc/arc.opt (mtp-regno): Update text.
1082
1083 2016-06-16  Renlin Li  <renlin.li@arm.com>
1084
1085         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
1086
1087 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
1088
1089         PR target/71554
1090         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
1091         (setcc + and peephole2): Likewise.
1092
1093         PR rtl-optimization/71532
1094         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
1095         memory slots.
1096
1097 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
1098
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
1105         value.
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
1113         comments.
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
1117         registers.
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.
1130         (lfiwzx): Likewise.
1131         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
1132         alternative.
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
1141         read.
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
1150         wB constraint.
1151
1152 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
1153
1154         PR target/67353
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.
1161
1162 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1163
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.
1167
1168 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
1169
1170         PR middle-end/71529
1171         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
1172         DECL_CONTEXT for copied arguments.
1173
1174 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
1175
1176         PR tree-optimization/71483
1177         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
1178         for slp
1179
1180 2016-06-15  Martin Liska  <mliska@suse.cz>
1181
1182         * predict.c (tree_predict_by_opcode): Call predict_edge_def
1183         instead of predict_edge w/o a probability.
1184
1185 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
1186
1187         PR tree-optimization/71439
1188         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
1189         live PHIs.
1190
1191 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1192
1193         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
1194         register subregs in SET_SRC.
1195
1196 2016-06-15  Richard Biener  <rguenther@suse.de>
1197
1198         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
1199         store restrictions.
1200
1201 2016-06-15  Richard Biener  <rguenther@suse.de>
1202
1203         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
1204         not consider dependences between accesses that belong to the
1205         same group.
1206         (vect_analyze_data_ref_dependences): Do not analyze read-read
1207         or self-dependences.
1208
1209 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
1210
1211         * spellcheck-tree.c: Include spellcheck-tree.h rather than
1212         spellcheck.h.
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
1217         struct.
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.
1225
1226 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
1227
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.
1240
1241 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1242
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.
1247
1248 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
1249
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.
1254
1255 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
1256
1257         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
1258         FreeBSD 11 and above.
1259
1260 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
1261
1262         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
1263
1264 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1265
1266         * expmed.h: Close parenthesis in "at your option" in copyright
1267         boilerplate.
1268         * lower-subreg.h: Likewise.
1269
1270 2016-06-14  Richard Biener  <rguenther@suse.de>
1271
1272         PR middle-end/71526
1273         * genmatch.c (expr::gen_transform): Use in_type for comparisons
1274         if available.
1275
1276 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1277
1278         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
1279         New function.
1280         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
1281         mask+shift version.
1282         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
1283         New prototype.
1284         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
1285         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
1286
1287 2016-06-14  Richard Biener  <rguenther@suse.de>
1288
1289         PR tree-optimization/71522
1290         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
1291         copying into float copying.
1292
1293 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
1294
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.
1298
1299 2016-06-14  Richard Biener  <rguenther@suse.de>
1300
1301         PR middle-end/71310
1302         PR bootstrap/71510
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.
1307
1308 2016-06-14  Richard Biener  <rguenther@suse.de>
1309
1310         PR tree-optimization/71521
1311         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
1312         division int_const_binop against zero divisor.
1313
1314 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
1315
1316         * config/i386/i386.md (signbittf2): New expander.
1317         * config/i386/sse.md (ptesttf2): New insn pattern.
1318
1319 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1320
1321         PR bootstrap/71481
1322         * input.c (selftest::test_reading_source_line): Avoid reading from
1323         __FILE__ by creating a tempfile with known content and reading
1324         from that instead.
1325
1326 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1327
1328         * pretty-print.c (assert_pp_format_colored): Skip the test if
1329         GCC_COLORS is set.
1330         (test_pp_format): Remove comment about GCC_COLORS.
1331
1332 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1333
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
1346         than file and line.
1347         (selftest::fail): Likewise.  Print the function name.
1348         (selftest::fail_formatted): Likewise.
1349         (selftest::assert_streq): Use a selftest::location rather than
1350         file and line.
1351         * selftest.h (selftest::location): New struct.
1352         (SELFTEST_LOCATION): New macro.
1353         (selftest::pass): Accept a const location & rather than file
1354         and line.
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.
1365
1366 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1367
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.
1373
1374 2016-06-13  Jeff Law  <law@redhat.com>
1375
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.
1383
1384 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1385             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
1386
1387         [AArch64] Emit division using the Newton series
1388
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.
1401
1402 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1403             Wilco Dijkstra  <wilco.dijkstra@arm.com>
1404
1405         [AArch64] Emit square root using the Newton series
1406
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.
1425
1426 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1427
1428         [AArch64] Add more choices for the reciprocal square root approximation
1429
1430         Allow a target to prefer such operation depending on the operation mode.
1431
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
1452         "tune_params".
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.
1456
1457 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1458
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.
1462
1463 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1464
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
1468         byte.
1469         (vec_absdh): New macro for vector absolute difference unsigned
1470         half-word.
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
1476         definition.
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.
1487
1488 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1489
1490         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
1491         update shared_lookup_references only once after changing operands.
1492
1493 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
1494
1495         PR middle-end/71373
1496         * tree-nested.c (convert_nonlocal_omp_clauses)
1497         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
1498
1499         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
1500         * tree.def (CASE_LABEL_EXPR): Likewise.
1501
1502 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1503
1504         PR bootstrap/71481
1505         * input.c (test_builtins): Fix an assertion.
1506
1507 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
1508
1509         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
1510         (paritysi2): Ditto.
1511         (isinfxf2): Ditto.
1512         (isinf<mode>2): Ditto.
1513
1514 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
1515
1516         * ggc-tests.c (test_finalization): Only test need_finalization_p
1517         for GCC_VERSION >= 4003.
1518
1519 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1520
1521         * config/s390/vecintrin.h: Fix file description in comment.
1522
1523 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1524
1525         * config/s390/s390-builtin-types.def: Change builtin type naming
1526         scheme to match builtin-types.def.
1527
1528 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
1529
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.
1534
1535 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
1536
1537         PR tree-optimization/71416
1538         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
1539         multiple entries
1540
1541 2016-06-13  Martin Liska  <mliska@suse.cz>
1542
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.
1547
1548 2016-06-13  Richard Biener  <rguenther@suse.de>
1549
1550         PR tree-optimization/71505
1551         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
1552         assert match comment.
1553
1554 2016-06-13  Marek Polacek  <polacek@redhat.com>
1555
1556         PR middle-end/71476
1557         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
1558         gimplify_switch_expr.
1559         (warn_switch_unreachable_r): New function.
1560
1561 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1562
1563         PR target/71379
1564         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
1565         one.
1566
1567 2016-06-13  Richard Biener  <rguenther@suse.de>
1568
1569         PR middle-end/64516
1570         * fold-const.c (fold_unary_loc): Preserve alignment when
1571         folding a VIEW_CONVERT_EXPR into a MEM_REF.
1572
1573 2016-06-13  Martin Liska  <mliska@suse.cz>
1574
1575         PR sanitizer/71458
1576         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
1577         w/ -fsanitize=bounds.
1578
1579 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
1580
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.
1585
1586 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
1587
1588         PR target/71241
1589         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
1590         New primitive type.
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
1597         builtin functions.
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.
1601
1602 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
1603
1604         PR target/71061
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"
1610         attribute.
1611         (*pop_multiple_with_writeback_and_return): Likewise.
1612         (*pop_multiple_with_return): Likewise.
1613
1614 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
1615
1616         PR middle-end/71310
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.
1620
1621 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
1622
1623         PR middle-end/71478
1624         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
1625         vector integer type.
1626
1627 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
1628
1629         PR middle-end/71494
1630         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
1631         without LABEL_DECL, set *handled_ops_p to false instead of true.
1632
1633 2016-06-10  Martin Sebor  <msebor@redhat.com>
1634
1635         PR c/71392
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
1639         them.
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.
1648
1649 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1650
1651         * config/arm/arm.h (pool_vector_label,
1652         return_used_this_function): Remove.
1653
1654 2016-06-10  Jeff Law  <law@redhat.com>
1655
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.
1664
1665 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
1666
1667         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
1668         * predict.def (PRED_LOOP_BRANCH): Remove.
1669
1670 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
1671
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.
1678
1679 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
1680
1681         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
1682
1683 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
1684
1685         PR sanitizer/71480
1686         * varasm.c (place_block_symbol): Adjust alignment for asan protected
1687         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
1688
1689 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
1690
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.
1695
1696 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1697
1698         PR inline-asm/68843
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.
1702
1703 2016-06-10  Richard Biener  <rguenther@suse.de>
1704
1705         * targhooks.c (default_builtin_vectorization_cost): Adjust
1706         vec_construct cost.
1707
1708 2016-06-10  Richard Biener  <rguenther@suse.de>
1709
1710         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
1711         to fold the RHS to a constant if possible.
1712
1713 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
1714
1715         PR middle-end/71373
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.
1720
1721         * gimplify.c (gimplify_adjust_omp_clauses): Discard
1722         OMP_CLAUSE_TILE.
1723         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
1724
1725         * omp-low.c (scan_sharing_clauses): Don't expect
1726         OMP_CLAUSE__CACHE_.
1727
1728 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
1729
1730         PR tree-optimization/71407
1731         PR tree-optimization/71416
1732         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
1733         BIT_FIELD_REF type.
1734
1735 2016-06-10  Richard Biener  <rguenther@suse.de>
1736
1737         PR middle-end/71477
1738         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
1739
1740 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
1741
1742         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
1743
1744 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
1745             Jiong Wang  <jiong.wang@arm.com>
1746
1747         PR rtl-optimization/70751
1748         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
1749         spilled into memory.
1750
1751 2016-06-09  Jonathan Yong  <10walls@gmail.com>
1752
1753         Revert:
1754         2015-09-21  Jonathan Yong  <10walls@gmail.com>
1755
1756         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
1757         sysroot/usr/lib/32api for additional win32 libraries,
1758         fixes failing Cygwin bootstrapping.
1759
1760 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
1761
1762         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
1763         Delete.
1764
1765 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
1766
1767         PR bootstrap/71471
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.
1771
1772 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
1773
1774         * config/mips/mips.c (mips_output_jump): Fix formatting.
1775
1776 2016-06-09  Richard Biener  <rguenther@suse.de>
1777
1778         PR tree-optimization/71462
1779         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
1780         removed blocks.
1781
1782 2016-06-09  Martin Liska  <mliska@suse.cz>
1783
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.
1792
1793 2016-06-09  Martin Liska  <mliska@suse.cz>
1794
1795         * predict.c (filter_predictions): New function.
1796         (remove_predictions_associated_with_edge): Use the filter
1797         function.
1798         (equal_edge_p): New function.
1799
1800 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
1801
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.
1806
1807 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1808
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.
1826
1827 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1828
1829         * config/arm/cortex-a57.md (cortex_a57_alu):
1830         Handle csel type.
1831
1832 2016-06-08  Martin Sebor  <msebor@redhat.com>
1833             Jakub Jelinek  <jakub@redhat.com>
1834
1835         PR c++/70507
1836         PR c/68120
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.
1845
1846 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
1847
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).
1850
1851 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
1852
1853         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
1854         Rewrite, looking one level down for records and arrays.
1855
1856 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
1857
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.
1868
1869 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1870
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.
1875
1876 2016-06-08  Richard Biener  <rguenther@suse.de>
1877
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.
1881
1882 2016-06-08  Richard Biener  <rguenther@suse.de>
1883
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.
1888
1889 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
1890             Richard Biener  <rguenther@suse.de>
1891
1892         PR c++/71448
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.
1896
1897 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
1898
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.
1904
1905 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
1906
1907         PR debug/71432
1908         PR ada/71413
1909         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
1910
1911 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1912
1913         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
1914         VDQF.
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
1920         builtin.
1921         (vpadds_f32): Likewise.
1922         (vpaddq_f32): Likewise.
1923         (vpaddq_f64): Likewise.
1924
1925 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1926
1927         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
1928         VALLF.
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.
1933         Use builtin.
1934         (vabdd_f64): Likewise.
1935         (vabd_f32): Likewise.
1936         (vabd_f64): Likewise.
1937         (vabdq_f32): Likewise.
1938         (vabdq_f64): Likewise.
1939
1940 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1941
1942         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
1943         VALLF.
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
1948         builtin.
1949         (vrsqrtsd_f64): Likewise.
1950         (vrsqrts_f32): Likewise.
1951         (vrsqrts_f64): Likewise.
1952         (vrsqrtsq_f32): Likewise.
1953         (vrsqrtsq_f64): Likewise.
1954
1955 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1956
1957         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
1958         VALLF.
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
1963         builtin.
1964         (vrsqrted_f64): Likewise.
1965         (vrsqrte_f32): Likewise.
1966         (vrsqrte_f64): Likewise.
1967         (vrsqrteq_f32): Likewise.
1968         (vrsqrteq_f64): Likewise.
1969
1970 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1971
1972         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
1973         (ucvtf): Likewise.
1974         (fcvtzs): Likewise.
1975         (fcvtzu): Likewise.
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.
1980         Use builtin.
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.
1996
1997 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1998
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.
2005         (ucvtf): Likewise.
2006         (fcvtzs): Likewise.
2007         (fcvtzu): Likewise.
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.
2017         Use builtin.
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
2026         mapping.
2027         (FCVT_TARGET): Likewise.
2028         (FCVT_FIXED2F): New iterator.
2029         (FCVT_F2FIXED): Likewise.
2030         (fcvt_fixed_insn): New define_int_attr.
2031
2032 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2033
2034         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
2035         some statements was removed.
2036
2037 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
2038
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.
2060
2061 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2062
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.
2083
2084 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
2085
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.
2095
2096 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
2097
2098         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
2099         -mno-htm.
2100
2101 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
2102
2103         * spellcheck.c (selftest::test_find_closest_string): New function.
2104         (spellcheck_c_tests): Call the above.
2105
2106 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2107
2108         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
2109
2110 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
2111
2112         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
2113         Yv=Yv,C alternatives.
2114
2115 2016-06-07  Richard Biener  <rguenther@suse.de>
2116
2117         PR c/61564
2118         * common.opt (ffast-math): Make Optimization.
2119
2120 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
2121             Prachi Godbole  <prachi.godbole@imgtec.com>
2122
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.
2126
2127 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2128
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;
2134         fix formatting.
2135
2136 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
2137
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):
2143         Use the above.
2144
2145 2016-06-07  Richard Biener  <rguenther@suse.de>
2146
2147         PR tree-optimization/71428
2148         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
2149         BIT_FIELD_REF op vs. load.
2150
2151 2016-06-07  Richard Biener  <rguenther@suse.de>
2152
2153         PR middle-end/71423
2154         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
2155         for signed ops.
2156
2157 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
2158
2159         * config/pa/pa.md (call): Generate indirect long calls to non-local
2160         functions on TARGET_64BIT.
2161         (call_value): Likewise.
2162
2163 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
2164
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.
2168
2169 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
2170
2171         PR middle-end/71408
2172         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
2173         propagate_op_to_single_use.
2174
2175 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
2176
2177         PR middle-end/71281
2178         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
2179
2180 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
2181
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.
2200         (rep_mov): Ditto.
2201         (strset_singleop): Ditto.
2202         (rep_stos): Ditto.
2203         (cmpstrnqi_nz_1): Ditto.
2204         (cmpstrnqi_1): Ditto.
2205         (strlenqi_1): Ditto.
2206
2207 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
2208
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.
2213
2214 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
2215
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
2320         template.
2321         (selftest::wide_int_cc_tests): New function.
2322
2323 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2324
2325         PR middle-end/37780
2326         * ifcvt.c (noce_try_ifelse_collapse): New function.
2327         Declare prototype.
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.
2332
2333 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2334
2335         PR middle-end/37780
2336         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
2337         define_insn_and_split.
2338
2339 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2340
2341         PR middle-end/37780
2342         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
2343
2344 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2345
2346         PR c/24414
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.
2362
2363 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
2364
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
2380         implemented ones.
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
2393         PROCESSOR_NIAGARA7.
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
2412         VIS4 4.0.
2413         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
2414         UltraSparc M7.
2415         * config/sparc/sparc.opt (sparc_processor_type): New value
2416         niagara7.
2417         * config/sparc/visintrin.h (__attribute__): Prototypes for the
2418         VIS4 builtins.
2419         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
2420         -mvis4.
2421         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
2422         VIS4 builtins.
2423
2424 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
2425
2426         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
2427
2428 2016-06-06  Richard Biener  <rguenther@suse.de>
2429
2430         PR tree-optimization/71398
2431         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
2432         remove edges.
2433
2434 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
2435
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.
2441
2442 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
2443
2444         PR target/71389
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.
2448
2449 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
2450
2451         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
2452         ATTRIBUTE_UNUSED.
2453
2454 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
2455
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.
2462
2463 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
2464
2465         * cfg.c (check_bb_profile): Do not report mismatched profiles when
2466         only edges out of BB are EH edges.
2467
2468 2016-06-04  Martin Sebor  <msebor@redhat.com>
2469             Marcin Baczyński  <marbacz@gmail.com>
2470
2471         PR c/48116
2472         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
2473         a void expression in a void function.
2474
2475 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
2476
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.
2482
2483 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
2484
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.
2489
2490 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
2491
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.
2495
2496 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
2497
2498         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
2499         for reg+reg addressing mode.
2500
2501 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2502
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.
2506
2507 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
2508
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.
2513
2514 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
2515
2516         PR target/71276
2517         PR target/71277
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.
2544
2545 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2546             Julia Koval  <julia.koval@intel.com>
2547
2548         PR target/66960
2549         PR target/67630
2550         PR target/67634
2551         PR target/67841
2552         PR target/68037
2553         PR target/68618
2554         PR target/68661
2555         PR target/69575
2556         PR target/69596
2557         PR target/69734
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
2571         handler.
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
2577         interrupt handler.
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
2599         attributes.
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
2603         avoid DRAP.
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.
2611
2612 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
2613
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
2618         and use it.
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
2632         functions for it.
2633         (class op_by_pieces_d): New.
2634         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
2635         functions for it.
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
2644         functions.
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
2659         COMPARE_BY_PIECES.
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.
2668
2669 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2670
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
2675
2676 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2677
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.
2689
2690 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2691
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.
2695
2696 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
2697
2698         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
2699
2700 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2701
2702         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
2703
2704 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2705
2706         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
2707
2708 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
2709
2710         PR middle-end/71387
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.
2715
2716 2016-06-02  Jeff Law  <law@redhat.com>
2717
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.
2721
2722 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
2723
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".
2728
2729 2016-06-02  Martin Liska  <mliska@suse.cz>
2730
2731         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
2732
2733 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
2734             Julia Koval  <julia.koval@intel.com>
2735
2736         * function.c (assign_parm_setup_stack): Force source into a
2737         register if needed.
2738         * target.def (function_incoming_arg): Update documentation to
2739         allow arbitrary address computation based on hard register.
2740         * doc/tm.texi: Regenerated.
2741
2742 2016-06-02  Martin Liska  <mliska@suse.cz>
2743
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.
2747
2748 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2749
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.
2753
2754 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
2755
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.
2758
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.
2762
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.
2767
2768 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2769
2770         PR target/70830
2771         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
2772
2773 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
2774
2775         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
2776
2777 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
2778
2779         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
2780         from int to unsigned.
2781
2782 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2783
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.
2790
2791 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2792
2793         PR target/71186
2794         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
2795         for loading up all 0's or all 1's.
2796
2797 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2798
2799         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
2800
2801 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
2802
2803         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
2804         extension.
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.
2808
2809 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2810
2811         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
2812         the factor for live Phi nodes.
2813
2814 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2815
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.
2820
2821 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
2822
2823         PR middle-end/71371
2824         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
2825         around creation of the temporary.
2826
2827 2016-06-01  Richard Biener  <rguenther@suse.de>
2828
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.
2837
2838 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2839
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.
2844         (vslv): New insn.
2845         (vsrv): New insn.
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
2851         new builtin.
2852         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
2853         functions.
2854
2855 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
2856             Jocelyn Mayer  <l_indien@magic.fr>
2857
2858         PR target/67310
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.
2865
2866 2016-06-01  Nathan Sidwell  <nathan@acm.org>
2867
2868         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
2869         undefined weak.
2870
2871 2016-06-01  Richard Biener  <rguenther@suse.de>
2872
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.
2891
2892 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2893
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.
2898
2899 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
2900
2901         * tree-core.h (enum omp_clause_code): Remove
2902         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
2903
2904 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2905
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.
2910
2911 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2912
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.
2917
2918 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2919
2920         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
2921         into account live statements for mask producers.
2922
2923 2016-06-01  Richard Biener  <rguenther@suse.de>
2924
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.
2928
2929 2016-06-01  Richard Biener  <rguenther@suse.de>
2930
2931         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
2932         (relational patterns): Use :c to avoid pattern duplications.
2933
2934 2016-06-01  Richard Biener  <rguenther@suse.de>
2935
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
2940         operands.
2941         (lower_commutative): Adjust.
2942         (dt_simplify::gen): Do not pass artificial operators to gen
2943         functions.
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.
2948
2949 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
2950
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.
2955
2956 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2957
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
2961         PRED_LOOP_EXIT.
2962
2963 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2964
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
2968         loop peeling.
2969
2970 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2971
2972         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
2973         default implementation.
2974
2975 2016-05-31  Nathan Sidwell  <nathan@acm.org>
2976
2977         * dwarf2out.c (cur_line_info_table): Add GTY marker.
2978
2979 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2980
2981         * config/sh/constraints.md (b): Remove constraint.
2982         * config/sh/predicates.md (arith_reg_operand): Remove
2983         TARGET_REGISTER_P.
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.
2997
2998 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2999
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.
3006
3007 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3008
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.
3013
3014 2016-05-31  Marek Polacek  <polacek@redhat.com>
3015
3016         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
3017
3018 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3019
3020         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
3021         aarch64_fusion_enabled_p to check for fusion capabilities.
3022
3023 2016-05-31  Richard Biener  <rguenther@suse.de>
3024
3025         PR tree-optimization/71352
3026         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
3027         minus one and a negate.
3028
3029 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3030
3031         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
3032         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
3033         Delete prototype.
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
3037         directly.
3038         (*aarch64_be_movoi): Likewise.
3039         (*aarch64_be_movci): Likewise.
3040         (*aarch64_be_movxi): Likewise.
3041
3042 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
3043
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.
3047
3048 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
3049
3050         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
3051         attribute __unused__.
3052
3053 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3054
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.
3061
3062 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
3063
3064         PR target/71346
3065         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
3066         `Yv' for scalar operand.
3067
3068 2016-05-31  Tom de Vries  <tom@codesourcery.com>
3069
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.
3073
3074 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
3075
3076         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
3077         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
3078         target.
3079
3080 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
3081
3082         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
3083         tune_64.
3084         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
3085         support on SPARC.
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.
3089
3090 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
3091
3092         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
3093
3094 2016-05-30  Andi Kleen  <ak@linux.intel.com>
3095
3096         * auto-profile.c (read_profile): Replace asserts with errors
3097         when file does not exist.
3098         * gcov-io.c (gcov_read_words): Dito.
3099
3100 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3101
3102         * tree-cfg.c (print_loop): Print likely upper bounds.
3103
3104 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3105
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.
3112
3113 2016-05-30  Martin Liska  <mliska@suse.cz>
3114
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.
3118
3119 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
3120             Marc Glisse  <marc.glisse@inria.fr>
3121
3122         PR tree-optimization/71289
3123         * match.pd (-1 / B < A, A > -1 / B): New transformations.
3124
3125 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3126
3127         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
3128
3129 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3130
3131         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
3132         for peeled copies; avoid underflow when updating estimates; correctly
3133         scale loop profile.
3134
3135 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
3136
3137         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
3138         r236875. Corrected oe3 to oe2 as obvious.
3139
3140 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
3141
3142         PR middle-end/71269
3143         PR middle-end/71252
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.
3148
3149 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
3150
3151         PR middle-end/71252
3152         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
3153         all fields including stmt_to_insert are swapped.
3154
3155 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3156
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
3160         updating.
3161         (canonicalize_loop_induction_variables): Fix formating.
3162
3163 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
3164
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.
3168
3169 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
3170
3171         * tree-vect-loop.c (vect_analyze_loop_2): Use
3172         likely_max_stmt_executions_int.
3173
3174 2016-05-30  Tom de Vries  <tom@codesourcery.com>
3175
3176         PR tree-optimization/69067
3177         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
3178
3179 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
3180
3181         PR target/71245
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.
3185
3186 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3187
3188         * predict.c (maybe_hot_frequency_p): Avoid division.
3189
3190 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
3191
3192         * doc/install.texi: Use https for shop.fsf.org.
3193
3194 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3195
3196         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
3197         likely_max_stmt_executions_int.
3198
3199 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3200
3201         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
3202         likely_max_stmt_executions_int.
3203
3204 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3205
3206         * profile.c (compute_branch_probabilities): Do not report hitrates
3207         here.
3208         (branch_prob): Report hitrates here.
3209         * predict.c (gimple_predict_edge): Do not assert profile status;
3210         fix formatting issues.
3211
3212 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3213
3214         * predict.c (edge_predicted_by_p): New function.
3215         (predict_paths_for_bb): Do not put multiple predictions of the same type
3216         on one edge.
3217
3218 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3219
3220         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
3221         commit.
3222
3223 2016-05-28  Alan Modra  <amodra@gmail.com>
3224
3225         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
3226
3227 2016-05-28  Alan Modra  <amodra@gmail.com>
3228
3229         PR rtl-optimization/71275
3230         * ira.c (ira): Free dominance info.
3231
3232 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
3233
3234         * doc/sourcebuild.texi: New address for upstream Go repository.
3235
3236 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3237
3238         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
3239         (TARGET_ARM_V7M): Likewise.
3240
3241 2016-05-26  Jeff Law  <law@redhat.com>
3242
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
3248         handled elsewhere.
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.
3253
3254 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3255
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.
3273
3274 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
3275
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.
3279
3280 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3281
3282         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
3283         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
3284         prototype.
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.
3287
3288 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
3289
3290         PR target/63596
3291         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
3292         tree-stdarg analysis results.
3293         (aarch64_setup_incoming_varargs): Likewise.
3294
3295 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
3296
3297         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
3298         va_list_gpr_counter_field and va_list_fpr_counter_field.
3299
3300 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
3301
3302         PR67609
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.
3308
3309 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3310
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):
3317         Declare.
3318         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
3319         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
3320         upper bound.
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
3326         bounds.
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.
3335
3336 2016-05-27  Marek Polacek  <polacek@redhat.com>
3337
3338         PR middle-end/71308
3339         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
3340
3341 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3342
3343         * config/s390/s390.md (2x risbg splitters): Use
3344         reg_overlap_mentioned_p instead of rtx_equal_p.
3345
3346 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3347
3348         * combine.c (make_compound_operation): Take known zero bits into
3349         account when checking for possible zero_extend.
3350
3351 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3352
3353         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
3354         Use const_int_operand for operand 2 predicate.  Simplify expand code
3355         as a result.
3356
3357 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
3358
3359         PR middle-end/71279
3360         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
3361         into comparison.
3362
3363 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3364
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
3369         and CC_SESWPmode.
3370         (aarch64_rtx_costs): Likewise.
3371
3372 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3373
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
3380         available.
3381         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
3382         conditional moves where the comparison type is different from move
3383         type.
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
3413         longer used.
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.
3420
3421 2016-05-27  Alan Modra  <amodra@gmail.com>
3422
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.
3426
3427 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
3428
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.
3469
3470 2016-05-26  Martin Liska  <mliska@suse.cz>
3471
3472         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
3473         function.
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.
3483         (new_cost): Remove.
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.
3514
3515 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
3516
3517         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
3518         that internal functions will clobber all caller-saved registers.
3519
3520 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
3521
3522         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
3523         Return a better case_values_threshold when optimizing.
3524
3525 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
3526
3527         * config/aarch64/aarch64-simd.md (aarch64_combinez):
3528         Add ? to integer variant.
3529         (aarch64_combinez_be): Likewise.
3530
3531 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
3532
3533         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
3534         instead of x constraint.
3535         (vcvtps2ph256<mask_name>): Likewise.
3536
3537         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
3538         alternative.  Formatting fix.
3539
3540         * config/i386/sse.md
3541         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
3542         to ...
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.
3548
3549 2016-05-25  Jeff Law  <law@redhat.com>
3550
3551         PR tree-optimization/71272
3552         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
3553         Update comments.  Add test for empty path.
3554
3555 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
3556
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.
3564
3565 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3566
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.
3570
3571 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
3572
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.
3578
3579 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
3580             H.J. Lu  <hongjiu.lu@intel.com>
3581
3582         PR target/70738
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.
3594
3595 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3596
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
3600         operations.
3601
3602 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
3603
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>):
3626         Rename to ...
3627         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
3628         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
3629         to ...
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.
3636
3637 2016-05-25  Nick Clifton  <nickc@redhat.com>
3638
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.
3645
3646 2016-05-25  Richard Biener  <rguenther@suse.de>
3647
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.
3652
3653 2016-05-25  Martin Liska  <mliska@suse.cz>
3654
3655         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
3656
3657 2016-05-25  Richard Biener  <rguenther@suse.de>
3658
3659         PR tree-optimization/71264
3660         * tree-vect-stmts.c (vect_init_vector): Properly deal with
3661         vector type val.
3662
3663 2016-05-25  Martin Liska  <mliska@suse.cz>
3664
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.
3668
3669 2016-05-25  Richard Biener  <rguenther@suse.de>
3670
3671         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
3672         * tree-if-conv.c (pass_data_if_conversion): Use it.
3673
3674 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3675
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.
3679
3680 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3681
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.
3687
3688 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
3689
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.
3695
3696 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3697
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
3701         zeros.
3702         (p9v_parity<mode>2): Likewise.
3703         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
3704         parity.
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
3708         power9 built-ins.
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.
3720         (VCTZH): Likewise.
3721         (VCTZW): Likewise.
3722         (VCTZD): Likewise.
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
3745         functions.
3746
3747 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3748
3749         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
3750         when there is stmt_to_insert.
3751
3752 2016-05-24  Martin Sebor  <msebor@redhat.com>
3753
3754         PR c++/71147
3755         * tree.h (complete_or_array_type_p): New inline function.
3756
3757 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3758
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.
3762
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.
3767
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
3783         alternatives.
3784
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.
3791
3792 2016-05-24  Jeff Law  <law@redhat.com>
3793
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.
3798
3799 2016-05-24  Marek Polacek  <polacek@redhat.com>
3800
3801         PR c/71249
3802         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
3803         scope.
3804
3805 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3806
3807         PR c++/71257
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.
3813
3814 2016-05-24  Richard Biener  <rguenther@suse.de>
3815
3816         PR tree-optimization/71240
3817         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
3818         has integral type.
3819
3820 2016-05-24  Richard Biener  <rguenther@suse.de>
3821
3822         PR tree-optimization/71230
3823         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
3824
3825 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3826
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
3839         hybrid SLP.
3840         (vectorizable_comparison): Make static.  Remove redundant
3841         PURE_SLP_STMT check.
3842         (vect_transform_stmt): Assert that we always have an slp_node
3843         if PURE_SLP_STMT.
3844
3845 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3846
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
3851         against CONST0_RTX.
3852
3853 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3854
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
3860         UINTVAL.
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.
3875
3876 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3877
3878         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
3879         with HOST_WIDE_INT_1.
3880         (insv): Likewise.
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
3885         HOST_WIDE_INT_1.
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
3890         HOST_WIDE_INT_1.
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.
3895
3896 2016-05-24  Marek Polacek  <polacek@redhat.com>
3897
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.
3905
3906 2016-05-24  Richard Biener  <rguenther@suse.de>
3907
3908         PR tree-optimization/71253
3909         * cfganal.h (control_dependences): Make robust against edge
3910         and BB removal.
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
3923         get_edge_src.
3924         (perform_tree_ssa_dce): Adjust.
3925         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
3926         get_edge_src.
3927         (pass_loop_distribution::execute): Adjust.  Do loop destroying
3928         conditional on changed.
3929
3930 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3931
3932         PR target/69857
3933         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
3934         return.  Reindent transformation comment and mention the ARM state
3935         behavior.
3936
3937 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3938
3939         PR middle-end/71252
3940         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
3941         after build_and_add_sum creates new use stmt.
3942
3943 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3944
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
3948         for load_lanes.
3949
3950 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3951
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
3955         variable.
3956
3957 2016-05-24  Richard Biener  <rguenther@suse.de>
3958
3959         PR middle-end/70434
3960         PR c/69504
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.
3965
3966 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3967
3968         PR middle-end/71170
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
3974         to ops vector.
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.
3980
3981 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3982
3983         PR target/71201
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.
3990
3991 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3992             Kelvin Nilsen  <kelvin@gcc.gnu.org>
3993
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
3999         ISA 3.0.
4000
4001 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
4002
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)
4013         with TARGET_SSE2.
4014         (*movdf_internal): Use IS_STACK_MODE macro.
4015         (*movsf_internal): Ditto.
4016
4017 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
4018
4019         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
4020         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
4021
4022 2016-05-23  Jeff Law  <law@redhat.com>
4023
4024         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
4025         extracted from ...
4026         (fsm_find_control_statement_thread_paths): Call it.
4027
4028 2016-05-23  Martin Jambor  <mjambor@suse.cz>
4029
4030         PR ipa/71234
4031         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
4032         from_global_constant if t is not NULL.
4033
4034 2016-05-23  Marek Polacek  <polacek@redhat.com>
4035
4036         PR c/49859
4037         * common.opt (Wswitch-unreachable): New option.
4038         * doc/invoke.texi: Document -Wswitch-unreachable.
4039         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
4040         warning.
4041
4042 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
4043
4044         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
4045         TMR_INDEX is non-NULL.
4046
4047 2016-05-23  Richard Biener  <rguenther@suse.de>
4048
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.
4052
4053 2016-05-23  Martin Jambor  <mjambor@suse.cz>
4054
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.
4057
4058 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
4059
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
4063         vector boundary.
4064
4065 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
4066
4067         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
4068
4069 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
4070
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
4074         of 64x2.
4075
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.
4079
4080         * config/i386/sse.md (i128vldq): New mode iterator.
4081         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
4082         avx512dq and avx512vl alternatives.
4083
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.
4091
4092 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
4093
4094         PR middle-end/40921
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.
4098
4099 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4100
4101         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
4102         to computed stack_usage.
4103
4104 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
4105
4106         PR target/71103
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.
4109
4110 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
4111
4112         * tree.c (array_at_struct_end_p): Look through MEM_REF.
4113
4114 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
4115
4116         PR middle-end/71179
4117         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
4118         VECTOR type.
4119
4120 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
4121
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.
4125
4126 2016-05-20  Jeff Law  <law@redhat.com>
4127
4128         * bitmap.c (bitmap_find_bit): Remove useless test.
4129
4130 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
4131
4132         * function.c (thread_prologue_and_epilogue_insns): Commit the
4133         insertion of the epilogue.
4134
4135 2016-05-20  Martin Jambor  <mjambor@suse.cz>
4136
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.
4142
4143 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
4144
4145         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
4146         for naked functions.
4147         (thumb1_expand_prologue): Likewise.
4148
4149 2016-05-20  Nathan Sidwell  <nathan@acm.org>
4150
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.
4154
4155 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
4156
4157         * calls.c (can_implement_as_sibling_call_p): Mark param
4158         reg_parm_stack_space with ATTRIBUTE_UNUSED.
4159
4160 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
4161
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
4165         constants.
4166         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
4167         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
4168         and CASE_CONST_ANY.
4169
4170 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
4171
4172         * config/nvptx/nvptx.md (sincossf3): New pattern.
4173
4174 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
4175
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.
4199
4200 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
4201
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.
4206
4207 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
4208
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.
4214
4215 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
4216
4217         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
4218         and get_max_loop_iterations_int.
4219
4220 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
4221
4222         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
4223         realistic upper bounds here.
4224
4225 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
4226
4227         PR c++/71210
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.
4232
4233 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
4234
4235         PR tree-optimization/71079
4236         PR tree-optimization/71206
4237         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
4238
4239 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4240
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.
4247
4248 2016-05-20  Richard Guenther  <rguenther@suse.de>
4249
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.
4266
4267 2016-05-20  Richard Biener  <rguenther@suse.de>
4268
4269         PR tree-optimization/71185
4270         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
4271         register operations.
4272
4273 2016-05-20  Richard Biener  <rguenther@suse.de>
4274
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
4282         loop versioning.
4283
4284 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4285
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.
4295
4296 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
4297
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.
4303
4304 2016-05-19  Ryan Burn  <contact@rnburn.com>
4305
4306         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
4307         * gengtype.c (open_base_files): Add cilk.h to ifiles.
4308
4309 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
4310
4311         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
4312         force pending loads from memory.
4313
4314 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
4315
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
4335         configuration.
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
4339         functions.
4340         (builtin_function_type): Remove fatal_error assertion that is no
4341         longer valid.
4342         (rs6000_common_init_builtins): Add support for no-operand built-in
4343         functions.
4344         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
4345         definition.
4346         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
4347         definition.
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
4351         functions.
4352
4353 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
4354
4355         * tree-vect-loop.c (vect_analyze_loop_2): Use also
4356         max_loop_iterations_int.
4357
4358 2016-05-19  Marek Polacek  <polacek@redhat.com>
4359
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.
4363
4364 2016-05-19  Martin Liska  <mliska@suse.cz>
4365
4366         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
4367         auto_vec instead of vec.
4368
4369 2016-05-19  Martin Liska  <mliska@suse.cz>
4370
4371         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
4372
4373 2016-05-19  Martin Liska  <mliska@suse.cz>
4374
4375         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
4376
4377 2016-05-19  Martin Liska  <mliska@suse.cz>
4378
4379         * ipa-pure-const.c (set_function_state): Remove an existing
4380         funct_state.
4381         (remove_node_data): Do not free it as it's released
4382         in set_function_state.
4383
4384 2016-05-19  Martin Liska  <mliska@suse.cz>
4385
4386         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
4387         bitmap.
4388
4389 2016-05-19  Martin Liska  <mliska@suse.cz>
4390
4391         * omp-simd-clone.c (simd_clone_adjust): Release vector.
4392
4393 2016-05-19  Martin Liska  <mliska@suse.cz>
4394
4395         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
4396         an auto_vec instead of re-creating it.
4397
4398 2016-05-19  Martin Liska  <mliska@suse.cz>
4399
4400         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
4401         auto_vec instead of vec.
4402
4403 2016-05-19  Martin Liska  <mliska@suse.cz>
4404
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.
4409
4410 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4411
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.
4414
4415 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
4416
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.
4422
4423 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4424
4425         PR target/71056
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.
4429
4430 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
4431
4432         PR sanitizer/64354
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.
4436
4437 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
4438
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.
4442
4443 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4444
4445         * function.c (thread_prologue_and_epilogue_insn): Move the
4446         "goto epilogue_done" one block later.
4447
4448 2016-05-19  Richard Biener  <rguenther@suse.de>
4449
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.
4453
4454 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
4455
4456         PR driver/69265
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.
4462
4463 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
4464
4465         PR c++/71100
4466         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
4467         lhs if it has TREE_ADDRESSABLE type.
4468
4469 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
4470
4471         PR target/71145
4472         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
4473         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
4474
4475 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4476
4477         PR ipa/69708
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.
4482
4483 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4484
4485         PR ipa/69708
4486         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
4487         from TREE_READONLY parameters.
4488
4489 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4490
4491         PR ipa/69708
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
4496         appropriate.
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
4501         if present.
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
4511         appropriate.
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.
4516
4517 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
4518
4519         PR rtl-optimization/71150
4520         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
4521         check.
4522
4523 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4524
4525         PR target/70915
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
4537         1's set.
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
4546         operations.
4547         (rs6000_legitimize_reload_address): Likewise.
4548         (rs6000_output_move_128bit): Use output_vec_const_move to emit
4549         constants.
4550         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
4551         combine VSX_M and VSX_M2 into one iterator.
4552         (VSX_M2): Likewise.
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
4582         splat instructions.
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
4591         declaration.
4592         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
4593         constraints.  Add trailing period to wL documentation.
4594
4595 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
4596
4597         PR middle-end/71020
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
4604         and return void.
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.
4612
4613 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4614
4615         PR ipa/70646
4616         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
4617         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
4618
4619 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4620
4621         PR ipa/70646
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
4632         them to conditions.
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.
4638
4639 2016-05-18  Richard Biener  <rguenther@suse.de>
4640
4641         * tree-ssa-loop-im.c (determine_max_movement): Properly add
4642         condition cost to PHI cost instead of total_cost.
4643
4644 2016-05-18  Martin Liska  <mliska@suse.cz>
4645
4646         PR fortran/70856
4647         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
4648         merged variables.
4649
4650 2016-05-18  Richard Biener  <rguenther@suse.de>
4651
4652         * lto-streamer.h (LTO_major_version): Bump to 6.
4653
4654 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
4655
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.
4659
4660 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
4661
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.
4665
4666 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
4667
4668         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
4669         expression pointer, not pointer to the pointer.
4670
4671 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
4672
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.
4677
4678         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
4679         constraint x instead of v in second alternative, add avx512bw
4680         alternative.
4681
4682         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
4683         constraint x instead of v in second alternative, add avx512bw
4684         alternative.
4685
4686         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
4687         constraint x instead of v in second alternative, add avx512bw
4688         alternative.
4689
4690         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
4691         avx512bw alternative.
4692
4693 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4694
4695         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
4696         array to 128 chars.
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.
4702
4703 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4704
4705         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
4706         constraint fot SF mode.
4707
4708 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
4709             Kirill Yukhin  <kirill.yukhin@intel.com>
4710
4711         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
4712         modifiers.
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>"):
4719         Ditto.
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.
4724
4725 2016-05-18  Richard Biener  <rguenther@suse.de>
4726
4727         PR tree-optimization/71168
4728         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
4729         initialization earlier.
4730
4731 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
4732
4733         * config/aarch64/aarch64-simd.md
4734         (aarch64_reduc_plus_internal<mode>): Rename to...
4735         (reduc_plus_scal): ...This, and remove previous implementation.
4736
4737 2016-05-18  Richard Biener  <rguenther@suse.de>
4738
4739         * passes.def: Put late dse and cd_dce in canonical order.
4740
4741 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
4742
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
4747         up call stmt id.
4748         (lto_output_node): Inline thunks don't need body in every
4749         partition.
4750         * lto-streamer-in.c: Do not fixup thunk clones.
4751         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
4752         thunks.
4753         * tree-inline.c (copy_bb): Be prepared for target node to be new after
4754         folding suceeds.
4755
4756 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4757
4758         PR middle-end/63586
4759         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
4760         (reassociate_bb): Call transform_add_to_multiply.
4761
4762 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4763
4764         * config/aarch64/aarch64.c (all_extensions): Removed unused
4765         static variable.
4766
4767 2016-05-17  Nathan Sidwell  <nathan@acm.org>
4768
4769         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
4770         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
4771
4772 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
4773
4774         PR tree-optimization/54579
4775         PR middle-end/55299
4776         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
4777
4778 2016-05-17  Marek Polacek  <polacek@redhat.com>
4779
4780         PR ipa/71146
4781         * tree-inline.c (expand_call_inline): Call
4782         maybe_remove_unused_call_args.
4783
4784 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
4785
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.
4789
4790 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4791
4792         * match.pd (X & C): New transformation.
4793
4794 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4795
4796         * match.pd (~X & Y): New transformation.
4797
4798 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4799
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.
4804
4805 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4806
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.
4822
4823 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4824
4825         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
4826         Use builtin.
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.
4837
4838 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4839
4840         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
4841         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
4842
4843 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4844
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.
4854
4855 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
4856
4857         * wide-int.h: Change fixed_wide_int_storage from class to struct.
4858
4859 2016-05-17  Richard Biener  <rguenther@suse.de>
4860
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.
4870
4871 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4872
4873         PR target/70809
4874         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
4875
4876 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4877
4878         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
4879
4880 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
4881
4882         PR target/71114
4883         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
4884         insertion point for instructions generated by validize_mem.
4885
4886 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4887
4888         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
4889         in brackets.
4890
4891 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4892
4893         * config/aarch64/aarch64.c
4894         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
4895         rather than a macro.
4896
4897 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4898
4899         * doc/invoke.texi (AArch64 Options): Various updates.
4900
4901 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4902
4903         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
4904         into instrumentation thunks.
4905         * cif-code.def (CIF_CHKP): New.
4906
4907 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
4908
4909         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
4910
4911 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4912
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.
4915
4916 2016-05-16  Marek Polacek  <polacek@redhat.com>
4917
4918         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
4919         commentary.
4920
4921 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4922
4923         PR hsa/70857
4924         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
4925         the outlined kernel function.
4926
4927 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
4928
4929         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
4930         (ISA_HAS_DLSA): Ditto.
4931
4932 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4933
4934         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
4935
4936 2016-05-16  Nathan Sidwell  <nathan@acm.org>
4937
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.
4943
4944 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4945
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.
4954
4955 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4956
4957         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
4958
4959 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4960
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.
4971
4972 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4973
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.
4981
4982 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4983
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
4986         calls from thunk.
4987         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
4988         gimple body.
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.
4992
4993 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4994
4995         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
4996
4997 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4998
4999         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
5000         for thunks.
5001
5002 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5003
5004         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
5005         (inline_small_functions): Do not look for function symbol when
5006         resetting caches.
5007
5008 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5009
5010         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
5011         of inline thunks
5012
5013 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
5014             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5015             Jiong Wang  <jiong.wang@arm.com>
5016
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
5021         declaration.
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
5032         condition.
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.
5038
5039 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
5040
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):
5045         Remove.
5046
5047 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5048
5049         * configure.ac: Add ACX_NONCANONICAL_HOST.
5050         * configure: Regenerate.
5051         * Makefile.in: Set host_noncanonical.
5052
5053 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
5054
5055         PR target/71097
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.
5062
5063 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
5064
5065         PR rtl-optimization/67483
5066         * combine.c (make_compound_operation): Don't call extract_left_shift
5067         with negative shift amounts.
5068
5069 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
5070
5071         PR bootstrap/71071
5072         * fold-const.c (fold_checksum_tree): Allow modification
5073         of TYPE_ALIAS_SET during folding.
5074
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.
5078
5079 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
5080
5081         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
5082         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
5083         printf format.
5084
5085 2016-05-13  Nathan Sidwell  <nathan@acm.org>
5086
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.
5094
5095         * config/nvptx/nvptx.c (write_fn_proto): Handle
5096         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
5097
5098 2016-05-13  Martin Liska  <mliska@suse.cz>
5099
5100         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
5101         and PRIu64 in printf format.
5102
5103 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5104
5105         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
5106         comment.
5107
5108 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5109
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.
5113
5114 2016-05-13  Richard Biener  <rguenther@suse.de>
5115
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.
5120
5121 2016-05-13  Martin Liska  <mliska@suse.cz>
5122
5123         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
5124         Initialize a variable with default value.
5125
5126 2016-05-13  Martin Liska  <mliska@suse.cz>
5127
5128         * doc/invoke.texi: Enhance explanation of error recovery
5129         of sanitizers.
5130
5131 2016-05-13  Martin Liska  <mliska@suse.cz>
5132
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
5158         inv_expr.
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
5166         inv_expr.
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
5172         invariants.
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.
5184
5185 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
5186
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.
5191
5192 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5193
5194         PR target/53440
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.
5199
5200 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5201
5202         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
5203         to true.
5204
5205 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5206
5207         PR target/71080
5208         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
5209
5210 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
5211
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
5265         obsolete builtins.
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.
5269
5270 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
5271
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.
5275
5276 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
5277
5278         PR rtl-optimization/70904
5279         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
5280         reload for wide mode.
5281
5282 2016-05-12  Marek Polacek  <polacek@redhat.com>
5283
5284         PR c/70756
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.
5292
5293 2016-05-12  Richard Biener  <rguenther@suse.de>
5294
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
5298         hashes.
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
5301         phi-translation.
5302
5303 2016-05-12  Richard Biener  <rguenther@suse.de>
5304
5305         PR tree-optimization/71062
5306         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
5307         field.
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.
5315
5316 2016-05-12  Martin Liska  <mliska@suse.cz>
5317
5318         * doc/invoke.texi: Explain connection between
5319         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
5320
5321 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
5322
5323         PR tree-optimization/71006
5324         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5325         consider COND_EXPR as a mask producer.
5326
5327 2016-05-12  Marek Polacek  <polacek@redhat.com>
5328
5329         PR driver/71063
5330         * opts.c (common_handle_option): Detect missing argument for --help^.
5331
5332 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5333
5334         PR target/70830
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.
5340
5341 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
5342
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.
5353
5354         * config/i386/sse.md (sse2_loadld): Use v instead of x
5355         constraint in alternatives 0,1,4.
5356
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.
5360
5361         PR target/71019
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.
5368
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
5371         of vex prefix.
5372
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.
5386
5387 2016-05-12  Richard Biener  <rguenther@suse.de>
5388
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
5392         type.
5393
5394 2016-05-12  Richard Biener  <rguenther@suse.de>
5395
5396         PR tree-optimization/70986
5397         * cfganal.c: Include cfgloop.h.
5398         (dfs_find_deadend): Prefer to take edges exiting loops.
5399
5400 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5401
5402         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
5403         compile and run time.
5404
5405 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
5406
5407         PR c/43651
5408         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
5409
5410 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
5411
5412         * config/i386/i386.c (legitimize_pic_address): Use
5413         copy_to_suggested_reg instead of gen_movsi.
5414
5415 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
5416
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
5421         d-form support.
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
5433         128-bit types.
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
5443         enabling LRA.
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
5456         -mdebug=addr.
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>
5475         was not selected.
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
5481         instructions.
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.
5495
5496 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
5497
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.
5510
5511 2016-05-11  Richard Biener  <rguenther@suse.de>
5512
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
5516         off bits.
5517
5518 2016-05-11  Richard Biener  <rguenther@suse.de>
5519
5520         PR debug/71057
5521         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
5522         (dwarf2out_finish): Move retry_incomplete_types call ...
5523         (dwarf2out_early_finish): ... here.
5524
5525 2016-05-11  Richard Biener  <rguenther@suse.de>
5526
5527         PR middle-end/71002
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.
5537
5538 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
5539
5540         PR middle-end/70807
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
5544         redundant code.
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.
5551
5552 2016-05-11  Alan Modra  <amodra@gmail.com>
5553
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.
5560
5561 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
5562
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.
5567
5568 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
5569
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.
5574
5575 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
5576
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.
5587
5588 2016-05-10  James Norris  <jnorris@codesourcery.com>
5589
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.
5595
5596 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
5597
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.
5601
5602 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5603
5604         PR target/70799
5605         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
5606         integer constants.
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.
5611
5612 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
5613
5614         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
5615         unary operation, not a binary one.
5616
5617 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5618
5619         PR middle-end/70877
5620         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
5621         calls with type casted fndecl.
5622
5623 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5624
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.
5629
5630 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
5631
5632         PR target/70927
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
5636         accordingly.
5637
5638 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5639
5640         PR target/70963
5641         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
5642         code for a zero scale factor.
5643         (vsx_xvcvdpuxds_scale): Likewise.
5644
5645 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
5646
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
5651         "show_ruler_p".
5652
5653 2016-05-10  Richard Biener  <rguenther@suse.de>
5654
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.
5660
5661 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
5662
5663         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
5664         Forward declare.
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
5668         non-inline.
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.
5680
5681 2016-05-10  Martin Liska  <mliska@suse.cz>
5682
5683         * tree-inline.c (remap_dependence_clique): Do not remap
5684         debugging statements.
5685
5686 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5687
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.
5693
5694 2016-05-10  Richard Biener  <rguenther@suse.de>
5695
5696         PR tree-optimization/70497
5697         PR tree-optimization/28367
5698         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
5699         split out from ...
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
5705         correctly.
5706
5707 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
5708
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.
5715
5716 2016-05-10  Alan Modra  <amodra@gmail.com>
5717
5718         PR target/70947
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.
5723
5724 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
5725
5726         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
5727         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
5728         expanders.
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.
5732
5733 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5734
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.
5738
5739 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
5740
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
5748         for AND masking.
5749
5750 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5751
5752         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
5753         bitpos.
5754
5755 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5756
5757         * tree-affine.c (wide_int_constant_multiple_p): Add missing
5758         pointer dereference.
5759
5760 2016-05-09  Richard Biener  <rguenther@suse.de>
5761
5762         PR tree-optimization/70985
5763         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
5764         op0 isn't a gimple register.
5765
5766 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
5767
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.
5793
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>
5799
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
5804         builtins.
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
5837         MSA.
5838         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
5839         stores.
5840         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
5841         MSA.
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
5866         FPRs.
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
5872         instruction.
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,
6029         move_v builtins.
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
6036         array.
6037         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
6038         hook.
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
6102         specified.
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
6126         for "qword_mode".
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
6135         specified.
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
6164         section.
6165         * doc/invoke.texi (-mmsa): Document new option.
6166
6167 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6168
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
6173         on -fvtable-verify.
6174         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
6175         (ENDFILE_VTV_SPEC): Define.
6176
6177 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
6178
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.
6192
6193 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
6194
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.
6201
6202 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6203
6204         * config/arm/arm.md (probe_stack): Add modes to set source
6205         and destination.
6206
6207 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
6208
6209         * regrename.c (base_reg_class_for_rename): New static function.
6210         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
6211
6212 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
6213
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
6218         thunks.
6219         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
6220         inlinable.
6221         * tree-inline.c (expand_call_inline): Expand thunks inline.
6222
6223 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
6224
6225         PR target/70998
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.
6233
6234 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
6235
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
6238         users.
6239
6240 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
6241
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
6244         the file.
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.
6269
6270 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
6271
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.
6279
6280 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
6281
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.
6294
6295 2016-05-07  Tom de Vries  <tom@codesourcery.com>
6296
6297         PR tree-optimization/70956
6298         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
6299         def.
6300
6301 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
6302
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.
6307
6308 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6309
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.
6318
6319 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
6320
6321         * genmddump.c (main): Convert argv from char ** to const char **.
6322
6323 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
6324
6325         * coretypes.h (OVERRIDE): New macro.
6326         (FINAL): New macro.
6327
6328 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6329
6330         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
6331         allow coalescing if the types are compatible.
6332
6333 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
6334
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.
6352
6353 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
6354
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.
6359         (main): 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.
6381
6382 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6383
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.
6389
6390 2016-05-06  Martin Liska  <mliska@suse.cz>
6391
6392         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
6393         instead of vec as the vector is local to the function.
6394
6395 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
6396
6397         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
6398         avx512bw alternative.
6399
6400         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
6401         before the ashr<mode>3 pattern.
6402
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.
6406
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
6411         in prefix.
6412
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.
6416
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.
6422
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.
6427
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.
6431
6432         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
6433         v constraint instead of x.
6434
6435 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
6436
6437         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
6438         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
6439         equality first.
6440
6441 2016-05-06  Richard Biener  <rguenther@suse.de>
6442
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.
6446
6447 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
6448
6449         PR debug/70935
6450         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
6451         loop latch destination.
6452
6453 2016-05-06  Martin Liska  <mliska@suse.cz>
6454
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.
6459
6460 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6461
6462         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
6463         mspace): Remove deprecated options.
6464         * doc/invoke.texi (SH options): Remove -mspace.
6465
6466 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6467
6468         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
6469
6470 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6471
6472         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
6473         corresponding combine split pattern.
6474
6475 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6476
6477         PR target/58219
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
6481         alternatives.
6482         (movsi_ie): Allow for any FPU.  Adjust length attribute for
6483         alternatives.
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.
6489
6490 2016-05-06  Richard Biener  <rguenther@suse.de>
6491
6492         PR tree-optimization/70960
6493         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
6494
6495 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6496
6497         PR target/52933
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.
6500
6501 2016-05-06  Marek Polacek  <polacek@redhat.com>
6502
6503         PR sanitizer/70875
6504         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
6505
6506 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6507
6508         PR target/54089
6509         * config/sh/sh.md (*rotcr): Add another variant.
6510
6511 2016-05-06  Richard Biener  <rguenther@suse.de>
6512
6513         PR middle-end/70931
6514         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
6515
6516 2016-05-06  Richard Biener  <rguenther@suse.de>
6517
6518         PR middle-end/70941
6519         * fold-const.c (split_tree): Always convert to the original type
6520         before negating.
6521
6522 2016-05-06  Richard Biener  <rguenther@suse.de>
6523
6524         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
6525         (fwprop_addr): Likewise.
6526
6527 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6528
6529         PR target/70873
6530         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
6531         New prototype.
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.
6538
6539 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
6540
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.
6547
6548 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
6549
6550         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
6551         v constraint instead of x.
6552
6553 2016-05-05  Alan Modra  <amodra@gmail.com>
6554
6555         PR target/68662
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):
6571         Likewise.
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):
6579         Don't define.
6580
6581 2016-05-05  Alan Modra  <amodra@gmail.com>
6582
6583         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
6584
6585 2016-05-05  Alan Modra  <amodra@gmail.com>
6586
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
6589         a save of lr.
6590
6591 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
6592
6593         PR target/70873
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):
6599         Ditto.
6600         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
6601         Ditto.  Emit the pattern using RTX.
6602
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):
6607         Ditto.
6608         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
6609         sse_reg_operand as operand 0 predicate.
6610
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):
6615         Ditto.
6616
6617 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6618
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.
6633
6634 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6635
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.
6639
6640 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6641
6642         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
6643         branch to a return.
6644
6645 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
6646
6647         PR c++/70906
6648         PR c++/70933
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.
6655
6656 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
6657
6658         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
6659         comment.
6660         (compute_samebase_partition_bases): Fix typo.
6661
6662 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
6663
6664         * config/i386/sse.md (vec_interleave_highv8sf,
6665         vec_interleave_lowv8sf, vec_interleave_highv4df,
6666         vec_interleave_lowv4df): Remove constraints from expanders.
6667
6668         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
6669
6670 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
6671
6672         * tree-inline.c (expand_call_inline): Fix path dealing with
6673         making lhs of call statement undefined.
6674
6675 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
6676
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
6685         with aliases.
6686         (pass_local_pure_const::execute): Update.
6687
6688 2016-05-04  Marek Polacek  <polacek@redhat.com>
6689
6690         * doc/invoke.texi: Document -Wdangling-else.
6691
6692 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6693
6694         * config.gcc: Error out when conflicting multilib is detected.  Do not
6695         loop over multilibs since no combination is legal.
6696
6697 2016-05-04  Alan Modra  <amodra@gmail.com>
6698
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):
6702         Align .toc.
6703
6704 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
6705
6706         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
6707         Clean up p5600 comments.
6708
6709 2016-05-04  Richard Biener  <rguenther@suse.de>
6710
6711         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
6712         constructor simplifications.
6713         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
6714
6715 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
6716
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):
6721         Always enable.
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.
6725
6726 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
6727
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.
6731
6732 2016-05-04  Alan Modra  <amodra@gmail.com>
6733
6734         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
6735
6736 2016-05-04  Alan Modra  <amodra@gmail.com>
6737
6738         PR target/70866
6739         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
6740         when cr2,3,4 are all fixed regs.
6741
6742 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
6743
6744         PR rtl-optimization/57193
6745         * opts.c (default_options_table): Revert OPT_frename_registers change.
6746         * doc/invoke.texi (-frename-registers, -O2): Likewise.
6747
6748 2016-05-03  Martin Sebor  <msebor@redhat.com>
6749
6750         PR c++/66561
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.
6756
6757         PR c++/66561
6758         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
6759         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
6760         constants.
6761
6762         PR c++/66639
6763         * doc/extend.texi (Function Names as Strings): Update __func__,
6764         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
6765         constants.
6766
6767 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6768             Richard Biener  <rguenther@suse.de>
6769
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.
6774
6775 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
6776
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.
6792
6793 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
6794
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.
6804
6805 2016-05-03  Marek Polacek  <polacek@redhat.com>
6806
6807         PR c/70859
6808         * input.c (expansion_point_location): New function.
6809         * input.h (expansion_point_location): Declare.
6810
6811 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
6812
6813         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
6814         occurence with frame_offset_ ones.
6815
6816 2016-05-03  Alan Modra  <amodra@gmail.com>
6817
6818         PR rtl-optimization/70890
6819         * ira.c (combine_and_move_insns): When moving def_insn, remove
6820         equivs on use_insn.
6821
6822 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6823
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.
6828
6829 2016-05-03  Alan Modra  <amodra@gmail.com>
6830
6831         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
6832         for SAVE_MULTIPLE/STORE_MULTIPLE.
6833
6834 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6835
6836         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
6837         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
6838
6839 2016-05-03  Richard Biener  <rguenther@suse.de>
6840
6841         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
6842         default true.
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
6892         SSA form.
6893         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
6894
6895 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6896             Uros Bizjak  <ubizjak@gmail.com>
6897
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>.
6908
6909 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6910
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.
6915
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.
6919
6920         PR target/49244
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.
6943
6944 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
6945
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.
6949
6950 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
6951
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
6958         of fixed_reg_set.
6959         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
6960
6961 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6962
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
6974         if needed.
6975         (tree_if_conversion): handle simd pragma marked loop using new
6976         local variable aggressive_if_conv.  check any_complicated_phi.
6977
6978 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6979
6980         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
6981         before using it.
6982
6983 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6984
6985         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
6986         cbase.
6987
6988 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
6989
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):
6996         Remove constraints.
6997
6998 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6999
7000         * machmode.h (mode_complex): Add support to give the complex mode
7001         for a given 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
7008         the given type.
7009         (blank_mode): Likewise.
7010         (make_complex_modes): Remember the complex mode created in the
7011         base type.
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.
7029
7030 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
7031
7032         PR target/49244
7033         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
7034         char/short arguments promoted to int because of promote_prototypes.
7035
7036 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
7037
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.
7050
7051 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
7052
7053         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
7054         marker.
7055         (oacc_loop_process): Check mask for loop termination.
7056
7057 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
7058
7059         * cif-code.def (CIF_THUNK): Add.
7060         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
7061         accidental change.
7062
7063 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
7064
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.
7077
7078 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
7079
7080         PR rtl-optimization/70467
7081         * cse.c (cse_insn): Handle no-op MEM moves after folding.
7082
7083         PR rtl-optimization/70467
7084         * ipa-pure-const.c (check_call): Handle internal calls even in
7085         ipa mode like in local mode.
7086
7087 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7088
7089         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
7090
7091 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
7092
7093         * match.pd (X u< X, X u> X): New transformations.
7094
7095 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
7096
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.
7106
7107 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
7108
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.
7114
7115 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
7116
7117         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
7118         register_operand.
7119         (umulsidi3): Likewise.
7120         (indirect_jump): Fix jump instruction assembly patterns.
7121
7122 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
7123
7124         PR target/70860
7125         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
7126         (nvptx_function_value): Assert non-NULL cfun.
7127
7128 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
7129
7130         PR rtl-optimization/70886
7131         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
7132
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.
7137
7138 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
7139
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.
7150
7151 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
7152
7153         * tree.c (cst_and_fits_in_hwi): Simplify.
7154
7155 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
7156
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.
7161
7162 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
7163
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::
7170          shifts.
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.
7183
7184 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
7185
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.
7207
7208 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
7209
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.
7214
7215 2016-05-02  Martin Liska  <mliska@suse.cz>
7216
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.
7221
7222 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
7223
7224         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
7225         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
7226         bmaskn instruction.
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
7237         constraints.
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.
7241
7242 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
7243
7244         * config/sh/sh.md (*negnegt, *movtt): Remove.
7245
7246 2016-05-02  Marek Polacek  <polacek@redhat.com>
7247             Tom de Vries  <tom@codesourcery.com>
7248
7249         PR tree-optimization/70700
7250         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
7251         bigger than FIRST_REF_NODE.
7252
7253 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
7254
7255         PR target/52898
7256         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
7257         TARGET_CMPEQDI_T.
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.
7265
7266 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
7267
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.
7274
7275 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
7276
7277         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
7278         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
7279
7280 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
7281
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.
7285
7286 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
7287
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.
7295
7296 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
7297
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.
7302
7303 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
7304
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.
7316         (xorsi3): Delete.
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.
7320         (mov_nop): Delete.
7321
7322 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
7323
7324         * config/sh/t-sh: Remove SH5 support.
7325         * config.gcc: Likewise.
7326         * configure: Likewise.
7327
7328 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7329
7330         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
7331
7332 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
7333
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,
7340         movdi): Likewise.
7341
7342 2016-04-30  Alan Modra  <amodra@gmail.com>
7343
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
7350         saving.
7351         (fixed_regs_p): Delete.
7352
7353 2016-04-30  Alan Modra  <amodra@gmail.com>
7354
7355         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
7356         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
7357         Update all uses.
7358
7359 2016-04-30  Alan Modra  <amodra@gmail.com>
7360
7361         PR target/69645
7362         * config/rs6000/rs6000.c (fixed_reg_p): New function.
7363         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
7364         Update all uses.
7365
7366 2016-04-30  Alan Modra  <amodra@gmail.com>
7367
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.
7371
7372 2016-04-30  Alan Modra  <amodra@gmail.com>
7373
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.
7383
7384 2016-04-30  Alan Modra  <amodra@gmail.com>
7385
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.
7391         Formatting fixes.
7392         (regstat_compute_ri): Adjust for above.  Don't set
7393         REG_LIVE_LENGTH.
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.
7398
7399 2016-04-30  Alan Modra  <amodra@gmail.com>
7400
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.
7405
7406 2016-04-30  Alan Modra  <amodra@gmail.com>
7407
7408         * ira.c (combine_and_move_insns): Rather than scanning insns,
7409         use DF infrastucture to find use and def insns.
7410
7411 2016-04-30  Alan Modra  <amodra@gmail.com>
7412
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.
7419
7420 2016-04-30  Alan Modra  <amodra@gmail.com>
7421
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.
7426
7427 2016-04-30  Alan Modra  <amodra@gmail.com>
7428
7429         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
7430         split out from..
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..
7434         (ira): ..here.
7435
7436 2016-04-30  Alan Modra  <amodra@gmail.com>
7437
7438         * ira.c (pdx_subregs): Delete.
7439         (struct equivalence): Add pdx_subregs field.
7440         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
7441         pdx_subregs access.
7442         (update_equiv_regs): Don't create or free pdx_subregs.  Update
7443         pdx_subregs access.
7444
7445 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7446
7447         * config/rs6000/altivec.h: Change definitions of vec_xl and
7448         vec_xst.
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.
7461         (XL): New.
7462         (XST): 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
7472         and vec_xst.
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
7490         grammar.
7491
7492 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
7493
7494         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
7495         out into ...
7496         (simplify_control_stmt_condition_1): ... here.  Recurse into
7497         BIT_AND_EXPRs and BIT_IOR_EXPRs.
7498
7499 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
7500
7501         PR target/69810
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.
7508
7509 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7510
7511         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
7512         (probe_stack): New expander.
7513         (probe_stack_<mode>): New insn pattern.
7514
7515 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7516
7517         * config/i386/i386.md
7518         (operations with memory inputs setting flags peephole2):
7519         Remove uneeded REG_P checks.  Cleanup pattern generation.
7520
7521 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
7522
7523         * tree-vect-loop.c (vect_transform_loop): Fix
7524         nb_iterations_upper_bound computation for vectorized loop.
7525
7526 2016-04-29  Marek Polacek  <polacek@redhat.com>
7527             Jakub Jelinek  <jakub@redhat.com>
7528
7529         PR sanitizer/70342
7530         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
7531         TARGET_EXPR_SLOT as a base.
7532
7533 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
7534
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.
7544
7545 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7546
7547         * config/i386/predicates.md (constm1_operand): Fix comparison.
7548
7549 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
7550
7551         * testsuite/gcc.target/arc/ieee_eq.c: New test.
7552
7553 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
7554
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.
7566
7567 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7568
7569         * config/s390/s390.c (s390_rtx_costs): Update documentation.
7570
7571 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7572
7573         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
7574         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
7575         Change lder to ldr.
7576         * config/s390/vector.md ("mov<mode>"): Likewise.
7577
7578 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
7579
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.
7592
7593 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7594
7595         PR target/60040
7596         * reload1.c (reload): Call finish_spills before
7597         restarting reload loop. Skip select_reload_regs
7598         if update_eliminables_and_spill returns true.
7599
7600 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
7601
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
7608         predicate.
7609         (arc_short_operand): Likewise.
7610         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
7611
7612 2016-04-29  Richard Biener  <rguenther@suse.de>
7613
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.
7621
7622 2016-04-29  Richard Biener  <rguenther@suse.de>
7623
7624         * stor-layout.c (layout_type): Do not build a pointer-to-element
7625         type for arrays.
7626
7627 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7628
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
7633         predicates.
7634
7635 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
7636
7637         PR middle-end/70843
7638         * fold-const.c (operand_equal_p): Don't verify hash value equality
7639         if arg0 == arg1.
7640         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
7641         and OMP_CLAUSE.
7642
7643 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7644
7645         PR target/70858
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.
7651
7652 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7653
7654         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
7655         to info.  Don't initialize separate fields to 0.  Clean up
7656         formatting a bit.
7657
7658 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7659
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.
7664
7665         (probe_stack): Remove expander.
7666
7667 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7668             Andrew Burgess  <andrew.burgess@embecosm.com>
7669
7670         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
7671         operands as 32-bits.
7672
7673 2016-04-28  Jason Merrill  <jason@redhat.com>
7674
7675         * gdbinit.in: Skip line-map.h.
7676
7677 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7678             Andrew Burgess  <andrew.burgess@embecosm.com>
7679
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
7684         as 0.
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
7688         alternatives.
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.
7718
7719 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7720
7721         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
7722         dst->popcount.
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.
7752
7753 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7754             Andrew Burgess  <andrew.burgess@embecosm.com>
7755
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
7765         r/Uex alternative.
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.
7780
7781 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7782
7783         * config/rs6000/rs6000.c (machine_function): Rename
7784         insn_chain_scanned_p to spe_insn_chain_scanned_p.
7785         (rs6000_stack_info): Adjust.
7786
7787 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7788             Andrew Burgess  <andrew.burgess@embecosm.com>
7789
7790         * config/arc/constraints.md (Usd): Convert to define_constraint.
7791         (Us<): Likewise.
7792         (Us>): Likewise.
7793
7794 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7795
7796         PR target/70821
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.
7800
7801 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
7802
7803         * tracer.c (bb_seen): Make static.
7804
7805 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
7806
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=.
7814
7815 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7816
7817         PR target/70668
7818         * config/nds32/nds32.md (casesi): Don't access the operands array
7819         out of bounds.
7820
7821 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7822
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.
7826
7827 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
7828
7829         * doc/extend.texi (Common Function Attributes) [optimize]:
7830         Discourage use of the optimize attribute.
7831
7832 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
7833
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.
7842
7843 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7844
7845         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
7846         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
7847
7848 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7849
7850         PR testsuite/70595
7851         * doc/sourcebuild.texi (Effective-Target Keywords, Other
7852         attributes): Document cilkplus_runtime.
7853
7854 2016-04-28  Martin Jambor  <mjambor@suse.cz>
7855
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
7858         handled_components.
7859
7860 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7861
7862         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
7863         for WORD_REGISTER_OPERATIONS to runtime check.
7864
7865 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7866
7867         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
7868
7869 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7870
7871         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
7872         big-endian compilation.
7873         * config/arc/arc.md (addf3): Likewise.
7874         (subdf3): Likewise.
7875         (muldf3): Likewise.
7876
7877 2016-04-28  Richard Biener  <rguenther@suse.de>
7878
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).
7884
7885 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7886
7887         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
7888         and explain why in a comment.
7889
7890 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7891
7892         * config/arc/arc.md (cpu_facility): Add fpx variant.
7893         (subdf3): Prohibit use reverse sub when assist operations option
7894         is enabled.
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.
7898
7899 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7900
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
7907         converted pattern.
7908
7909 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7910             Joern Rennecke  <joern.rennecke@embecosm.com>
7911
7912         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
7913         declaration.
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
7920         unspecs.
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):
7939         Define.
7940         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
7941         Likewise.
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.
7946         (EH_USES): Define.
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.
7950         (R10_REG): Define.
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.
7959
7960 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7961
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.
7979
7980 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
7981             Matthias Klose  <doko@debian.org>
7982
7983         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
7984
7985 2016-04-28  Richard Biener  <rguenther@suse.de>
7986
7987         PR middle-end/70777
7988         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
7989         canonicalization.
7990
7991 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
7992
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.
8013
8014 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8015
8016         * config/i386/i386.md (sign_extend to memory peephole2s): Use
8017         general_reg_operand instead of register_operand predicate.
8018
8019 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8020
8021         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
8022
8023 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
8024
8025         * match.pd (A - B > A, A + B < A): New transformations.
8026
8027 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
8028
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.
8033
8034 2016-04-27  Jeff Law  <law@redhat.com>
8035
8036         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
8037
8038 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8039
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
8055         changes.
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
8074         expansions.
8075         (vector_altivec_store_<mode>): Likewise.
8076
8077 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
8078
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.
8088
8089 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
8090
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.
8094
8095 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
8096
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
8109         const.
8110         (struct dataflow): Likewise for field "problem".
8111         (df_add_problem): Make param const.
8112
8113 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
8114
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
8117         for TARGET_MMX.
8118
8119 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
8120
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
8123         #define to...
8124         (enum df_problem_id): ...this new enum.
8125         (struct df_problem): Convert field "id" from "int" to
8126         enum df_problem_id.
8127
8128 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
8129
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.
8133
8134 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
8135
8136         * config/i386/i386.md
8137         (lea arith with mem operand + setcc peephole2): Set operator mode.
8138
8139 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
8140
8141         PR target/70155
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
8192         pass.
8193
8194 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
8195
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.
8203
8204 2016-04-27  Martin Liska  <mliska@suse.cz>
8205
8206         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
8207         (free_loop_data): Release vuses of groups.
8208
8209 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
8210
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
8215         to ...
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.
8231         Update all uses.
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,
8239         base and step.
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.
8277
8278 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8279
8280         * rtlanal.c (nonzero_bits1): Convert preprocessor check
8281         for WORD_REGISTER_OPERATIONS to runtime check.
8282
8283 2016-04-27  Richard Biener  <rguenther@suse.de>
8284
8285         PR ipa/70760
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.
8291
8292 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
8293
8294         PR sanitizer/70683
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
8299         args is the same.
8300
8301 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
8302
8303         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
8304
8305 2016-04-27  Nick Clifton  <nickc@redhat.com>
8306
8307         PR middle-end/49889
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.
8310
8311 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8312
8313         * params.def (MAX_PARTITION_SIZE): New param.
8314         * doc/invoke.texi: Document lto-max-partition.
8315
8316 2016-04-27  Richard Biener  <rguenther@suse.de>
8317
8318         PR ipa/70785
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.
8325
8326 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
8327
8328         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
8329         (-Wmemset-elt-size): New item.
8330
8331 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
8332
8333         PR ada/70759
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.
8338
8339 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
8340
8341         PR sanitizer/70683
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.
8355
8356 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8357
8358         * config/rtems.h (LIB_SPEC): Add -latomic.
8359
8360 2016-04-27  Joel Sherrill  <joel@rtems.org>
8361
8362         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
8363         xilink.ld and flags not relevant to RTEMS.
8364
8365 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
8366
8367         * toplev.c (backend_init_target): Avoid calling init_reload when using
8368         LRA.
8369
8370 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
8371
8372         * reorg.c (try_merge_delay_insns): Declare i and j inside the
8373         for loops rather than one for the whole function.
8374
8375 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
8376
8377         * match.pd (X + CST CMP X): New transformation.
8378
8379 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
8380
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.
8385
8386 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
8387
8388         * config/i386/i386.md (operation on memory peephole): Duplicate an
8389         existing peephole and adapt it to match lea rather than an operation
8390         that clobbers CC.
8391
8392         PR rtl-optimization/57193
8393         * opts.c (default_options_table): Add OPT_frename_registers at -O2
8394         and above.
8395         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
8396
8397 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
8398
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.
8405
8406 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
8407
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
8414         PHIs.
8415         (tree_if_conversion): Mark and update virtual SSA.
8416
8417 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8418
8419         PR target/61821
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
8426         renaming.
8427         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
8428         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
8429         Pass new decl arg.
8430         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8431         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
8432
8433 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8434
8435         PR target/59407
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
8440         data/bss sections.
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
8444         SECTION_MACH_DEP.
8445         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
8446         * doc/tm.texi: Regenerate.
8447
8448 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
8449
8450         PR bootstrap/70704
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
8454         of 1.
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.
8460
8461 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8462
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.
8467
8468 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8469
8470         * config/i386/predicates.md (const0_operand): Do not match
8471         const_wide_int code.
8472         (const1_operand): Ditto.
8473
8474 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8475
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.
8485
8486 2016-04-25  Jason Merrill  <jason@redhat.com>
8487
8488         * gdbinit.in: Skip is-a.h.
8489
8490         * attribs.c (register_scoped_attributes): Fix logic.
8491         * attribs.h: Declare register_scoped_attributes.
8492
8493 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8494
8495         * config/rs6000/rs6000-builtin.def: Correct pasto error for
8496         stxvd2x and stxvw4x built-in functions.
8497
8498 2016-04-25  DJ Delorie  <dj@redhat.com>
8499
8500         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
8501         (ashrhi3): Likewise.
8502         (lshrhi3): Likewise.
8503
8504 2016-04-25  Richard Biener  <rguenther@suse.de>
8505
8506         PR tree-optimization/70780
8507         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
8508         wasn't visited yet.
8509         (compute_antic): Mark blocks with abnormal preds as visited as
8510         they have a final empty antic-in solution already.
8511
8512 2016-04-25  Michael Collison  <michael.collison@linaro.org>
8513
8514         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
8515
8516 2016-04-25  Michael Collison  <michael.collison@linaro.org>
8517
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
8531         for new function.
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.
8537
8538 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8539
8540         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
8541         predicate for operand 2.
8542
8543 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
8544             H.J. Lu  <hongjiu.lu@intel.com>
8545
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.
8571         (C): Ditto.
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.
8576
8577 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8578
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.
8589
8590 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8591
8592         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
8593
8594 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8595
8596         * vec.h (vec_safe_contains): New function.
8597         (vec::contains): Likewise.
8598         (vec::begin): Likewise.
8599         (vec::end): Likewise.
8600
8601 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
8602
8603         PR sanitizer/70712
8604         * cfgexpand.c (expand_stack_vars): Fix typo.
8605
8606 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8607
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.
8618
8619 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8620
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.
8630
8631 2016-04-22  Richard Biener  <rguenther@suse.de>
8632
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.
8637
8638 2016-04-22  Richard Biener  <rguenther@suse.de>
8639
8640         PR tree-optimization/70740
8641         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
8642         VDEF.
8643
8644 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
8645
8646         PR target/70750
8647         * config/i386/predicates.md (call_insn_operand): Replace
8648         sibcall_memory_operand with memory_operand.
8649
8650 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
8651
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().
8657
8658 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
8659
8660         PR target/70728
8661         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
8662         Extract AVX-512BW constraint from AVX.
8663
8664 2016-04-21  Richard Biener  <rguenther@suse.de>
8665
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.
8670
8671 2016-04-21  Richard Biener  <rguenther@suse.de>
8672
8673         PR middle-end/70747
8674         * fold-const.c (fold_comparison): Return properly typed
8675         constant boolean.
8676
8677 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
8678
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.
8682
8683 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
8684
8685         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
8686         New transformations.
8687
8688 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
8689
8690         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
8691
8692 2016-04-20  Jan Hubicka  <jh@suse.cz>
8693
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.
8699
8700 2016-04-20  Jan Hubicka  <jh@suse.cz>
8701
8702         PR ipa/70018
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
8709         def.
8710         (propagate_nothrow): Be safe WRT interposition.
8711         * cgraph.h (set_nothrow_flag): Update prototype.
8712
8713 2016-04-18  Jan Hubicka  <jh@suse.cz>
8714
8715         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
8716         max_loop_iterations_int.
8717         (tree_unswitch_outer_loop): Likewise.
8718
8719 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8720
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
8726         predecessors.
8727
8728 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8729
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
8747         innermost_DR_map.
8748
8749 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
8750
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.
8761
8762 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8763
8764         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
8765         Short-cut unaligned load and store cases.  Handle all integer
8766         vector modes.
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.
8770
8771 2016-04-20  Andrew Pinski  <apinski@cavium.com>
8772             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8773
8774         PR target/64971
8775         * config/aarch64/aarch64.md (sibcall): Force call
8776         address to be DImode for ILP32.
8777         (sibcall_value): Likewise.
8778
8779 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8780
8781         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
8782
8783 2016-04-20  Richard Biener  <rguenther@suse.de>
8784
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.
8790
8791 2016-04-20  Marek Polacek  <polacek@redhat.com>
8792
8793         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
8794         rather than true.
8795
8796 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
8797
8798         * config/i386/sse.md (vec_unpacks_lo_hi): Always
8799         use kmovw to support AVX512F target.
8800
8801 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8802
8803         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
8804
8805 2016-04-20  Marek Polacek  <polacek@redhat.com>
8806
8807         PR tree-optimization/70725
8808         * tree-if-conv.c (is_false_predicate): New function.
8809         (predicate_mem_writes): Use it.
8810
8811 2016-04-20  Richard Biener  <rguenther@suse.de>
8812
8813         PR tree-optimization/70726
8814         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
8815         shift amounts from a pattern stmt operand.
8816
8817 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8818
8819         PR target/70674
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.
8827
8828 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
8829
8830         PR middle-end/70680
8831         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
8832         implicitly linear or lastprivate iterator on the outer context.
8833
8834 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8835
8836         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
8837         alignment check.
8838         * config/i386/i386.md (ssememalign): Removed.
8839         * config/i386/sse.md: Remove ssememalign attribute from patterns.
8840
8841 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8842
8843         PR target/69201
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.
8940         (PINT64): Likewise.
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
8990         use UNSPEC_STOREU.
8991         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
8992         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
8993         load nor store.
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.
9018
9019 2016-04-19  Richard Biener  <rguenther@suse.de>
9020
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.
9025
9026 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
9027
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.
9042
9043 2016-04-19  Richard Biener  <rguenther@suse.de>
9044
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
9051         tail merging.
9052         (pass_fre::execute): Restore SSA info.
9053
9054 2016-04-19  Richard Biener  <rguenther@suse.de>
9055
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
9062         adjustment.
9063
9064 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
9065
9066         PR middle-end/70689
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.
9071
9072 2016-04-18  Michael Matz  <matz@suse.de>
9073
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.
9080
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
9101         SET_DECL_ALIGN.
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.
9121
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.
9127
9128 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
9129
9130         PR target/70708
9131         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
9132         replace %vmovsd with "%vmovq".
9133         (vec_concatv2df): Likewise.
9134
9135 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
9136
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
9144         and lowpart_subreg.
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.
9149
9150 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9151
9152         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
9153         gld requirements.
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
9159         systems and bugs.
9160         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
9161         with cc.
9162
9163 2016-04-17  Jan Hubicka  <jh@suse.cz>
9164
9165         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
9166         max_loop_iterations_int.
9167
9168 2016-04-18  Richard Biener  <rguenther@suse.de>
9169
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.
9175
9176 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
9177
9178         PR target/70711
9179         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
9180         armv8.1-a and armv8.1-a+crc.
9181
9182 2016-04-18  Richard Biener  <rguenther@suse.de>
9183
9184         PR tree-optimization/70701
9185         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
9186         references after translating through a memcpy.
9187
9188 2016-04-18  Richard Biener  <rguenther@suse.de>
9189
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.
9196
9197 2016-04-18  Richard Biener  <rguenther@suse.de>
9198
9199         PR middle-end/37870
9200         * expmed.c (extract_bit_field_1): Remove broken case
9201         using a wider MODE_INT mode.
9202
9203 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
9204
9205         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
9206         unless compiling with at least GCC-4.8.
9207
9208 2016-04-17  Jan Hubicka  <jh@suse.cz>
9209
9210         PR bootstrap/70706
9211         * graphite.c (graphite_finalize): Update call to
9212         tree_estimate_probability.
9213         * predict.h (tree_estimate_probability): Update prototype.
9214
9215 2016-04-17  Jan Hubicka  <jh@suse.cz>
9216
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.
9223
9224 2016-04-17  Jan Hubicka  <jh@suse.cz>
9225
9226         PR ipa/70018
9227         * cgraph.h (cgraph_node::set_const_flag,
9228         cgraph_node::set_pure_flag): Update prototype to return bool;
9229         update comment.
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
9243         declared const.
9244         (cgraph_node::set_pure_flag): Update.
9245         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
9246
9247 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9248
9249         PR other/70433
9250         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
9251         backslash in label.
9252
9253 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9254
9255         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
9256         '{}<> ' as escape-for-record.
9257
9258 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9259
9260         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
9261         structure.
9262
9263 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9264
9265         PR other/70185
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.
9273
9274 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9275
9276         PR tree-optimization/70256
9277         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
9278         (debug_varmap): New function.
9279
9280 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9281
9282         PR other/70183
9283         * passes.c (pass_manager::register_pass): Propagate pflags.
9284
9285 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9286
9287         PR other/68875
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.
9293
9294 2016-04-15  Jan Hubicka  <jh@suse.cz>
9295
9296         PR ipa/70018
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
9301         to current def.
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.
9307
9308 2016-04-15  Jan Hubicka  <jh@suse.cz>
9309
9310         PR ipa/70018
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.
9327
9328 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
9329
9330         PR target/70662
9331         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
9332         Fix mode size check.
9333
9334 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
9335
9336         * BASE-VER: Set to 7.0.0.
9337
9338 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
9339
9340         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
9341
9342 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9343
9344         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
9345         architecture revisions.
9346
9347 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
9348
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 ().
9353
9354 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
9355
9356         PR c++/70675
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.
9360
9361 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
9362
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.
9377
9378 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
9379
9380         PR target/70662
9381         * config/i386/sse.md: Use proper memory operand modifiers.
9382
9383
9384 2016-04-15  Richard Biener  <rguenther@suse.de>
9385         Alan Modra  <amodra@gmail.com>
9386
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
9390         scheme then.
9391
9392 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9393
9394         PR target/70669
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.
9398
9399 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
9400
9401         PR c++/70594
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.
9412
9413 2016-04-14  Martin Sebor  <msebor@redhat.com>
9414
9415         PR c++/69517
9416         PR c++/70019
9417         PR c++/70588
9418         * doc/extend.texi (Variable Length): Revert.
9419
9420 2016-04-14  Marek Polacek  <polacek@redhat.com>
9421             Jan Hubicka  <hubicka@ucw.cz>
9422
9423         PR c++/70029
9424         * tree.c (verify_type): Disable the canonical type of main variant
9425         check.
9426
9427 2016-04-14  Jason Merrill  <jason@redhat.com>
9428
9429         * cfgexpand.c, expr.c: Revert previous change.
9430
9431 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
9432
9433         PR middle-end/70643
9434         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
9435         when building a mem ref for the incoming reduction variable.
9436
9437 2016-04-14  Richard Biener  <rguenther@suse.de>
9438
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.
9443
9444 2016-04-14  Richard Biener  <rguenther@suse.de>
9445
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.
9456
9457 2016-04-13  Martin Sebor  <msebor@redhat.com>
9458
9459         PR c++/69517
9460         PR c++/70019
9461         PR c++/70588
9462         * doc/extend.texi (Variable Length): Document C++ specifics.
9463
9464 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
9465
9466         PR c++/70641
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.
9470
9471         PR c++/70594
9472         * tree-sra.c (create_access_replacement,
9473         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
9474         gets fancy name.
9475         * tree-pretty-print.c (dump_fancy_name): New function.
9476         (dump_decl_name, dump_generic_node): Use it.
9477
9478 2016-04-13  Jason Merrill  <jason@redhat.com>
9479
9480         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
9481         * expr.c (expand_expr_real_1): Likewise.
9482
9483 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
9484
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.
9490
9491 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
9492
9493         PR debug/70628
9494         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
9495
9496         PR middle-end/70633
9497         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
9498         gimplification turns some element into non-constant.
9499
9500         PR debug/70628
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.
9509
9510 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
9511
9512         PR target/70630
9513         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
9514
9515 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9516
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
9521         allowed.
9522
9523 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
9524
9525         PR target/70640
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 ...).
9532
9533 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9534
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.
9538
9539 2016-04-12  Martin Liska  <mliska@suse.cz>
9540
9541         Revert
9542         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9543
9544         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
9545         estimates here.
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.
9551
9552 2016-04-12  Tom de Vries  <tom@codesourcery.com>
9553
9554         PR tree-optimization/68756
9555         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
9556         instead of new_name.
9557
9558 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9559
9560         PR tree-optimization/70602
9561         * tree-sra.c (generate_subtree_copies): Don't write anything into
9562         constant pool decls.
9563
9564         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
9565         regardless whether there are depend clauses or not.
9566
9567 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
9568
9569         PR target/70381
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.
9573
9574         * doc/extend.texi (Additional Floating Types): Document PowerPC
9575         __float128 restrictions.
9576
9577 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9578
9579         PR target/70133
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
9590         flags.
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.
9595
9596 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9597
9598         PR target/70133
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,
9606         rework.
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
9612         to here.
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
9624         flags.
9625
9626 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9627
9628         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
9629         AARCH64_FL_CRC.
9630
9631 2016-04-09  Tom de Vries  <tom@codesourcery.com>
9632
9633         PR tree-optimization/68953
9634         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
9635         first to last subscript.
9636
9637 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
9638
9639         PR tree-optimization/70586
9640         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
9641         for any calls.
9642
9643 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
9644
9645         PR lto/70289
9646         PR ipa/70348
9647         PR tree-optimization/70373
9648         PR middle-end/70533
9649         PR middle-end/70534
9650         PR middle-end/70535
9651         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
9652         clauses for acc parallel reductions as necessary.  Error on those
9653         that are private.
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
9660         reductions.
9661         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
9662
9663 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
9664
9665         PR middle-end/70593
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.
9669
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.
9675
9676 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
9677
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.
9685
9686 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
9687
9688         PR sanitizer/70541
9689         * asan.c (instrument_derefs): If we get unknown location, extract it
9690         with EXPR_LOCATION.
9691         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
9692
9693 2016-04-08  Tom de Vries  <tom@codesourcery.com>
9694
9695         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
9696         implicit firstprivate clause.
9697
9698 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9699
9700         PR target/70566
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.
9705
9706 2016-04-08  Alan Modra  <amodra@gmail.com>
9707
9708         PR target/70117
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
9713         limit.
9714
9715 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
9716
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.
9724
9725 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
9726
9727         PR c/70436
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.
9736
9737 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
9738
9739         PR c/70436
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.
9744
9745 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
9746
9747         PR rtl-optimization/70398
9748         * lra-constraints.c (process_address_1): Check zero scale and code
9749         for reloading with zero scale.
9750
9751 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
9752
9753         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
9754         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
9755
9756 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
9757
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
9762         up to 128.
9763
9764         PR middle-end/70550
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.
9773
9774 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
9775
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.
9779
9780 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9781
9782         PR c++/70336
9783         * match.pd (nested int casts): Limit to GIMPLE.
9784
9785 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
9786
9787         PR ipa/66223
9788         * ipa-devirt.c (maybe_record_node): Fix comment; use
9789         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
9790
9791 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9792
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.
9796
9797 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
9798             Jakub Jelinek  <jakub@redhat.com>
9799
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.
9803
9804 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
9805
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.
9809
9810 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
9811
9812         PR target/70510
9813         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
9814
9815 2016-04-05  Richard Biener  <rguenther@suse.de>
9816
9817         PR tree-optimization/70526
9818         * tree-sra.c (build_ref_for_offset): Use prev_base to
9819         extract the alias pointer type.
9820
9821 2016-04-05  Richard Biener  <rguenther@suse.de>
9822
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.
9846
9847 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9848
9849         PR target/70525
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.
9854
9855 2016-04-05  Richard Biener  <rguenther@suse.de>
9856
9857         PR middle-end/70499
9858         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
9859         non-register type temporaries into SSA.
9860
9861 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
9862
9863         PR ipa/66223
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.
9867
9868 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9869             Jakub Jelinek <jakub@redhat.com>
9870
9871         PR middle-end/70457
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
9874         prototype.
9875         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
9876         Likewise.
9877
9878 2016-04-04  Richard Biener  <rguenther@suse.de>
9879
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.
9885
9886 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9887
9888         PR ipa/68881
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.
9893
9894 2016-04-04  Martin Liska  <mliska@suse.cz>
9895
9896         PR hsa/70402
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.
9902
9903 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
9904
9905         PR target/70416
9906         PR target/67391
9907         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
9908         set, but not for SP_REG operands.
9909
9910 2016-04-02  Martin Sebor  <msebor@redhat.com>
9911
9912         PR c++/67376
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.
9917
9918 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
9919
9920         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
9921         the "Y" constraint (scalar FP 0.0 immediate).
9922
9923         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
9924         Add the "const_double" to the list of operand constraints.
9925
9926 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
9927
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
9931         for the high word.
9932
9933 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9934
9935         PR target/70404
9936         * config/s390/s390.c (s390_expand_insv): Check for everything
9937         constant instead of just VOIDmode stuff.
9938
9939 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9940
9941         PR target/70496
9942         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
9943
9944 2016-04-01  Nathan Sidwell  <nathan@acm.org>
9945
9946         * tree.def (TRY_CATCH_EXPR): Correct documentation.
9947
9948 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
9949
9950         PR rtl-optimization/70461
9951         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
9952         is necessary.
9953
9954 2016-03-31  Martin Liska  <mliska@suse.cz>
9955
9956         PR hsa/70399
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.
9967
9968 2016-03-31  Martin Liska  <mliska@suse.cz>
9969
9970         PR hsa/70391
9971         * hsa-gen.c (hsa_function_representation::update_dominance): New
9972         function.
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.
9991
9992 2016-03-31  Martin Liska  <mliska@suse.cz>
9993
9994         PR hsa/70391
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.
10013
10014 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
10015
10016         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
10017         scratch field for goto case.
10018
10019 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
10020
10021         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
10022
10023 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
10024
10025         PR target/70442
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.
10029
10030 2016-03-31  Nathan Sidwell  <nathan@acm.org>
10031
10032         PR c++/70393
10033         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
10034         Assert we don't want to move backwards.
10035
10036 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
10037
10038         PR target/70453
10039         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
10040
10041 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
10042
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.
10048
10049 2016-03-31  Martin Liska  <mliska@suse.cz>
10050
10051         * passes.c (execute_one_pass): Do not call
10052         todo_after for a discarded function.
10053
10054 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
10055
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.
10061
10062 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10063
10064         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
10065         estimates here.
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.
10071
10072 2016-03-30  Richard Biener  <rguenther@suse.de>
10073
10074         PR middle-end/70450
10075         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
10076
10077 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
10078
10079         PR target/70421
10080         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
10081         in gen_blendm expander.
10082
10083 2016-03-30  Nick Clifton  <nickc@redhat.com>
10084
10085         PR target/62254
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.
10088
10089 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
10090
10091         PR target/70439
10092         * config/i386/i386.c (ix86_expand_epilogue): Properly check
10093         conflict between DRAP register and __builtin_eh_return.
10094
10095 2016-03-30  Michael Matz  <matz@suse.de>
10096             Richard Biener  <rguenther@suse.de>
10097
10098         PR ipa/12392
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.
10107
10108 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
10109
10110         PR target/63890
10111         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
10112         and TARGET_MACHO.
10113
10114 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
10115
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).
10119
10120 2016-03-29  Jeff Law  <law@redhat.com>
10121
10122         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
10123
10124 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10125
10126         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
10127         to HOST_WIDE_INT.
10128
10129 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
10130
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.
10134
10135 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10136
10137         PR ipa/70283
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.
10145
10146 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
10147
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.
10152
10153         PR c++/70353
10154         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
10155
10156         PR tree-optimization/70405
10157         * ssa-iterators.h (num_imm_uses): Add missing braces.
10158
10159 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
10160
10161         PR rtl-optimization/68695
10162         * ira-color.c (allocno_copy_cost_saving): New.
10163         (improve_allocation): Use it.
10164
10165 2016-03-29  Richard Henderson  <rth@redhat.com>
10166
10167         PR middle-end/70355
10168         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
10169
10170 2016-03-29  Richard Biener  <rguenther@suse.de>
10171
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.
10178
10179 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
10180
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.
10184
10185 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
10186
10187         PR target/70406
10188         * config/i386/i386.md (define_split, andn): Fix modes.
10189
10190 2016-03-26  Richard Biener  <rguenther@suse.de>
10191             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10192
10193         PR ipa/70366
10194         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
10195         instead of
10196         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
10197         as 2nd argument to cl_optimization_restore().
10198
10199 2016-03-25  Richard Henderson  <rth@redhat.com>
10200
10201         PR target/70120
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.
10205
10206 2016-03-25  Alan Modra  <amodra@gmail.com>
10207
10208         PR target/70052
10209         * config/rs6000/constraints.md (j): Simplify.
10210         * config/rs6000/predicates.md (easy_fp_constant): Exclude
10211         decimal float 0.D.
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.
10217
10218 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
10219
10220         * tree-ssa-propagate.c: Enhance docs for
10221         SSA_PROP_NOT_INTERESTING.
10222
10223 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
10224
10225         * doc/extend.texi: Fix typo in documentation to pure attribute.
10226
10227 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
10228
10229         PR target/70319
10230         * config/pa/pa.md (bswapdi2): Use a scratch register.
10231
10232 2016-03-24  Richard Henderson  <rth@redhat.com>
10233
10234         PR middle-end/69845
10235         * fold-const.c (extract_muldiv_1): Correct test for multiplication
10236         overflow.
10237
10238 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
10239
10240         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
10241         using ix86_expand_binary_operator instead of gen_andsi3.
10242
10243 2016-03-24  Richard Biener  <rguenther@suse.de>
10244
10245         PR tree-optimization/70396
10246         * tree-vect-stmts.c (vectorizable_comparison): Use
10247         get_vectype_for_scalar_type.
10248
10249 2016-03-24  Richard Biener  <rguenther@suse.de>
10250
10251         PR middle-end/70370
10252         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
10253         with register bases.
10254
10255 2016-03-24  Richard Biener  <rguenther@suse.de>
10256
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.
10260
10261 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
10262
10263         PR target/70381
10264         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
10265         -mfloat128 here.
10266
10267 2016-03-23  Marek Polacek  <polacek@redhat.com>
10268
10269         PR c++/69884
10270         * doc/invoke.texi: Document -Wignored-attributes.
10271
10272 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
10273
10274         PR tree-optimization/69042
10275         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
10276         parameter from 30 to 40.
10277
10278 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
10279
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.
10283
10284 2016-03-23  Richard Biener  <rguenther@suse.de>
10285
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.
10290
10291 2016-03-23  Jeff Law  <law@redhat.com>
10292
10293         PR tree-optimization/64058
10294         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
10295         CONFLICT_COUNT.
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
10307         bitmap_count_bits.
10308         (bitmap_count_bits): Use bitmap_count_bits_in_word.
10309         * bitmap.h (bitmap_count_unique_bits): Declare it.
10310
10311 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
10312
10313         PR target/69917
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.
10317
10318 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10319
10320         * config/arm/arm1020e.md (1020call_op): Reduce reservation
10321         duration.
10322         (v10_fdivs): Likewise.
10323         (v10_fdivd): Likewise.
10324
10325 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10326
10327         PR driver/70132
10328         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
10329         to not call fclose twice on file.
10330
10331 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
10332
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.
10337
10338         PR target/70321
10339         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
10340         Optimize TARGET_STV splitters, if high or low word of last argument
10341         is 0 or -1.
10342
10343 2016-03-22  Jeff Law  <law@redhat.com>
10344
10345         PR target/70232
10346         tree-ssa-threadbackward.c
10347         (fsm_find_control_statement_thread_paths): Correctly distinguish
10348         between old style jump threads vs FSM jump threads.
10349
10350 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
10351
10352         PR target/70302
10353         * config/i386/i386.c (scalar_chain::convert_op): Support
10354         uninitialized register usage case.
10355
10356 2016-03-22  Richard Biener  <rguenther@suse.de>
10357
10358         PR middle-end/70251
10359         * genmatch.c (gen_transform): Adjust last parameter to a three-state
10360         int...
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.
10369
10370 2016-03-22  Anthony Green  <green@moxielogic.com>
10371
10372         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
10373         issue for moxiebox targets.
10374         (CC1PLUS_SPEC): Ditto.
10375
10376 2016-03-22  Richard Biener  <rguenther@suse.de>
10377
10378         PR middle-end/70333
10379         * fold-const.c (extract_muldiv_1): Properly perform multiplication
10380         in the wide type.
10381
10382 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10383
10384         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
10385
10386 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10387
10388         PR target/70325
10389         * config/i386/i386.c (def_builtin): Handle
10390         OPTION_MASK_ISA_AVX512VL to be and-ed with other
10391         bits.
10392         (const struct builtin_description bdesc_special_args[]):
10393         Remove duplicate ISA bits.
10394
10395 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
10396
10397         PR target/70329
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.
10401
10402         PR target/70300
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.
10407
10408         PR c++/70295
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).
10412
10413 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
10414
10415         PR middle-end/70326
10416         * lra.c (restore_scratches): Ignore deleted insns.
10417
10418 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
10419             Jakub Jelinek  <jakub@redhat.com>
10420
10421         PR tree-optimization/70317
10422         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
10423         to HONOR_NANS.
10424
10425 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
10426
10427         PR target/70327
10428         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
10429         of ix86_expand_move.
10430         (movoi): Ditto.
10431         (movti): Use general_operand for operand 1 predicate.
10432
10433 2016-03-21  Martin Liska  <mliska@suse.cz>
10434
10435         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
10436         insns.
10437         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
10438
10439 2016-03-21  Martin Liska  <mliska@suse.cz>
10440
10441         PR ipa/70306
10442         * ipa-icf.c (sem_function::parse): Skip static
10443         constructors and destructors.
10444
10445 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
10446
10447         PR target/70296
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.
10452
10453 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
10454             Alexander Monakov  <amonakov@ispras.ru>
10455
10456         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
10457         for the stabs debug format.
10458
10459 2016-03-21  Richard Biener  <rguenther@suse.de>
10460
10461         PR tree-optimization/70310
10462         * tree-vect-generic.c (expand_vector_condition): Fold the built
10463         condition.
10464
10465 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
10466
10467         PR target/70293
10468         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
10469         Block third alternative for AVX-512VL target,
10470
10471 2016-03-21  Martin Liska  <mliska@suse.cz>
10472
10473         PR hsa/70234
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.
10479
10480 2016-03-21  Richard Biener  <rguenther@suse.de>
10481
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.
10486
10487 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
10488
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.
10492
10493 2016-03-18  Jeff Law  <law@redhat.com>
10494
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.
10501
10502 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
10503             Bernd Schmidt  <bschmidt@redhat.com>
10504
10505         * doc/extend.texi: Document more potential problems with basic asms.
10506
10507 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
10508
10509         PR rtl-optimization/70278
10510         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
10511         VOIDmode.
10512
10513 2016-03-18  Jason Merrill  <jason@redhat.com>
10514
10515         * calls.c (load_register_parameters): Fix zero size sibcall logic.
10516
10517 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
10518
10519         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
10520         values to 128b regs.
10521
10522 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10523
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.
10528
10529 2016-03-18  Tom de Vries  <tom@codesourcery.com>
10530
10531         PR ipa/70269
10532         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
10533
10534 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
10535
10536         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
10537         instead of replace_rtx for DEBUG_INSNs.
10538
10539 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10540
10541         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
10542         load type reservations.
10543
10544 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
10545
10546         PR target/70188
10547         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
10548         define_constraint for "Q" and "T" constraints.
10549
10550 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
10551
10552         Tweak the pipeline model for Exynos M1
10553
10554         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
10555         model.
10556
10557 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
10558
10559         PR c/70264
10560         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
10561         where one or both locations aren't within a line_map.
10562
10563 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10564
10565         PR driver/70192
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
10568         if it is -1.
10569
10570 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
10571
10572         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
10573         true as ALL_REGS argument to replace_rtx.
10574
10575 2016-03-17  Richard Biener  <rguenther@suse.de>
10576
10577         PR debug/70271
10578         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
10579         last.
10580
10581 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
10582
10583         PR target/70245
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
10587         equality.
10588         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
10589         true as ALL_REGS argument to replace_rtx.
10590
10591 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
10592
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.
10596
10597 2016-03-17  Nick Clifton  <nickc@redhat.com>
10598
10599         PR target/70162
10600         * config/rx/rx.c (rx_print_integer): Print negative constants in
10601         decimal.
10602
10603 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
10604
10605         PR target/70261
10606         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
10607
10608 2016-03-16  Richard Henderson  <rth@redhat.com>
10609             Richard Biener  <rguenth@suse.de>
10610
10611         PR middle-end/70240
10612         PR middle-end/68215
10613         PR tree-opt/68714
10614         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
10615         first operand as is_gimple_condexpr.
10616
10617         PR middle-end/70240
10618         PR middle-end/68215
10619         Revert r231575
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.
10630
10631 2016-03-16  Richard Henderson  <rth@redhat.com>
10632
10633         PR target/70048
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.
10638
10639 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
10640             Richard Biener  <rguenth@suse.de>
10641
10642         PR target/70245
10643         * rtlanal.c (replace_rtx): For REG, if from is a REG,
10644         return to even if only REGNO is equal, and assert
10645         mode is the same.
10646
10647 2016-03-11  Jeff Law  <law@redhat.com>
10648
10649         PR rtl-optimization/70224
10650         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
10651
10652 2016-03-16  Richard Henderson  <rth@redhat.com>
10653
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.
10667
10668 2016-03-16  Marek Polacek  <polacek@redhat.com>
10669
10670         PR c/70093
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.
10675
10676 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
10677
10678         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
10679         reporting malformed loop nest.
10680
10681 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10682
10683         PR lto/70187
10684         * ipa-devirt.c (possible_polymorphic_call_targets): Move
10685         nodes.length () == 1 test to before first nodes[0] access.
10686
10687 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10688
10689         PR tree-optimization/68715
10690         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
10691         single_pred_p test.
10692
10693 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10694
10695         PR tree-optimization/68809
10696         * graphite-scop-detection.c (same_close_phi_node): Test if result types
10697         are the same.
10698
10699 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
10700             Sandra Loosemore  <sandra@codesourcery.com>
10701
10702         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
10703         on leaf attribute. Mention ELF interposition problems.
10704
10705 2016-03-16  Alan Modra  <amodra@gmail.com>
10706
10707         PR rtl-optimization/69195
10708         PR rtl-optimization/47992
10709         * ira.c (indirect_jump_optimize): Ignore artificial defs.
10710         Add comments.
10711
10712 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10713
10714         PR bootstrap/69513
10715         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
10716
10717 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
10718
10719         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
10720
10721 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
10722
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.
10727
10728         PR middle-end/70239
10729         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
10730         of safe_grow.
10731
10732 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10733
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.
10737
10738 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10739
10740         PR target/66660
10741         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
10742         to non-speculative when propagating trap bits.
10743
10744 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10745
10746         PR rtl-optimization/63384
10747         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
10748         DEBUG_INSN_P insns.
10749
10750 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10751
10752         PR target/64411
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.
10761
10762 2016-03-15  Tom de Vries  <tom@codesourcery.com>
10763
10764         PR ipa/70161
10765         * cgraph.c (cgraph_node::get_body): Save, reset and restore
10766         dump_file_name.
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
10770         transform.
10771
10772 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
10773
10774         * genrecog.c (match_pattern_2): If pred is NULL don't call
10775         safe_predicate_mode on it.
10776
10777 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
10778
10779         PR middle-end/70219
10780         * lra-constraints.c (delete_move_and_clobber): Change assertion
10781         to also allow dregno == 0.
10782
10783 2016-03-14  Richard Henderson  <rth@redhat.com>
10784
10785         PR tree-opt/68714
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
10790         on vectors.
10791
10792 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
10793
10794         PR target/70083
10795         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
10796         regs.
10797         (lra_create_live_ranges_1): initialize hard register biggest_mode to
10798         VOIDmode.
10799         * lra-constraints.c (split_reg): For hard regs, try to find the
10800         biggest single-register mode used in the function.
10801
10802 2016-03-14  Richard Biener  <rguenther@suse.de>
10803
10804         PR tree-optimization/56365
10805         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
10806         constants to compare against.
10807
10808 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
10809
10810         PR target/70098
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.
10815
10816 2016-03-14  Tom de Vries  <tom@codesourcery.com>
10817
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.
10821
10822 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
10823
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.
10833
10834 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
10835
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.
10839
10840 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
10841
10842         PR target/69614
10843         * lra-constraints.c (delete_move_and_clobber): New.
10844         (remove_inheritance_pseudos): Use it.
10845
10846 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
10847
10848         PR ada/70017
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.
10853
10854 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10855
10856         PR target/70131
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.
10860
10861 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
10862
10863         PR target/70123
10864         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
10865         be rematerialized.
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.
10869
10870 2016-03-11  Jeff Law  <law@redhat.com>
10871
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.
10876
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
10881         discovered.
10882         (compare_pairs): No longer sort on the elements in each pair.
10883         Instead break ties with the index of the coalesce pair.
10884
10885 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10886
10887         PR target/70002
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):
10893         New function.
10894         (aarch64_set_current_function): Rewrite using the above.
10895
10896 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10897
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):
10905         Adjust callers.
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.
10909
10910 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
10911
10912         PR tree-optimization/70013
10913         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
10914         for constant-pool entries.
10915
10916 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10917
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.
10921
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
10925         for unknown codes.
10926
10927 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
10928             Jakub Jelinek  <jakub@redhat.com>
10929
10930         PR target/70160
10931         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
10932         of uninitialized values.
10933
10934 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10935
10936         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
10937         define_expand.
10938         ("*trunctddd2"): New pattern definition.
10939         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
10940         TD->DD truncation.
10941
10942 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10943
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
10950         numbers.
10951
10952 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10953
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
10968         file.
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
10974         nonmemory_operand.
10975
10976 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10977
10978         PR target/70168
10979         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
10980         Handle overlapping retval and newval.
10981
10982 2016-03-10  Nick Clifton  <nickc@redhat.com>
10983
10984         PR target/7044
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.
10990
10991 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10992
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.
10996
10997 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10998
10999         PR lto/69589
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.
11008
11009 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11010
11011         PR ipa/69630
11012         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
11013         on cxa_pure_virtual.
11014
11015 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11016
11017         PR lto/69589
11018         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
11019
11020 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11021
11022         PR lto/69589
11023         * tree.c (need_assembler_name_p): Only record main variant type names.
11024
11025 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
11026
11027         PR target/70113.
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
11037         843419 is on.
11038         (aarch64_attributes): Handle fix-cortex-a53-843419.
11039         (aarch64_can_inline_p): Likewise.
11040         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
11041
11042 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
11043         Jakub Jelinek <jakub@redhat.com>
11044
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.
11051
11052 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
11053
11054         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
11055         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
11056
11057 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
11058
11059         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
11060         has a proper number of elements.
11061
11062 2016-03-10  Alan Modra  <amodra@gmail.com>
11063
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.
11072
11073 2016-03-10  Richard Biener  <rguenther@suse.de>
11074
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.
11078
11079 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
11080
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.
11084
11085         PR target/70086
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.
11090
11091         PR tree-optimization/70127
11092         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
11093
11094 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
11095
11096         PR c/68473
11097         PR c++/70105
11098         * diagnostic-show-locus.c (compatible_locations_p): New function.
11099         (layout::layout): Sanitize ranges using compatible_locations_p.
11100
11101 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
11102
11103         PR c/68473
11104         PR c++/70105
11105         * diagnostic-show-locus.c (layout_range::layout_range): Replace
11106         location_range param with three const expanded_locations * and a
11107         bool.
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.
11119
11120 2016-03-09  Richard Biener  <rguenther@suse.de>
11121         Jakub Jelinek  <jakub@redhat.com>
11122
11123         PR tree-optimization/70138
11124         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
11125         Also skip vect_double_reduction_def.
11126
11127 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
11128
11129         PR target/70049
11130         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
11131         if the operand is "m".
11132
11133 2016-03-09  Nathan Sidwell  <nathan@acm.org>
11134
11135         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
11136
11137 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11138
11139         * config/i386/i386.c (processor_target_table): Fix cost table
11140         intialization order for znver1.
11141
11142 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
11143
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.
11152
11153 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11154
11155         * tree-ssa-math-opts.c: Fix typo in comment.
11156
11157 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
11158
11159         PR target/70110
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
11163         calls.
11164
11165 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
11166
11167         PR target/70064
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.
11176
11177 2016-03-07  Martin Jambor  <mjambor@suse.cz>
11178
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.
11190
11191 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11192
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.
11197
11198 2016-03-07  Martin Sebor  <msebor@redhat.com>
11199
11200         PR rtl-optimization/19705
11201         * doc/invoke.texi (Options That Control Optimization): Clarify
11202         -fno-branch-count-reg.
11203
11204 2016-02-26  Richard Biener  <rguenther@suse.de>
11205             Jeff Law  <law@redhat.com>
11206
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
11210         loop.
11211         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
11212         Move after definition of loops_state_clear.
11213
11214 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
11215
11216         PR rtl-optimization/69052
11217         * rtlanal.c (commutative_operand_precedence): Set higher precedence
11218         to CONST_WIDE_INT.
11219
11220 2016-03-07  Tom de Vries  <tom@codesourcery.com>
11221
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.
11226
11227 2016-03-07  Richard Biener  <rguenther@suse.de>
11228
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.
11232
11233 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
11234
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.
11242
11243 2016-03-07  Richard Henderson  <rth@redhat.com>
11244
11245         PR rtl-opt/70061
11246         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
11247         (insert_value_copy_on_edge): Likewise.
11248
11249 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11250
11251         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
11252
11253 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11254
11255         PR target/62281
11256         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
11257
11258 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
11259
11260         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
11261
11262 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
11263
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.
11270
11271 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
11272
11273         PR c++/70084
11274         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
11275         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
11276         to the right type.
11277
11278 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
11279
11280         PR c/69973
11281         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
11282
11283         PR rtl-optimization/69941
11284         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
11285         the reg share its mode.
11286
11287 2016-03-04  Jeff Law  <law@redhat.com>
11288
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.
11293
11294 2016-03-05  Tom de Vries  <tom@codesourcery.com>
11295
11296         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
11297         construct in oacc routine.  Check for oacc region in oacc routine.
11298
11299 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
11300
11301         PR target/70062
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.
11307
11308         PR target/70059
11309         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
11310         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
11311         fixes.
11312         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
11313
11314 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
11315
11316         PR rtl-optimization/57676
11317         * lra-assigns.c (lra_assign): Guard test for maximum iterations
11318         with flag_checking.
11319
11320 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
11321
11322         * tree-vect-patterns.c (search_type_for_mask): Handle
11323         comparison of booleans.
11324
11325 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
11326
11327         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
11328         Fix @xref usage.
11329
11330         PR debug/69947
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.
11334
11335 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11336
11337         PR rtl-optimization/69904
11338         * config/arm/arm.c (arm_cannot_copy_insn_p):
11339         Return true for load-exclusive instructions.
11340
11341 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
11342
11343         PR target/70021
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
11347         or mix thereof.
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.
11351
11352 2016-03-03  Marek Polacek  <polacek@redhat.com>
11353
11354         PR middle-end/70050
11355         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
11356
11357 2016-03-03  Martin Liska  <mliska@suse.cz>
11358
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.
11362
11363 2016-03-03  Richard Biener  <rguenther@suse.de>
11364
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
11370         helper.
11371
11372 2016-03-03  Michael Collison  <michael.collison@linaro.org>
11373
11374         PR target/70014
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.
11378
11379 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
11380
11381         * doc/tm.texi: Regenerated.
11382
11383 2016-03-02  Richard Henderson  <rth@redhat.com>
11384
11385         PR rtl-opt/67145
11386         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
11387         simplification when all args are positive non-fixed registers.
11388
11389 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11390
11391         * target.def (lra_p): Specify that new ports should use LRA.
11392
11393 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
11394
11395         PR libgomp/69555
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.
11401
11402 2016-03-02  Tom de Vries  <tom@codesourcery.com>
11403
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.
11408
11409 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
11410
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.
11415
11416 2016-03-02  Alan Modra  <amodra@gmail.com>
11417
11418         PR ipa/69990
11419         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
11420         larger alignment.
11421
11422 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
11423
11424         PR target/70028
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.
11428
11429 2016-03-02  Richard Biener  <rguenther@suse.de>
11430
11431         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
11432         GENERIC expressions in GIMPLE.
11433
11434 2016-03-02  Richard Biener  <rguenther@suse.de>
11435
11436         * config/i386/i386.c (type_natural_mode): Fix typo.
11437
11438 2016-03-02  Nick Clifton  <nickc@redhat.com>
11439
11440         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
11441
11442 2016-03-02  Richard Biener  <rguenther@suse.de>
11443             Uros Bizjak  <ubizjak@gmail.com>
11444
11445         PR target/67278
11446         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
11447
11448 2016-03-02  Richard Biener  <rguenther@suse.de>
11449
11450         PR middle-end/67278
11451         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
11452
11453 2016-03-02  Marek Polacek  <polacek@redhat.com>
11454
11455         PR c/67854
11456         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
11457         "is promoted to" warning.
11458
11459 2016-03-01  DJ Delorie  <dj@redhat.com>
11460
11461         * config.gcc: Deprecate mep-*.
11462
11463 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
11464
11465         PR middle-end/70025
11466         * lra-constraints.c (regno_val_use_in): New.
11467         (match_reload): Use it instead of regno_use_in.
11468
11469 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11470
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.
11474
11475 2016-03-01  Jeff Law  <law@redhat.com>
11476
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.
11481
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
11487         in the last block.
11488
11489 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
11490
11491         PR target/70027
11492         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
11493         asm dialect alternatives to explicit GOTPCREL calls.
11494
11495 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11496
11497         PR ada/70017
11498         * ira.c (do_reload): Issue warning for generic stack checking here...
11499         * reload1.c (reload): ...instead of here and streamline it.
11500
11501 2016-03-01  Nick Clifton  <nickc@redhat.com>
11502
11503         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
11504
11505 2016-03-01  Richard Biener  <rguenther@suse.de>
11506
11507         PR tree-optimization/69983
11508         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
11509         types and fall back to operand_equal_p.
11510
11511 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11512
11513         Revert
11514         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11515
11516         * config/s390/constraints.md ("jm8"): New constraint.
11517         * config/s390/predicates.md ("const_int_8bitset_operand"): New
11518         predicate.
11519         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
11520         into ...
11521         ("*setmem_long<setmem_and>"): New pattern.
11522         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
11523         into ...
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.
11527
11528
11529 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11530
11531         Revert
11532         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11533
11534         * gensupport.c (process_substs_on_one_elem): Split loop to
11535         complete mark_operands_used_in_match_dup on all expressions in the
11536         vector first.
11537         (adjust_operands_numbers): Inline into process_substs_on_one_elem
11538         and remove function.
11539
11540 2016-03-01  Richard Biener  <rguenther@suse.de>
11541
11542         PR middle-end/70022
11543         * fold-const.c (fold_indirect_ref_1): Fix range checking for
11544         vector BIT_FIELD_REF extract.
11545
11546 2016-03-01  Richard Biener  <rguenther@suse.de>
11547
11548         PR tree-optimization/69994
11549         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
11550
11551 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
11552
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.
11557
11558 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11559
11560         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
11561         anymore.
11562
11563 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11564
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
11571         selector.
11572         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
11573         operands.
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.
11583
11584 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11585
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.
11590
11591 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11592
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.
11608
11609 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11610
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
11620         iterator.
11621
11622 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11623
11624         * config/s390/predicates.md (const_int_6bitset_operand): New
11625         predicate.
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
11629         ...
11630         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
11631         * config/s390/subst.md: New file.
11632
11633 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11634
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
11638         attributes.
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.
11646
11647 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11648
11649         * gensupport.c (process_substs_on_one_elem): Split loop to
11650         complete mark_operands_used_in_match_dup on all expressions in the
11651         vector first.
11652         (adjust_operands_numbers): Inline into process_substs_on_one_elem
11653         and remove function.
11654
11655 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
11656
11657         PR target/69706
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.
11664
11665 2016-02-29  Jeff Law  <law@redhat.com>
11666
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
11670         outside [0..1].
11671
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
11675         loop cleanups.
11676
11677 2016-02-29  Richard Biener  <rguenther@suse.de>
11678
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
11683         nop conversions.
11684         (eliminate_plus_minus_pair): Use ops_equal_values_p
11685         (repropagate_negates): Do not use get_unary_op here.
11686
11687 2016-02-29  Martin Liska  <mliska@suse.cz>
11688
11689         * system.h: Poison ENABLE_CHECKING macro.
11690
11691 2016-02-29  Martin Liska  <mliska@suse.cz>
11692
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.
11697
11698 2016-02-19  Richard Biener  <rguenther@suse.de>
11699
11700         PR tree-optimization/69980
11701         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
11702         permutation of those we need to keep.
11703
11704 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
11705
11706         PR target/69706
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
11718         in the first word.
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.
11738
11739 2016-02-29  Richard Biener  <rguenther@suse.de>
11740
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
11745         defs properly.
11746
11747 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
11748
11749         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
11750
11751 2016-02-27  Jeff Law  <law@redhat.com>
11752
11753         Revert
11754         2016-02-26  Richard Biener  <rguenther@suse.de>
11755                     Jeff Law  <law@redhat.com>
11756
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
11760         loop.
11761
11762 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
11763
11764         PR rtl-optimization/69896
11765         * tree-vect-generic.c (get_compute_type): Avoid single element
11766         vector types.
11767
11768 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
11769
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.
11773
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.
11786
11787 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11788
11789         PR target/69969
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.
11793
11794 2016-02-26  Joel Sherrill  <joel@rtems.org>
11795
11796         * config.gcc: Add x86_64-*-rtems*.
11797         * config/i386/rtems-64.h: New file.
11798
11799 2016-02-26  Joel Sherrill  <joel@rtems.org>
11800
11801         * config.gcc: Add aarch64-*-rtems*.
11802         * config/aarch64/rtems.h: New file.
11803
11804 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
11805
11806         PR target/69946
11807         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
11808         shift amount using %h.  Add comment.
11809
11810 2016-02-26  Richard Biener  <rguenther@suse.de>
11811             Jeff Law  <law@redhat.com>
11812
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
11816         loop.
11817
11818 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11819
11820         PR middle-end/69920
11821         * tree-sra.c (sra_modify_assign): Do not remove loads of
11822         uninitialized aggregates to SSA_NAMEs.
11823
11824 2016-02-26  Richard Henderson  <rth@redhat.com>
11825
11826         PR target/69709
11827         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
11828         pseudo in case the target rtx matches the source of the left
11829         shift.
11830
11831 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11832
11833         PR hsa/69568
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
11837         loads.
11838         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
11839         * hsa-brig.c (emit_basic_insn): Likewise.
11840
11841 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11842
11843         pr hsa/69674
11844         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
11845         pointers.
11846         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
11847
11848 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11849
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.
11857
11858 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11859
11860         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
11861         atomic operations in private segment.
11862
11863 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11864
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.
11869
11870 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11871
11872         PR target/69245
11873         * config/aarch64/aarch64.c (aarch64_set_current_function):
11874         Save/restore target globals when switching to
11875         target_option_default_node.
11876
11877 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11878
11879         PR target/69613
11880         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
11881         Return 0 if !SHIFT_COUNT_TRUNCATED.
11882
11883 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11884             Eric Botcazou  <ebotcazou@adacore.com>
11885
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.
11889
11890 2016-02-26  Martin Liska  <mliska@suse.cz>
11891
11892         * doc/extend.texi: Mention clog10, clog10f an clog10l
11893         in Builtins section.
11894
11895 2016-02-26  Martin Liska  <mliska@suse.cz>
11896
11897         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
11898         CHECKING_P.
11899         (resolve_args_picking_1): Likewise.
11900         * dwarf2out.h (struct GTY): Likewise.
11901
11902 2016-02-26  Martin Liska  <mliska@suse.cz>
11903
11904         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
11905         with flag_checking.
11906         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11907
11908 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
11909             Martin Liska  <mliska@suse.cz>
11910
11911         * doc/install.texi: Mention --enable-valgrind-annotations.
11912
11913 2016-02-26  Richard Biener  <rguenther@suse.de>
11914
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.
11919
11920 2016-02-25  Martin Liska  <mliska@suse.cz>
11921
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.
11927
11928 2016-02-25  Richard Biener  <rguenther@suse.de>
11929
11930         PR tree-optimization/48795
11931         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
11932
11933 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
11934
11935         PR driver/68463
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.
11952
11953 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
11954
11955         PR ipa/69630
11956         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
11957         on builtin_unreachable.
11958
11959 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
11960
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.
11966
11967 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11968
11969         PR debug/69705
11970         * dwarf2out.c (gen_variable_die): Work around buggy LTO
11971         - allow NULL decl for Fortran DW_TAG_common_block variables.
11972
11973 2016-02-24  Jason Merrill  <jason@redhat.com>
11974
11975         * common.opt (flifetime-dse): Add -flifetime-dse=1.
11976
11977 2016-02-24  Richard Biener  <rguenther@suse.de>
11978             Jakub Jelinek  <jakub@redhat.com>
11979
11980         PR middle-end/69760
11981         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
11982         conditionally executed ops to well-defined overflow behavior.
11983
11984 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11985
11986         PR middle-end/69915
11987         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
11988         elements.
11989
11990 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11991
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
11997         callsite.
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.
12001
12002 2016-02-24  Richard Biener  <rguenther@suse.de>
12003
12004         PR middle-end/68963
12005         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
12006         bogus check.
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.
12009
12010 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12011
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.
12019
12020 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12021
12022         PR target/69875
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.
12028
12029 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12030
12031         PR c/69918
12032         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
12033         2 to 3.
12034
12035 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12036             Richard Biener  <rguenth@suse.de>
12037
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
12041         as a MEM.
12042
12043 2016-02-24  Richard Biener  <rguenther@suse.de>
12044
12045         PR tree-optimization/69907
12046         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
12047         end of permutations for BB vectorization.
12048
12049 2016-02-24  Christian Bruel  <christian.bruel@st.com>
12050
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.
12056         Fix comments.
12057
12058 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
12059
12060         PR target/69810
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.
12066
12067 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
12068
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}
12072         and AESMC pairs.
12073
12074 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
12075
12076         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
12077         series for reciprocal square root in Exynos M1.
12078
12079 2016-02-23  Martin Sebor  <msebor@redhat.com>
12080
12081         PR c/69759
12082         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
12083         __builtin_alloca_with_align.
12084
12085 2016-02-23  Richard Henderson  <rth@redhat.com>
12086
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.
12095
12096 2016-02-23  Richard Biener  <rguenther@suse.de>
12097
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.
12102
12103 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
12104
12105         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
12106         (parallelize_loops): In OpenACC kernels mode, set n_threads to
12107         zero.
12108         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
12109         flag_openacc.
12110         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
12111
12112 2016-02-23  Richard Biener  <rguenther@suse.de>
12113
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.
12122
12123 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
12124
12125         PR c++/69902
12126         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
12127         when inverting comparison.
12128
12129         PR c/69900
12130         * common.opt (Wunreachable-code): Add Warning flag.
12131
12132 2016-02-23  Mark Wielaard  <mjw@redhat.com>
12133             Jakub Jelinek  <jakub@redhat.com>
12134
12135         PR c/69911
12136         * cgraphunit.c (check_global_declaration): Check main_input_filename
12137         and DECL_SOURCE_FILE are not NULL.
12138
12139 2016-02-23  Martin Jambor  <mjambor@suse.cz>
12140
12141         PR tree-optimization/69666
12142         * tree-sra.c (sra_modify_assign): Do not attempt to create
12143         default_def replacements for unscalarizable regions.
12144
12145 2016-02-20  Mark Wielaard  <mjw@redhat.com>
12146
12147         PR c/28901
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.
12153
12154 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
12155
12156         PR target/69888
12157         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
12158         identical arguments.  Formatting and spelling fixes.
12159
12160         PR target/69885
12161         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
12162         be specified.
12163
12164         PR target/69894
12165         PR target/69895
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.
12170
12171 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
12172
12173         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
12174         and HImode registers.
12175
12176 2016-02-22  Richard Biener  <rguenther@suse.de>
12177
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.
12183
12184 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
12185
12186         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
12187         min_profitable_estimate, rather than min_profitable_iters.
12188
12189 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
12190
12191         PR target/69885
12192         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
12193         SImode for last match_operand.
12194
12195 2016-02-22  Martin Liska  <mliska@suse.cz>
12196
12197         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
12198         return bitsize - 1 as the return value.
12199
12200 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
12201
12202         PR target/69806
12203         PR target/54089
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.
12210
12211 2016-02-22  Richard Biener  <rguenther@suse.de>
12212             Tom de Vries  <tom@codesourcery.com>
12213
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.
12217
12218 2016-02-22  Tom de Vries  <tom@codesourcery.com>
12219
12220         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
12221         dump-fn.
12222
12223 2016-02-22  Richard Biener  <rguenther@suse.de>
12224
12225         PR ipa/37448
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
12233         summary.
12234
12235 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
12236
12237         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
12238         variable.
12239
12240 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
12241
12242         PR driver/69805
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.
12247
12248 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
12249
12250         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
12251         -Wnarrowing with -std.
12252
12253 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
12254
12255         PR c++/69851
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
12260         fix.
12261
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.
12266
12267         PR target/69820
12268         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
12269         if TARGET_AVX512BW.
12270
12271 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12272
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.
12276
12277 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12278
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.
12283
12284 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12285
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.
12289
12290 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12291
12292         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
12293
12294 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12295
12296         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
12297         mode.
12298
12299 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12300
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.
12305
12306 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12307
12308         * config/s390/s390.md: Add missing output modifier for operand 1
12309         to print it as address properly.
12310
12311 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12312
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
12323         debug output.
12324         (s390_sched_init): Clear last_scheduled_unit_distance array.
12325         * config/s390/s390.md: Include 2964.md.
12326
12327 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
12328
12329         PR target/69671
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.
12335
12336 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
12337
12338         PR target/68404
12339         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
12340         2016-02-09 change.
12341
12342         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
12343         earlyclobber from target.  Use wF constraint for fused memory
12344         address.
12345         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
12346
12347 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
12348             Martin Liska  <mliska@suse.cz>
12349
12350         PR sanitizer/69863
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.
12356
12357 2016-02-18  Richard Biener  <rguenther@suse.de>
12358
12359         PR middle-end/69553
12360         * fold-const.c (operand_equal_p): Properly compare offsets for
12361         IMAGPART_EXPR and ARRAY_REF.
12362
12363 2016-02-18  Nick Clifton  <nickc@redhat.com>
12364
12365         PR target/62254
12366         PR target/69610
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
12371         it.
12372         (arm_reload_out_hi): Likewise.
12373
12374 2016-02-18  Richard Biener  <rguenther@suse.de>
12375
12376         PR middle-end/69854
12377         * match.pd: Don't use fold_binary or fold_unary for folding
12378         constants.
12379
12380 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
12381
12382         PR c++/69850
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.
12387
12388 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
12389
12390         * doc/extend.texi (C++ Attributes): Correct description of
12391         warn_unused type attribute.
12392
12393 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12394
12395         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
12396         correct instruction.
12397
12398 2016-02-17  Richard Biener  <rguenther@suse.de>
12399
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
12403         of successors.
12404         (bb_to_key): Use cached priority when available.
12405         (copy_bb): Initialize cached priority.
12406         (reorder_basic_blocks_software_trace_cache): Likewise.
12407
12408 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12409
12410         PR target/69161
12411         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
12412         New predicate.
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.
12423
12424 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12425
12426         PR target/69161
12427         * config/arm/predicates.md (arm_comparison_operator_mode):
12428         New predicate.
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.
12438
12439 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
12440
12441         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
12442         Add missing return.
12443
12444 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
12445
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.
12458
12459 2016-02-17  Nick Clifton  <nickc@redhat.com>
12460
12461         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
12462         TI's devices.csv file as of March 2016.
12463
12464 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12465
12466         PR Target/48344
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.
12473
12474 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12475
12476         PR c/69835
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.
12485
12486 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12487
12488         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
12489         AARCH64_EXTRA_TUNE_RECIP_SQRT.
12490
12491 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12492
12493         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
12494         reciprocal sqrt for -mlow-precision-recip-sqrt.
12495
12496 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12497             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12498
12499         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
12500         always use lane loads to construct non-constant vectors.
12501
12502 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12503
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.
12508
12509 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12510             Richard Biener  <rguenther@suse.de>
12511
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):
12516         Formatting fix.
12517
12518 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12519
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.
12524
12525 2016-02-16  Richard Biener  <rguenther@suse.de>
12526
12527         PR tree-optimization/69776
12528         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
12529         sets from caller.
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.
12536
12537 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
12538
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.
12542
12543 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
12544
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
12554         instructions.
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):
12579         Renamed.
12580         (adddf3, muldf3, subdf3): Removed.
12581         * config/arc/predicates.md (proper_comparison_operator): Recognize
12582         CC_FPU* modes.
12583         * config/arc/fpu.md: New file.
12584         * doc/invoke.texi (ARC Options): Document mfpu option.
12585
12586 2016-02-16  Richard Biener  <rguenther@suse.de>
12587
12588         PR rtl-optimization/69291
12589         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
12590         noce_operand_ok check.
12591
12592 2016-02-16  Tom de Vries  <tom@codesourcery.com>
12593
12594         PR lto/67709
12595         * omp-low.c (simd_clone_create): Remove call to
12596         symtab->call_cgraph_insertion_hooks.
12597
12598 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12599
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
12606         up formatting.
12607
12608 2016-02-16  Richard Biener  <rguenther@suse.de>
12609
12610         PR tree-optimization/69586
12611         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
12612         types for conversion sources.
12613
12614 2016-02-16  Richard Biener  <rguenther@suse.de>
12615
12616         PR middle-end/69801
12617         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
12618         mask OEP_ADDRESS_OF.
12619
12620 2016-02-16  Alan Modra  <amodra@gmail.com>
12621
12622         PR target/68973
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.
12626         (p8_mtvsrwz): New.
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
12631         changes.
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.
12636
12637 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
12638
12639         Add support for the FCCMP insn types
12640
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.
12650
12651 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12652
12653         * alias.c (get_alias_set): Fix a typo in comment.
12654
12655 2016-02-15  Richard Biener  <rguenther@suse.de>
12656
12657         PR tree-optimization/69595
12658         * match.pd: Complete range test simplification to true.
12659
12660 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
12661
12662         PR rtl-optimization/69648
12663         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
12664         pic_offset_table_rtx.
12665
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.
12669
12670 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
12671
12672         * config/s390/s390.c (s390_function_profiler): Add a new sequence
12673         for z900+ CPUs in 31-bit mode.
12674
12675 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
12676
12677         * common/config/s390/s390-common.c (s390_supports_split_stack):
12678         New function.
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
12686         vararg pointer.
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.
12704
12705 2016-02-15  Richard Biener  <rguenther@suse.de>
12706
12707         PR tree-optimization/69783
12708         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12709         Add trivially correct cases.
12710
12711 2016-02-15  Tom de Vries  <tom@codesourcery.com>
12712
12713         PR lto/69655
12714         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
12715         do_force_output.
12716         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
12717
12718 2016-02-15  Richard Biener  <rguenther@suse.de>
12719
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
12726         redundant stores.
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.
12730
12731 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
12732
12733         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
12734
12735 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12736
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,
12746         znver1_avx256_fma,
12747         znver1_avx256_fma_load): Fix pipe usage.
12748
12749 2016-02-14  Alan Modra  <amodra@gmail.com>
12750
12751         PR target/68973
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.
12755
12756 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12757
12758         PR target/67260
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.
12762
12763 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12764
12765         PR target/67636
12766         PR target/64345
12767         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
12768
12769 2016-02-12  Walter Lee  <walt@tilera.com>
12770
12771         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
12772         * config/tilegx/t-tilegx: Likewise.
12773
12774 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12775
12776         PR other/69554
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"
12801         statements.
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.
12806
12807 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12808
12809         PR driver/69779
12810         * gcc.c (driver::finalize): Fix cleanup of "specs".
12811
12812 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12813
12814         PR driver/69265
12815         PR driver/69453
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.
12838
12839 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12840
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.
12845
12846 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
12847
12848         PR target/69729
12849         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
12850         to correctly determine instrumentation thunks.
12851
12852 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12853
12854         PR ipa/69241
12855         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
12856         type by reference, force lhs on the call.
12857
12858         PR ipa/68672
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.
12865
12866 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12867
12868         revert:
12869         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12870
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.
12876
12877 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12878
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.
12884
12885 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12886
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.
12937
12938 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
12939
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.
12945
12946 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12947
12948         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
12949         New variable.
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.
12956
12957 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
12958
12959         PR plugins/69758
12960         * Makefile.in (PLUGIN_HEADERS): Add params.list.
12961
12962 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
12963
12964         PR target/65313
12965         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
12966         -Wmaybe-uninitialized warning.
12967
12968 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
12969
12970         PR target/69713
12971         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
12972
12973 2016-02-11  Richard Biener  <rguenther@suse.de>
12974
12975         PR rtl-optimization/69291
12976         * ifcvt.c (noce_try_store_flag_constants): Do not allow
12977         subexpressions affected by changing the result.
12978
12979 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
12980
12981         PR target/69148
12982         * lra-constraints.c (curr_insn_transform): Find in/out operands
12983         for secondary memory moves.  Update dups.
12984
12985 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
12986
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
12991         statements.
12992
12993 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
12994             Patrick Palka  <ppalka@gcc.gnu.org>
12995
12996         PR ipa/69241
12997         PR c++/69649
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.
13004
13005 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
13006
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.
13010
13011 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
13012
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.
13025
13026 2016-02-10  Richard Biener  <rguenther@suse.de>
13027
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.
13032
13033 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
13034
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.
13039
13040 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
13041
13042         * timevar.def (TV_PHASE_DBGINFO): Delete.
13043         (TV_PHASE_CHECK_DBGINFO): Likewise.
13044         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
13045
13046 2016-02-10  Richard Biener  <rguenther@suse.de>
13047
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.
13051
13052 2016-02-09  Andrew Pinski  <apinski@cavium.com>
13053
13054         PR tree-opt/69282
13055         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
13056         get_vcond_mask_icode returns false.
13057
13058 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
13059
13060         PR target/68404
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.
13064
13065 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
13066
13067         PR target/68532
13068         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
13069         order.
13070         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
13071         endian.
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.
13080
13081 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
13082
13083         PR target/68532
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
13088         endian.
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.
13097
13098 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
13099
13100         PR target/69634
13101         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
13102         debug insns.
13103
13104 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
13105
13106         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
13107         truncate const_int operand 1 to QImode.
13108
13109 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
13110
13111         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
13112         corresponding to an abnormal edge.
13113
13114 2016-02-09  Tom de Vries  <tom@codesourcery.com>
13115
13116         PR tree-optimization/69599
13117         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
13118         function.
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
13121         partition.
13122
13123 2016-02-09  Richard Biener  <rguenther@suse.de>
13124
13125         PR tree-optimization/69715
13126         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
13127         LHS on calls as non-rewritable.
13128
13129 2016-02-09  Tom de Vries  <tom@codesourcery.com>
13130
13131         PR lto/69707
13132         * lto-wrapper.c (append_diag_options): New function.
13133         (compile_offload_image): Call append_diag_options.
13134
13135 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
13136
13137         PR other/69722
13138         * doc/extend.texi (Flag Output Operands): Correct sectioning.
13139         Minor copy-edit to fix verb tenses.
13140
13141 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
13142
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.
13147
13148 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
13149
13150         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
13151         outdated section.
13152
13153 2016-02-08  Jason Merrill  <jason@redhat.com>
13154
13155         PR c++/69631
13156         * convert.c (convert_to_integer_1): Check dofold on truncation
13157         distribution.
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.
13163
13164 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
13165
13166         PR target/60410
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.
13175
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
13184         bitmap.
13185
13186 2016-02-08  Richard Biener  <rguenther@suse.de>
13187
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.
13192
13193 2016-02-08  Richard Biener  <rguenther@suse.de>
13194             Jeff Law  <law@redhat.com>
13195
13196         PR target/68273
13197         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
13198         types for anonymous SSA names.
13199
13200 2016-02-08   Richard Biener  <rguenther@suse.de>
13201
13202         PR rtl-optimization/69274
13203         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
13204
13205 2016-02-08  Jeff Law  <law@redhat.com>
13206
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.
13217
13218 2016-02-05  Jeff Law  <law@redhat.com>
13219
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.
13228
13229 2016-02-05  Martin Sebor  <msebor@redhat.com>
13230
13231         PR c++/69662
13232         * doc/invoke.texi: Update -Wplacement-new to take an optional
13233         argument.
13234
13235 2016-02-06  Richard Henderson  <rth@redhat.com>
13236
13237         PR c/69643
13238         * tree.c (tree_nop_conversion_p): Do not strip casts into or
13239         out of non-standard address spaces.
13240
13241 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
13242
13243         PR rtl-optimization/69691
13244         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
13245
13246 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
13247
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.
13252
13253 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
13254
13255         PR target/69369
13256         Revert r232560:
13257         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
13258
13259         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
13260         instrumented_version.
13261
13262 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
13263
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.
13274
13275 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13276
13277         * config/s390/s390.c (s390_register_info_set_ranges): Remove
13278         superfluous loops.
13279
13280 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13281
13282         * doc/extend.texi: S/390: Correct some typos.
13283
13284 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13285
13286         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
13287
13288 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13289
13290         PR target/69625
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
13294         its name.
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.
13307
13308 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
13309
13310         PR bootstrap/69677
13311         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
13312         alignment fixes.
13313         (ix86_option_override_internal): Disable TARGET_STV even for
13314         -m{incoming,preferred}-stack-boundary=3.
13315
13316 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13317
13318         * config.gcc: Mark deprecated rtems targets as obsolete.
13319
13320 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
13321
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.
13326
13327 2016-02-04  DJ Delorie  <dj@redhat.com>
13328
13329         * config/msp430/msp430.c (msp430_start_function): Add function type.
13330
13331 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
13332
13333         PR fortran/69368
13334         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
13335
13336 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
13337
13338         PR rtl-optimization/69577
13339         Revert:
13340         2015-10-29  Richard Henderson  <rth@redhat.com>
13341
13342         PR target/68124
13343         PR rtl-opt/67609
13344         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
13345         sse check to the exact conditions of PR 67609.
13346
13347 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
13348
13349         PR target/69667
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.
13355
13356 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
13357
13358         * config/aarch64/cortex-a57-fma-steering.c
13359         (aarch64_register_fma_steering): Remove "static" from arguments
13360         to register_pass.
13361
13362 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
13363
13364         PR target/69619
13365         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
13366         twice when complex.
13367
13368 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
13369
13370         * doc/invoke.texi: Delete -mno-fma4.
13371
13372 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
13373
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
13377         definitions.
13378
13379 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
13380
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.
13490
13491 2016-02-04  Martin Liska  <mliska@suse.cz>
13492
13493         PR sanitizer/69276
13494         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
13495         that are gimple_store_p.
13496         (maybe_instrument_call): Likewise.
13497
13498 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
13499
13500         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
13501         register scaling out of memory reference and comment why.
13502
13503 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13504
13505         PR target/65932
13506         PR target/67714
13507         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
13508         folding the source of a SET.
13509
13510 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13511
13512         PR target/65932
13513         PR target/67714
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.
13516
13517 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
13518
13519         PR target/65932
13520         PR target/67714
13521         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
13522         HImode.
13523
13524 2016-02-04  Christian Bruel  <christian.bruel@st.com>
13525
13526         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
13527         * config/arm/arm.c (arm_set_current_function): Likewise.
13528
13529 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
13530             Ilya Enkovich  <enkovich.gnu@gmail.com>
13531             H.J. Lu  <hongjiu.lu@intel.com>
13532
13533         PR target/69454
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.
13539
13540 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
13541
13542         * config/i386/x86-tune.def: Disable default prefetching
13543         for -march=znver1.
13544
13545 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
13546             Vladimir Makarov  <vmakarov@redhat.com>
13547
13548         PR target/69461
13549         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
13550         in validating fused toc addresses.
13551
13552 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
13553
13554         PR c/69627
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.
13557
13558         PR target/69644
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.
13562
13563 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
13564             Alexandre Oliva  <aoliva@redhat.com>
13565
13566         PR target/69461
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
13570         nothing.
13571
13572 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
13573
13574         PR target/69118
13575         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
13576         Fix target.
13577
13578 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
13579
13580         * wide-int.cc (canonize_uhwi): New function.
13581         (wi::divmod_internal): Use it.
13582
13583 2016-02-02  James Norris  <jnorris@codesourcery.com
13584
13585         * gimplify.c (omp_notice_variable): Add usage check.
13586
13587 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
13588
13589         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
13590         like LE, GE, LT, GT when emitting relational operator.
13591
13592 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
13593
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):
13601         Add parameter.
13602         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
13603         Update target hook.
13604
13605 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
13606
13607         * config/aarch64/aarch64.c
13608         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
13609         (aarch64_ira_change_pseudo_allocno_class): New function.
13610
13611 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
13612
13613         PR target/67032
13614         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
13615
13616 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
13617
13618         * config/avr/avr.c (avr_option_override): Set
13619         PARAM_ALLOW_STORE_DATA_RACES to 1.
13620
13621 2016-02-02  Richard Biener  <rguenther@suse.de>
13622
13623         PR tree-optimization/69595
13624         * match.pd: Add range test simplifications to true/false.
13625
13626 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
13627
13628         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
13629         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
13630         instead.
13631
13632 2016-02-02  Richard Biener  <rguenther@suse.de>
13633
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.
13637
13638 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
13639
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.
13654
13655 2016-02-02  Alan Modra  <amodra@gmail.com>
13656
13657         PR target/69548
13658         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
13659         allow subregs.
13660
13661 2016-02-02  Alan Modra  <amodra@gmail.com>
13662
13663         PR target/68662
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.
13671
13672 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13673
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.
13679
13680 2016-02-01  Jeff Law  <law@redhat.com>
13681
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.
13687
13688 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13689
13690         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
13691         when count is incremented above limit, don't analyze further
13692         insns afterwards.
13693
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.
13697
13698 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
13699
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.
13704
13705 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
13706
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
13717         possible.
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.
13723
13724 2016-02-01  Richard Biener  <rguenther@suse.de>
13725
13726         PR middle-end/69556
13727         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
13728
13729 2016-02-01  Richard Biener  <rguenther@suse.de>
13730
13731         PR tree-optimization/69574
13732         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
13733         of asserting return chrec_dont_know.
13734
13735 2016-02-01  Martin Liska  <mliska@suse.cz>
13736
13737         * mem-stats-traits.h: Add copyright header.
13738         * mem-stats.h: Likewise.
13739
13740 2016-02-01  Richard Biener  <rguenther@suse.de>
13741
13742         PR tree-optimization/69579
13743         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
13744         Do not propagate through abnormal PHI results.
13745
13746 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
13747
13748         * postreload.c (reload_cse_simplify): Remove dead code.
13749
13750 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13751
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.
13755
13756 2016-02-01  Richard Henderson  <rth@redhat.com>
13757
13758         PR rtl-opt/69535
13759         * combine.c (make_compound_operation): When looking through a
13760         subreg, make sure to re-extend to the width of the outer mode.
13761
13762 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
13763
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.
13771
13772 2016-01-29  Martin Jambor  <mjambor@suse.cz>
13773
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.
13785
13786 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
13787
13788         * doc/install.texi: Document that isl-0.16 is supported.
13789
13790 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
13791
13792         PR target/69299
13793         * config/i386/constraints.md (Bm): Describe as special memory
13794         constraint.
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
13799         static vars.
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
13818         CT_SPECIAL_MEMORY.
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.
13823
13824 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13825
13826         PR target/69530
13827         * lra-splill.c (lra_final_code_change): Revert r229087 by
13828         removing all sub-registers.
13829
13830 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
13831
13832         PR target/65604
13833         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
13834
13835 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
13836
13837         PR target/69551
13838         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
13839         SSE1, copy target into the temporary reg first before recursing
13840         on it.
13841
13842 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13843
13844         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
13845         with vm.
13846
13847 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13848
13849         * ginclude/stdarg.h: Test __cplusplus instead of
13850         __GXX_EXPERIMENTAL_CXX0X__.
13851
13852 2016-01-29  Richard Biener  <rguenther@suse.de>
13853
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.
13858
13859 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13860
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.
13864
13865 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13866
13867         PR other/69006
13868         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
13869         trailing blank line from error message.
13870
13871 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13872
13873         PR c++/69462
13874         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
13875         for C++-11.
13876
13877 2016-01-29  Richard Biener  <rguenther@suse.de>
13878
13879         PR middle-end/69537
13880         * match.pd: Allow all integral types when simplifying a
13881         widening or sign-changing conversion.
13882
13883 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13884
13885         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
13886         back to setting codegen_error to fail codegen.
13887
13888 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
13889
13890         PR target/69459
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
13896         of C constraint.
13897
13898 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
13899
13900         PR target/68400
13901         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
13902
13903 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
13904
13905         PR middle-end/69542
13906         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
13907         non-debug insns.
13908
13909 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
13910
13911         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
13912         branches if using guessed profile.
13913
13914 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
13915
13916         * graphite-optimize-isl.c (optimize_isl): Fix dump.
13917
13918 2016-01-28  Richard Henderson  <rth@redhat.com>
13919
13920         PR target/69305
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.
13947
13948 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
13949
13950         * graphite-optimize-isl.c (optimize_isl): Print a different debug
13951         message when isl does not return a valid schedule.
13952
13953 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13954
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
13957         close by the defs.
13958
13959 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13960
13961         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
13962         codegen_error_p.
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.
13974
13975 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13976
13977         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
13978         instead of setting codegen_error to fail codegen.
13979
13980 2016-01-28  Jason Merrill  <jason@redhat.com>
13981
13982         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
13983
13984 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13985
13986         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
13987         Remove CONST_INT_P check in CCMP cost calculation.
13988
13989 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13990
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.
13999
14000 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
14001
14002         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
14003         immediate as %1.
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.
14009
14010 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
14011
14012         * tree-vect-stmts.c (vectorizable_comparison): Add
14013         NULL check for vectype.
14014
14015 2016-01-28  Richard Biener  <rguenther@suse.de>
14016
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.
14020
14021 2016-01-28  Martin Liska  <mliska@suse.cz>
14022
14023         PR pch/68758
14024         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
14025         instead of ENABLE_VALGRIND_CHECKING.
14026
14027 2016-01-27  Richard Henderson  <rth@redhat.com>
14028
14029         PR rtl-opt/69447
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.
14036
14037 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
14038
14039         PR target/68986
14040         * config/i386/i386.c (ix86_update_stack_boundary): Don't
14041         change stack_alignment_needed for __tls_get_addr call.
14042
14043 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
14044
14045         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
14046
14047 2016-01-27  Jeff Law  <law@redhat.com>
14048
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.
14057
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.
14061
14062 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
14063
14064         PR lto/69254
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.
14071
14072 2016-01-27  Ian Lance Taylor  <iant@google.com>
14073
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
14078         NULL.
14079
14080 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
14081
14082         PR target/69512
14083         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
14084         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
14085
14086 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
14087
14088         PR target/68380
14089         * configure.ac: NetBSD provides SSP in its C library.
14090         * configure: Updated.
14091
14092 2016-01-27  Richard Biener  <rguenther@suse.de>
14093
14094         PR tree-optimization/69166
14095         * tree-vect-loop.c (vect_is_simple_reduction): Always check
14096         reduction code for commutativity / associativity.
14097
14098 2016-01-27  Martin Jambor  <mjambor@suse.cz>
14099
14100         PR tree-optimization/69355
14101         * tree-sra.c (analyze_access_subtree): Correct hole detection when
14102         total_scalarization fails.
14103
14104 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
14105
14106         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
14107         power9.
14108
14109 2016-01-27  Christian Bruel  <christian.bruel@st.com>
14110
14111         PR target/69245
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.
14119
14120 2016-01-27  Martin Liska  <mliska@suse.cz>
14121
14122         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
14123         reference for an HSA kernel and its host function.
14124
14125 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
14126
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.
14130
14131 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
14132
14133         * config/arc/predicates.md (proper_comparison_operator): Reject
14134         constant-constant comparison.
14135
14136 2016-01-26  Tom de Vries  <tom@codesourcery.com>
14137
14138         PR tree-optimization/69110
14139         * tree-data-ref.c (initialize_data_dependence_relation): Handle
14140         DR_NUM_DIMENSIONS == 0.
14141
14142 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
14143             Sebastian Pop  <s.pop@samsung.com>
14144
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.
14148
14149 2016-01-26  Jason Merrill  <jason@redhat.com>
14150
14151         PR c++/68782
14152         * tree.c (recompute_constructor_flags): Split out from
14153         build_constructor.
14154         (verify_constructor_flags): New.
14155         * tree.h: Declare them.
14156
14157 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
14158
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.
14162
14163 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14164
14165         PR target/68662
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
14170         LCTOC1.
14171         (rs6000_elf_declare_function_name): Use toc_label_name instead of
14172         constructing LCTOC1.
14173
14174 2016-01-26  Martin Sebor  <msebor@redhat.com>
14175
14176         PR other/69477
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.
14180
14181 2016-01-26  Richard Henderson  <rth@redhat.com>
14182
14183         PR middle-end/60908
14184         * trans-mem.c (tm_region_init): Mark entry block as visited.
14185
14186 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
14187
14188         PR other/69006
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
14196         before a newline.
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.
14206
14207 2016-01-26  Michael Matz  <matz@suse.de>
14208
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.
14213
14214 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
14215
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.
14222
14223 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14224
14225         PR tree-optimization/69483
14226         * gimple-fold.c (canonicalize_constructor_val): Return NULL
14227         if base has error_mark_node type.
14228
14229 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
14230
14231         PR target/68620
14232         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
14233         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
14234         New helper macros.
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.
14248
14249 2016-01-26  Nathan Sidwell  <nathan@acm.org>
14250
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.
14264
14265 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14266
14267         PR lto/69254
14268         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
14269         (append_compiler_options): Handle -fcilkplus.
14270         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
14271
14272 2016-01-26  Nick Clifton  <nickc@redhat.com>
14273
14274         PR target/66655
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.
14278
14279 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14280
14281         PR lto/69254
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.
14286
14287 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
14288
14289         PR target/68986
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
14293         __tls_get_addr.
14294         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
14295         if __tls_get_addr is called.
14296
14297 2016-01-26  Christian Bruel  <christian.bruel@st.com>
14298
14299         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
14300
14301 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
14302
14303         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
14304
14305 2016-01-26  Richard Biener  <rguenther@suse.de>
14306
14307         PR middle-end/69467
14308         * match.pd: Guard X * CST CMP 0 pattern with single_use.
14309
14310 2016-01-26  Richard Biener  <rguenther@suse.de>
14311
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
14315         to ...
14316         (move_computations_worker): This.
14317         (move_computations): Perform an RPO rather than a DOM walk.
14318
14319 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14320
14321         PR target/69442
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.
14327
14328 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
14329
14330         PR target/67896
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.
14334
14335 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
14336
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.
14344
14345 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
14346             Sebastian Pop  <s.pop@samsung.com>
14347
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.
14392         (nested_in): New.
14393         (loop_at): New.
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.
14437
14438 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
14439             Sebastian Pop  <s.pop@samsung.com>
14440
14441         * Makefile.in: Set ISLVER in site.exp.
14442
14443 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
14444
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.
14448
14449 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14450
14451         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
14452         the frame info after reload completed.
14453
14454 2016-01-25  Jeff Law  <law@redhat.com>
14455
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.
14471
14472 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14473
14474         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
14475         decl with __attribute__ ((unused)) annotation.
14476
14477 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
14478
14479         PR target/69421
14480         * tree-vect-stmts.c (vectorizable_condition): Check vectype
14481         of operands is compatible with a statement vectype.
14482
14483 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
14484
14485         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
14486         improve wording for mixed storage order support.
14487
14488 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
14489
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.
14500
14501 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
14502
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.
14519
14520 2016-01-25  Richard Biener  <rguenther@suse.de>
14521
14522         PR lto/69393
14523         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
14524         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
14525         DECL_NAMELESS.
14526         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
14527
14528 2016-01-25  Richard Biener  <rguenther@suse.de>
14529
14530         PR tree-optimization/69376
14531         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
14532         flag.
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.
14540
14541 2016-01-25  Nick Clifton  <nickc@redhat.com>
14542
14543         PR target/66655
14544         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
14545
14546 2016-01-23  Tom de Vries  <tom@codesourcery.com>
14547
14548         PR tree-optimization/69426
14549         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
14550         removed clobber.
14551
14552 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
14553
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.
14568
14569         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
14570         directly instead of building a temporary tree.
14571
14572         PR bootstrap/69434
14573         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
14574         remove <algorithm> include.
14575
14576 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
14577
14578         PR target/69432
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
14582         fixes.
14583         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
14584         if dynamic_check != -1.
14585
14586 2016-01-21  Jeff Law  <law@redhat.com>
14587
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.
14593
14594 2016-01-22  Richard Henderson  <rth@redhat.com>
14595
14596         PR target/69416
14597         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
14598         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
14599
14600 2016-01-22  Michael Matz  <matz@suse.de>
14601
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
14608         INCLUDE_STRING.
14609         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
14610
14611         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
14612         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
14613
14614 2016-01-22  Christian Bruel  <christian.bruel@st.com>
14615
14616         PR target/68674
14617         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
14618
14619 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14620
14621         PR target/69403
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.
14625
14626 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
14627
14628         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
14629
14630 2016-01-22  Christian Bruel  <christian.bruel@st.com>
14631
14632         * config/arm/arm-c.c (arm_pragma_target_parse):
14633         Remove warn_builtin_macro_redefined overwrite.
14634
14635 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
14636
14637         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
14638         flag_non_call_exceptions compatibility.
14639
14640 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
14641
14642         PR debug/66668
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.
14651
14652 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
14653
14654         * doc/extend.texi (scalar_storage_order type attribute): Document
14655         restriction on type punning and aliasing, and remove future tense.
14656
14657 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
14658
14659         PR target/69252
14660         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
14661         first stage.
14662
14663 2016-01-21  Jeff Law  <law@redhat.com>
14664
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
14671         vector.
14672
14673 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
14674
14675         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
14676         Detangle.
14677         * configure: Regenerate.
14678
14679 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
14680
14681         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
14682         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
14683
14684 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
14685
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.
14693
14694 2016-01-21  Anton Blanchard  <anton@samba.org>
14695             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14696
14697         PR target/63354
14698         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
14699         #define.
14700         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
14701         function.
14702
14703 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
14704
14705         * config/microblaze/microblaze.c
14706         (get_branch_target): New.
14707         (insert_wic_for_ilb_runout): New.
14708         (insert_wic): 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.
14716
14717 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
14718
14719         * config/microblaze/microblaze.h
14720         (FIXED_REGISTERS): Update in macro.
14721         (CALL_USED_REGISTERS): Update in macro.
14722
14723 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
14724
14725         PR rtl-optimization/68920
14726         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
14727         moves.
14728
14729 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
14730
14731         PR rtl-optimization/68990
14732         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
14733         pseudo instead of inheritance ones.
14734
14735 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14736             Nick Clifton  <nickc@redhat.com>
14737
14738         PR target/69129
14739         PR target/69012
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.
14743
14744 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
14745
14746         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
14747         label reference.
14748         * configure: Regenerate.
14749
14750 2016-01-21  Richard Biener  <rguenther@suse.de>
14751
14752         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
14753
14754 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14755
14756         * config/s390/s390.c (s390_asm_declare_function_size): Add code
14757         to actually emit the .size directive.
14758
14759 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
14760              Jakub Jelinek  <jakub@redhat.com>
14761
14762         PR target/69187
14763         PR target/65624
14764         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
14765         args array size by one to avoid buffer overflow.
14766
14767 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14768
14769         * config/s390/s390.md (pool_section_start): Use switch_to_section
14770         to select proper read-only data section instead of hardcoding
14771         .rodata.
14772         (pool_section_end): Use switch_to_section to match the above.
14773
14774 2016-01-21  Richard Biener  <rguenther@suse.de>
14775
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.
14780
14781 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14782
14783         PR c++/69355
14784         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
14785         for bitsize instead of GET_MODE_PRECISION (mode).
14786
14787 2016-01-20  Martin Sebor  <msebor@redhat.com>
14788
14789         PR c/52291
14790         * extend.texi (__sync Builtins): Clarify the semantics of
14791         __sync_fetch_and_OP built-ins on pointers.
14792         (__atomic Builtins): Same.
14793
14794 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14795             Sebastian Pop  <s.pop@samsung.com>
14796
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.
14807
14808 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14809             Sebastian Pop  <s.pop@samsung.com>
14810
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.
14824
14825 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14826             Sebastian Pop  <s.pop@samsung.com>
14827
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.
14832
14833 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14834             Sebastian Pop  <s.pop@samsung.com>
14835
14836         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
14837         Discard unstructured if-then-else regions.
14838
14839 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14840             Sebastian Pop  <s.pop@samsung.com>
14841
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.
14850
14851 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14852             Sebastian Pop  <s.pop@samsung.com>
14853
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.
14857
14858 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14859             Sebastian Pop  <s.pop@samsung.com>
14860
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.
14871
14872 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14873             Sebastian Pop  <s.pop@samsung.com>
14874
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.
14880
14881 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14882             Sebastian Pop  <s.pop@samsung.com>
14883
14884         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
14885         isl_ast_node_mark.
14886
14887 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14888             Sebastian Pop  <s.pop@samsung.com>
14889
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.
14893
14894 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14895             Sebastian Pop  <s.pop@samsung.com>
14896
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.
14920
14921 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14922
14923         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
14924         requirements.
14925
14926 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14927
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.
14937
14938 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14939
14940         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
14941         warning.  Fix up formatting.
14942
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.
14948
14949 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
14950
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.
14970
14971 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
14972
14973         PR target/68609
14974         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
14975         domain check.
14976         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
14977         for V4SFmode.
14978
14979 2016-01-20  Richard Henderson  <rth@redhat.com>
14980
14981         PR bootstrap/69343
14982         PR bootstrap/69339
14983         PR tree-opt/68964
14984         Revert:
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.
14989
14990 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
14991
14992         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
14993         (arm_fp_ok): Likewise.
14994         (arm_fp): Likewise.
14995         (arm_crypto): Likewise.
14996
14997 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
14998             Richard Biener  <rguenther@suse.de>
14999
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.
15004
15005 2016-01-20  Richard Biener  <rguenther@suse.de>
15006
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.
15014
15015 2016-01-20  Jeff Law  <law@redhat.com>
15016
15017         PR target/25114
15018         * config/m68k/predicates.md (pow2_m1_operand): New predicate
15019         extracted from ...
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.
15024
15025 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
15026
15027         * doc/invoke.texi (Options Summary): Add '.' after @xref.
15028
15029 2016-01-19  Jeff Law  <law@redhat.com>
15030
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.
15035
15036 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
15037
15038         * doc/lto.texi: Remove text that says only Gold has linker plugin
15039         support.
15040
15041 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
15042
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
15050         modified_type_die.
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.
15070
15071 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
15072
15073         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
15074         flow throughout the file.  Fix broken link to Objective-C 2.0
15075         documentation.
15076         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
15077         errors.
15078
15079 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
15080
15081         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
15082
15083 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
15084
15085         PR ipa/66223
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.
15090
15091 2016-01-19  Richard Biener  <rguenther@suse.de>
15092
15093         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
15094         (get_memory_order): Likewise.
15095
15096 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
15097
15098         * tree-vect-stmts.c (vectorizable_store): Check
15099         rhs vectype.
15100
15101 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
15102
15103         PR jit/68446
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.
15114
15115 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15116
15117         PR target/69135
15118         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
15119         attribute to unconditional.  Remove %? from output template.
15120
15121 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
15122             Jiong Wang  <jiong.wang@arm.com>
15123
15124         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
15125         generated from different expand order.
15126
15127 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
15128
15129         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
15130         Add support for CCMP costing.
15131
15132 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
15133
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.
15138         (fcmpe): Likewise.
15139         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
15140         (aarch64_gen_ccmp_next): Add FP support.
15141
15142 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
15143
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.
15170
15171 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
15172
15173         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
15174         instrumented_version.
15175
15176 2016-01-19  Richard Biener  <rguenther@suse.de>
15177
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.
15182
15183 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
15184
15185         PR debug/65779
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.
15195
15196 2016-01-19  Richard Biener  <rguenther@suse.de>
15197
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.
15202
15203 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
15204
15205         * ira.c (ira): Update regstat data if we deleted insns.
15206
15207 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
15208
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.
15214
15215 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
15216
15217         PR lto/69133
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
15221         check.
15222
15223 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
15224
15225         * lto-streamer-out.c (lto_output): Do not stream instrumentation
15226         thunks.
15227
15228 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
15229
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.
15232
15233 2016-01-19  Martin Jambor  <mjambor@suse.cz>
15234             Martin Liska  <mliska@suse.cz>
15235             Michael Matz  <matz@suse.de>
15236
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
15293         constructs.
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.
15360         * hsa.c: Likewise.
15361         * hsa.h: Likewise.
15362         * toplev.c (compile_file): Call hsa_output_brig.
15363         * hsa-regalloc.c: New file.
15364
15365 2016-01-18  Jeff Law  <law@redhat.com>
15366
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.
15372
15373         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
15374         test.
15375
15376 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
15377
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
15385         new section.
15386         (Developer Options): New section incorporating moved options.
15387         * doc/cppopts.texi (-dM): Update cross-reference.
15388
15389 2016-01-18  Richard Henderson  <rth@redhat.com>
15390
15391         PR target/69176
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.
15403
15404 2016-01-18  Richard Biener  <rguenther@suse.de>
15405
15406         PR tree-optimization/69297
15407         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
15408         stmt at most once.
15409         (vect_bb_vectorization_profitable_p): Clear visited flag again.
15410
15411 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
15412
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
15423         valid type of VAL.
15424
15425 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
15426
15427         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
15428         !TARGET_OCTEON.
15429
15430 2016-01-18  Richard Biener  <rguenther@suse.de>
15431
15432         PR middle-end/69308
15433         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
15434
15435 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15436
15437         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
15438
15439 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15440
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.
15459
15460 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15461
15462         * tree-parloops.c (pass_parallelize_loops::execute): Allow
15463         pass_parallelize_loops to be run outside the loop pipeline.
15464
15465 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15466
15467         * tree-scalar-evolution.c (follow_copies_to_constant): New.
15468         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
15469
15470 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15471
15472         PR target/63679
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.
15477
15478 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15479
15480         PR target/63679
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.
15493
15494 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
15495
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.
15500
15501 2016-01-18  Richard Biener  <rguenther@suse.de>
15502
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.
15506
15507 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
15508
15509         * haifa-sched.c (autopref_multipass_init): Work around
15510         -Wmaybe-uninitialized warning.
15511
15512 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15513
15514         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
15515         against the constant 0.
15516
15517 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15518
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.
15527
15528 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
15529
15530         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
15531         -Wmaybe-uninitialized warning.
15532
15533 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
15534
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.
15545
15546 2016-01-16  Tom de Vries  <tom@codesourcery.com>
15547
15548         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
15549
15550 2016-01-16  Tom de Vries  <tom@codesourcery.com>
15551
15552         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
15553
15554 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
15555
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.
15560
15561 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
15562
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.
15567
15568 2016-01-15  Jeff Law  <law@redhat.com>
15569
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.
15577
15578 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
15579
15580         PR rtl-optimization/69030
15581         * lra-spills.c (remove_pseudos): Check nrefs and make the function
15582         returning bool.
15583         (spill_pseudos): Delete debug insn for dead pseudo.
15584         (lra_spill): Initiate spill_hard_reg and slots memory separately.
15585
15586 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
15587
15588         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
15589         New.
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
15616         conversion.
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.
15639
15640 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15641
15642         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
15643         CSEL of zero_extended registers.
15644
15645 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15646
15647         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
15648         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
15649
15650 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15651
15652         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
15653         false when argument string is not found in the attributes table
15654         at all.
15655
15656 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
15657
15658         PR target/68609
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.
15663
15664 2016-01-15  Richard Biener  <rguenther@suse.de>
15665
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.
15677
15678 2016-01-15  Richard Biener  <rguenther@suse.de>
15679
15680         PR debug/69137
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
15685         if necessary.
15686
15687 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
15688
15689         * gimplify.c (oacc_default_clause): Decode reference and pointer
15690         types for both kernels and parallel regions.
15691
15692 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
15693
15694         PR middle-end/69246
15695         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
15696
15697 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
15698
15699         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
15700         (convert_scalars_to_vector): Likewise.
15701
15702 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
15703
15704         * doc/extend.texi (Type Traits): Fix grammar.
15705
15706 2016-01-15  Martin Jambor  <mjambor@suse.cz>
15707
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
15715         padding.
15716
15717 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15718
15719         * config/s390/s390.opt (mmvcle): More verbose help text.
15720
15721 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15722
15723         * config/s390/s390.opt: Add period to -mzvector option text.
15724
15725 2016-01-15  Richard Biener  <rguenther@suse.de>
15726
15727         PR tree-optimization/68961
15728         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
15729         of invariants in stores again.
15730
15731 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15732
15733         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
15734
15735 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
15736
15737         * config/i386/i386.c (ix86_expand_branch): Don't split
15738         DI mode xor instruction to SI mode.
15739
15740 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
15741
15742         PR ipa/68148
15743         * ipa-icf.c (sem_function::merge): Virtual functions may become
15744         reachable even if they address is not taken and there are no
15745         idrect calls.
15746
15747 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
15748
15749         * lto-streamer-out.c (subtract_estimated_size): New function.
15750         (get_symbol_initial_value): Use it.
15751
15752 2016-01-15  Christian Bruel  <christian.bruel@st.com>
15753
15754         PR target/65837
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.
15766
15767 2016-01-15  Richard Biener  <rguenther@suse.de>
15768
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.
15774
15775 2016-01-14  Jeff Law  <law@redhat.com>
15776
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.
15782
15783 2016-01-14  Richard Henderson  <rth@redhat.com>
15784
15785         PR rtl-opt/69014
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.
15790
15791 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15792
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.
15798
15799 2016-01-14  Jeff Law  <law@redhat.com>
15800
15801         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
15802         typo.
15803
15804 2016-01-14  Richard Henderson  <rth@redhat.com>
15805
15806         PR c/69272
15807         PR tree-opt/68964
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.
15811
15812 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
15813
15814         * doc/loop.texi (Loop Analysis and Representation): Document
15815         loop_depth function.
15816
15817 2016-01-14  Tom de Vries  <tom@codesourcery.com>
15818
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.
15824
15825 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15826
15827         PR debug/69244
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.
15832
15833 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15834
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.
15846
15847 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15848
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.
15855
15856 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
15857
15858         * alias.c (compare_base_symbol_refs): New function.
15859         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
15860         it.
15861
15862 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15863
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.
15877
15878 2016-01-14  Richard Biener  <rguenther@suse.de>
15879
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.
15884
15885 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15886
15887         PR target/68269
15888         * combine.c (expand_field_assignment): Punt if compute_mode is
15889         unsupported scalar mode.
15890
15891 2016-01-14  Richard Biener  <rguenther@suse.de>
15892
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.
15897
15898 2016-01-14  Jeff Law  <law@redhat.com>
15899
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.
15904
15905 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
15906
15907         PR ipa/66487
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.
15911
15912 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15913
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.
15917         Update references.
15918
15919 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15920
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.
15924
15925 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15926
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.
15930
15931 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
15932
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.
15937
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.
15943
15944         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
15945         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
15946         functions
15947         (RS6000_BTM_COMMON): Likewise.
15948
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.
15961
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.
15965
15966         * doc/extend.texi (PowerPC Built-in Functions): Document
15967         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
15968
15969 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
15970
15971         PR c/66208
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.
15979
15980 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
15981
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.
15988
15989 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15990
15991         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
15992         effects.
15993
15994 2016-01-13  Richard Henderson  <rth@redhat.com>
15995
15996         PR tree-opt/68964
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.
16005
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
16011         via target hook.
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.
16019
16020 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
16021
16022         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
16023         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
16024
16025 2016-01-13  Tom de Vries  <tom@codesourcery.com>
16026
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.
16032
16033 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
16034
16035         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
16036         and "armv8.1-a+crc" entries.
16037
16038 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
16039
16040         PR target/69228
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.
16053
16054 2016-01-13  Richard Biener  <rguenther@suse.de>
16055
16056         PR tree-optimization/69013
16057         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
16058         Exchange assert for a test.
16059
16060 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16061
16062         PR target/69247
16063         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
16064
16065 2016-01-13  Richard Biener  <rguenther@suse.de>
16066
16067         PR tree-optimization/69242
16068         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
16069         assert with a check.
16070
16071 2016-01-13  Richard Biener  <rguenther@suse.de>
16072
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.
16076
16077 2016-01-12  Jeff Law  <law@redhat.com>
16078
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
16086         needed.
16087
16088 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
16089
16090         * doc/invoke.texi (Spec Files): Move section down in file, past
16091         all command-line option descriptions.
16092
16093 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16094
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.
16101
16102 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
16103
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.
16109
16110 2016-01-12  Jeff Law  <law@redhat.com>
16111
16112         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
16113
16114 2016-01-12  Olivier Hainque  <hainque@adacore.com>
16115
16116         * gcc.c (spec_undefvar_allowed): New global.
16117         (process_command): Set to true when running for --version or --help,
16118         alone or together.
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
16121         a fatal error.
16122
16123 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
16124
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".
16128
16129 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
16130
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.
16135
16136 2016-01-12  Christian Bruel  <christian.bruel@st.com>
16137
16138         PR target/69180
16139         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
16140         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
16141
16142 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
16143
16144         PR target/69198
16145         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
16146         aligned_mem is properly set for AVX512-VL floating point masked
16147         stores.
16148
16149         PR target/69175
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.
16152
16153 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
16154
16155         PR target/68456
16156         PR target/69226
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.
16162
16163 2016-01-12  Richard Biener  <rguenther@suse.de>
16164
16165         PR tree-optimization/69053
16166         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
16167         convert initial value for cond reductions.
16168
16169 2016-01-12  Richard Biener  <rguenther@suse.de>
16170
16171         PR tree-optimization/69007
16172         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
16173         widen_sum after dot_prod and sad.
16174
16175 2016-01-12  Richard Biener  <rguenther@suse.de>
16176
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.
16182
16183 2016-01-12  Richard Biener  <rguenther@suse.de>
16184
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.
16196
16197 2016-01-12  Richard Biener  <rguenther@suse.de>
16198
16199         PR tree-optimization/69174
16200         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
16201         space.
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.
16205
16206 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
16207
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
16227
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.
16239
16240         * config/i386/djgpp.c: New file. Add implementation of
16241         i386_djgpp_asm_named_section.
16242
16243         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
16244
16245         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
16246         Add rule for building djgpp.o.
16247
16248 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16249
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.
16253
16254 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
16255
16256         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
16257         reloads for other unsupported memory operands.
16258
16259 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
16260             Jim Wilson  <jim.wilson@linaro.org>
16261
16262         PR target/69194
16263         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
16264         copy_to_mode_reg instead of force_reg.
16265
16266 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
16267
16268         PR target/69225
16269         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
16270         TARGET_80387 is true.
16271
16272 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
16273
16274         PR target/69071
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.
16279
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.
16285
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.
16289         Formatting fix.
16290
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.
16296
16297 2016-01-11  Richard Biener  <rguenther@suse.de>
16298
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.
16302
16303 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
16304
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.
16310
16311 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16312
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.
16318
16319 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
16320
16321         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
16322         (<avx512>_store<mode>_mask): Likewise.
16323
16324 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
16325             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16326
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.
16335
16336 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16337
16338         PR tree-optimization/69069
16339         * tree-parloops.c (create_parallel_loop): Add missing phi args.
16340
16341 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
16342
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
16351         RTL if-conversion.
16352         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
16353         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
16354         conditionl moves.
16355
16356 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
16357
16358         PR bootstrap/69123
16359         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
16360         onepart vars.  Fix typo in comment.  Fix reversed condition in
16361         unshare test.
16362         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
16363
16364         PR bootstrap/69123
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.
16369
16370 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
16371
16372         PR target/69010
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.
16378
16379 2016-01-11  Martin Jambor  <mjambor@suse.cz>
16380
16381         PR ipa/69044
16382         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
16383         useless parameters if we cannot change function signature.
16384
16385 2016-01-11  Martin Jambor  <mjambor@suse.cz>
16386
16387         PR ipa/66616
16388         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
16389         flag.
16390
16391 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16392
16393         PR tree-optimization/69109
16394         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
16395         latch with phi.
16396
16397 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16398
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.
16402
16403 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
16404
16405         PR 67425
16406         * common.opt (frandom-seed): Fix parameter name.
16407         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
16408
16409 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16410
16411         PR tree-optimization/69058
16412         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
16413         not supported.
16414
16415 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
16416
16417         * config/arc/arc.opt (mdiv-rem): Add period to the end.
16418         (mcode-density): Likewise.
16419
16420 2016-01-10  Tom de Vries  <tom@codesourcery.com>
16421
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
16425         arg.
16426
16427 2016-01-10  Tom de Vries  <tom@codesourcery.com>
16428
16429         PR tree-optimization/69039
16430         * tree-parloops.c (try_create_reduction_list): Only allow single exit
16431         phi for reduction.
16432
16433 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
16434
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.
16438
16439 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
16440
16441         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
16442         use GMPINC.
16443         * configure: Regenerate.
16444
16445 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
16446
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.
16460
16461 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
16462
16463         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
16464         w/o DECL_NAME.
16465
16466 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16467
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
16471         ops[0] comparison.
16472         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
16473
16474 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
16475             Richard Biener  <rguenther@suse.de>
16476
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.
16480
16481 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
16482
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.
16487
16488 2016-01-08  Jason Merrill  <jason@redhat.com>
16489
16490         PR c++/68983
16491         PR c++/67557
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.
16497
16498 2016-01-08  Olivier Hainque  <hainque@adacore.com>
16499
16500         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
16501         libc_internal.
16502
16503 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
16504
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.
16511
16512 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16513
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.
16521
16522         PR tree-optimization/69172
16523         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
16524         gimple_build.
16525
16526 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16527
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.
16533
16534 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16535
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.
16541
16542 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
16543
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.
16550
16551 2016-01-07  Martin Sebor  <msebor@redhat.com>
16552
16553         PR c/68966
16554         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
16555         constraint on the type of arguments.
16556
16557 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
16558
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.
16564
16565 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
16566
16567         PR target/69140
16568         * config/i386/i386.c (ix86_frame_pointer_required): Enable
16569         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
16570
16571 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
16572
16573         Revert
16574         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
16575
16576         PR target/69140
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.
16580
16581 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
16582
16583         PR 1078
16584         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
16585
16586 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
16587
16588         PR target/69171
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):
16592         Likewise.
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
16601         predicate.
16602
16603 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
16604
16605         PR middle-end/67639
16606         * varasm.c (make_decl_rtl): Mark invalid register vars as
16607         DECL_EXTERNAL.
16608
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.
16612
16613 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
16614
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 ().
16620
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.
16624
16625 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
16626
16627         * config/mips/mips-ftypes.def: Sort to lexicographical order.
16628
16629 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
16630
16631         PR target/69140
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.
16635
16636 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16637
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.
16647
16648 2016-01-06  Marek Polacek  <polacek@redhat.com>
16649
16650         PR sanitizer/69099
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.
16656
16657 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16658
16659         PR 1078
16660         * doc/extend.texi (RL78 Variable Attributes): New section.
16661
16662 2016-01-05  Marek Polacek  <polacek@redhat.com>
16663
16664         PR c/69104
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.
16671
16672 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
16673
16674         PR target/68991
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
16679         vector_operand.
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.
16687
16688 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
16689
16690         PR target/68991
16691         * config/i386/constraints.md (Bm): New constraint.
16692         * config/i386/predicates.md (vector_memory_operand): New
16693         predicate.
16694         * config/i386/sse.md: Replace xm with xBm in plusminus and
16695         any_logic patterns.
16696
16697 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16698
16699         PR 1078
16700         * doc/extend.texi (V850 Function Attributes): New section.
16701         (V850 Variable Attributes): New section.
16702
16703 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16704
16705         PR 1078
16706         * doc/extend.texi (MicroBlaze Function Attributes): Document
16707         interrupt_handler and fast_interrupt attributes.
16708
16709 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
16710
16711         PR other/60465
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
16715         predicate.
16716
16717 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16718
16719         PR rtl-optimization/68651
16720         * combine.c (combine_simplify_rtx): Canonicalize x + x into
16721         x << 1.
16722
16723 2016-01-05  Nathan Sidwell  <nathan@acm.org>
16724
16725         * alias.c (compare_base_decls): Use symtab_node::get.
16726
16727 2016-01-05  Nick Clifton  <nickc@redhat.com>
16728
16729         PR target/68770
16730         * ira-costs.c (copy_cost): Initialise the t_icode field of the
16731         secondary_reload_info structure.
16732
16733         PR target/66655
16734         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
16735         decls if weak support is available.
16736
16737 2016-01-04  Martin Sebor  <msebor@redhat.com>
16738
16739         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
16740
16741 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
16742
16743         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
16744         OPTION_MASK_P9_DFORM.
16745
16746         * config/rs6000/constraints.md (wo constraint): New constraint for
16747         ISA 3.0 (power9).
16748
16749         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
16750         for wo constraint.
16751         (rs6000_init_hard_regno_mode_ok): Likewise.
16752
16753         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
16754         wo constraint.
16755
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.
16765
16766         * doc/md.texi (RS/6000 constraints): Document wo constraint.
16767
16768 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
16769
16770         Update copyright years.
16771
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.
16784
16785 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16786
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.
16789
16790 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16791
16792         PR target/69100
16793         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
16794         mode for %f0-%f31 only if TARGET_FPU.
16795
16796 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16797
16798         PR target/69072
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.
16802
16803 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16804
16805         * doc/install.texi (--with-multilib-list): Describe the meaning of the
16806         option for arm*-*-* targets.
16807
16808 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
16809
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
16816         attribute docs.
16817
16818 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
16819
16820         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
16821         -finite-math typo.
16822         (x86 Options): Likewise.
16823
16824 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16825
16826         PR 1078
16827
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.
16831
16832 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16833
16834         * doc/extend.texi (Common Function Attributes) <noplt>: Move
16835         to correct alphabetization of table.  Copy-edit and correct
16836         markup.
16837         <stack_protect>: Likewise.
16838         <target_clones>: Likewise.
16839         <simd>: Likewise.
16840         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
16841         Correct punctuation.
16842         (Code Gen Options) <-fno-plt>: Copy-edit.
16843
16844 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16845
16846         PR target/68917
16847         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
16848         SI values.  Explicitly convert SI to DI and vice-versa.
16849
16850 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
16851
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.
16855
16856         PR sanitizer/69055
16857         * ubsan.c (ubsan_instrument_float_cast): Call
16858         initialize_sanitizer_builtins.
16859
16860         PR target/69015
16861         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
16862 \f
16863 Copyright (C) 2016 Free Software Foundation, Inc.
16864
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.