gcc/ChangeLog:
[official-gcc.git] / gcc / ChangeLog
blob4c3a0314490273c9819c38f210d995bf4e69e341
1 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
3         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
4         r236875. Corrected oe3 to oe2 as obvious.
6 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
8         PR middle-end/71269
9         PR middle-end/71252
10         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
11         that inserted stmt will not dominate stmts that defines its operand.
12         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
13         (rewrite_expr_tree_parallel): Likewise.
15 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
17         PR middle-end/71252
18         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
19         all fields including stmt_to_insert are swapped.
21 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
23         * predict.h (force_edge_cold): Declare.
24         * predict.c (force_edge_cold): New function.
25         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
26         updating.
27         (canonicalize_loop_induction_variables): Fix formating.
29 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
31         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
32         (visium_expand_copysign): Use gen_int_mode directly.
33         (visium_compute_frame_size): Minor tweaks.
35 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
37         * tree-vect-loop.c (vect_analyze_loop_2): Use
38         likely_max_stmt_executions_int.
40 2016-05-30  Tom de Vries  <tom@codesourcery.com>
42         PR tree-optimization/69067
43         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
45 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
47         PR target/71245
48         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
49         New peepholes to remove unneeded fild/fistp pairs.
50         (define_peephole2 atomic_loaddi_fpu): Ditto.
52 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
54         * predict.c (maybe_hot_frequency_p): Avoid division.
56 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
58         * doc/install.texi: Use https for shop.fsf.org.
60 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
62         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
63         likely_max_stmt_executions_int.
65 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
67         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
68         likely_max_stmt_executions_int.
70 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
72         * profile.c (compute_branch_probabilities): Do not report hitrates
73         here.
74         (branch_prob): Report hitrates here.
75         * predict.c (gimple_predict_edge): Do not assert profile status;
76         fix formatting issues.
78 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
80         * predict.c (edge_predicted_by_p): New function.
81         (predict_paths_for_bb): Do not put multiple predictions of the same type
82         on one edge.
84 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
86         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
87         commit.
89 2016-05-28  Alan Modra  <amodra@gmail.com>
91         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
93 2016-05-28  Alan Modra  <amodra@gmail.com>
95         PR rtl-optimization/71275
96         * ira.c (ira): Free dominance info.
98 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
100         * doc/sourcebuild.texi: New address for upstream Go repository.
102 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
104         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
105         (TARGET_ARM_V7M): Likewise.
107 2016-05-26  Jeff Law  <law@redhat.com>
109         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
110         (thread_across_edge): Remove calls to find_jump_threads_backwards.
111         * passes.def: Add jump threading passes before DOM/VRP.
112         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
113         argument to a basic block from an edge.  Remove tests which are
114         handled elsewhere.
115         (pass_data_thread_jumps, class pass_thread_jumps): New.
116         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
117         (make_pass_thread_jumps): Likewise.
118         * tree-pass.h (make_pass_thread_jumps): Declare.
120 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
122         * config/visium/visium-protos.h (split_double_move): Rename into...
123         (visium_split_double_move): ...this.
124         (visium_split_double_add): Declare.
125         * config/visium/visium.c (split_double_move): Rename into...
126         (visium_split_double_move): ...this.
127         (visium_split_double_add): New function.
128         (visium_expand_copysign): Renumber operands for consistency.
129         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
130         (DFmode move splitter): Likewise.
131         (*addi3_insn): Split by means of visium_split_double_add.
132         (*adddi3_insn_flags): Delete.
133         (*plus_plus_sltu<subst_arith>): New insn.
134         (*subdi3_insn): Split by means of visium_split_double_add.
135         (subdi3_insn_flags): Delete.
136         (*minus_minus_sltu<subst_arith>): New insn.
137         (*negdi2_insn): Split by means of visium_split_double_add.
138         (*negdi2_insn_flags): Delete.
140 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
142         * configure.ac: Treat a --with-headers option without argument
143         the same as the default (i.e. consult sys-include directory).
144         * configure: Regenerate.
146 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
148         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
149         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
150         prototype.
151         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
152         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
154 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
156         PR target/63596
157         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
158         tree-stdarg analysis results.
159         (aarch64_setup_incoming_varargs): Likewise.
161 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
163         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
164         va_list_gpr_counter_field and va_list_fpr_counter_field.
166 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
168         PR67609
169         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
170         * config/aarch64/aarch64.c
171         (aarch64_cannot_change_mode_class): Remove function.
172         * config/aarch64/aarch64-protos.h
173         (aarch64_cannot_change_mode_class): Remove.
175 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
177         * cfgloop.c (record_niter_bound): Record likely upper bounds.
178         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
179         get_likely_max_loop_iterations_int): New.
180         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
181         any_likely_upper_bound.
182         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
183         Declare.
184         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
185         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
186         upper bound.
187         (unroll_loop_constant_iterations): Likewise.
188         (unroll_loop_runtime_iterations): Likewise.
189         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
190         * lto-streamer-out.c (output_cfg): Likewise.
191         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
192         bounds.
193         (canonicalize_loop_induction_variables): Dump likely upper bounds.
194         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
195         (likely_max_loop_iterations): New.
196         (likely_max_loop_iterations_int): New.
197         (likely_max_stmt_executions): New.
198         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
199         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
200         likely_max_stmt_executions): Declare.
202 2016-05-27  Marek Polacek  <polacek@redhat.com>
204         PR middle-end/71308
205         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
207 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
209         * config/s390/s390.md (2x risbg splitters): Use
210         reg_overlap_mentioned_p instead of rtx_equal_p.
212 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
214         * combine.c (make_compound_operation): Take known zero bits into
215         account when checking for possible zero_extend.
217 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
219         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
220         Use const_int_operand for operand 2 predicate.  Simplify expand code
221         as a result.
223 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
225         PR middle-end/71279
226         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
227         into comparison.
229 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
231         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
232         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
233         that returns CC_SESWPmode and CC_ZESWPmode.
234         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
235         and CC_SESWPmode.
236         (aarch64_rtx_costs): Likewise.
238 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
240         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
241         for ISA 3.0 min/max support.
242         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
243         conditional move support.
244         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
245         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
246         available.
247         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
248         conditional moves where the comparison type is different from move
249         type.
250         (fp_minmax): New code iterator for smin/smax.
251         (minmax): New code attributes for min/max.
252         (SMINMAX): Likewise.
253         (smax<mode>3): Combine min, max insns into one insn using the
254         fp_minmax code iterator.  Add support for ISA 3.0 min/max
255         instructions that don't need -ffast-math.
256         (s<minmax><mode>3): Likewise.
257         (smax<mode>3_vsx): Likewise.
258         (smin<mode>3): Likewise.
259         (s<minmax><mode>3_vsx): Likewise.
260         (smin<mode>3_vsx): Likewise.
261         (pre-VSX min/max splitters): Likewise.
262         (s<minmax><mode>3_fpr): Likewise.
263         (movsfcc): Rewrite floating point conditional moves to combine
264         SFmode/DFmode into a single insn.
265         (mov<mode>cc): Likewise.
266         (movdfcc): Likewise.
267         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
268         SFDF2 iterators to handle all combinations.
269         (fseldfsf4): Likewise.
270         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
271         (fseldfdf4): Likewise.
272         (fselsfdf4): Likewise.
273         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
274         comparison instructions that set a 0/-1 mask, and use it for
275         floating point conditional move via XXSEL.
276         (fpmask<mode>): Likewise.
277         (xxsel<mode>): Likewise.
278         * config/rs6000/predicates.md (min_max_operator): Delete, no
279         longer used.
280         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
281         instructions that generate a 0/-1 mask for use with XXSEL.
282         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
283         say whether floating point min/max is available, either through
284         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
285         (TARGET_MINMAX_DF): Likewise.
287 2016-05-27  Alan Modra  <amodra@gmail.com>
289         PR rtl-optimization/71275
290         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
291         for update_equiv_regs and combine_and_move_insns.
293 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
295         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
296         if_then_else or cond RTXes to calculate attribute value.
297         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
298         <attr "length_immediate>: Ditto.
299         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
300         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
301         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
302         <attr "type">: Ditto.
303         <attr "prefix_data16">: Ditto.
304         <attr "prefix_extra">: Ditto.
305         <attr "length_immediate">: Ditto.
306         <attr "prefix">: Ditto.
307         (vec_set<mode>_0) <attr "isa">: Ditto.
308         <attr "prefix_extra">: Ditto.
309         <attr "length_immediate">: Ditto.
310         <attr "prefix">: Ditto.
311         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
312         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
313         (sse2_storelpd) <attr "prefix_data16">: Ditto.
314         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
315         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
316         <attr "length_immediate">: Ditto.
317         <attr "prefix">: Ditto.
318         (sse2_movsd) <attr "length_immediate">: Ditto.
319         <attr "prefix">: Ditto.
320         (vec_concatv2df)  <attr "isa">: Ditto.
321         <attr "prefix">: Ditto.
322         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
323         (*vec_extractv2di_1) <attr "isa">: Ditto.
324         <attr "type">: Ditto.
325         <attr "length_immediate">: Ditto.
326         <attr "prefix_rex">: Ditto.
327         <attr "prefix_extra">: Ditto.
328         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
329         <attr "prefix_extra">: Ditto.
330         <attr "length_immediate">: Ditto.
331         (vec_concatv2di) <attr "isa">: Ditto.
332         <attr "prefix_extra">: Ditto.
333         <attr "length_immediate">: Ditto.
334         <attr "prefix">: Ditto.
336 2016-05-26  Martin Liska  <mliska@suse.cz>
338         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
339         function.
340         (operator+): Likewise.
341         (operator-): Likewise.
342         (comp_cost::operator+=): Likewise.
343         (comp_cost::operator-=): Likewise.
344         (comp_cost::operator/=): Likewise.
345         (comp_cost::operator*=): Likewise.
346         (operator<): Likewise.
347         (operator==): Likewise.
348         (operator<=): Likewise.
349         (new_cost): Remove.
350         (infinite_cost_p): Likewise.
351         (add_costs): Likewise.
352         (sub_costs): Likewise.
353         (compare_costs): Likewise.
354         (set_group_iv_cost): Use the newly introduced functions.
355         (get_address_cost): Likewise.
356         (get_shiftadd_cost): Likewise.
357         (force_expr_to_var_cost): Likewise.
358         (split_address_cost): Likewise.
359         (ptr_difference_cost): Likewise.
360         (difference_cost): Likewise.
361         (get_computation_cost_at): Likewise.
362         (determine_group_iv_cost_generic): Likewise.
363         (determine_group_iv_cost_address): Likewise.
364         (determine_group_iv_cost_cond): Likewise.
365         (autoinc_possible_for_pair): Likewise.
366         (determine_group_iv_costs): Likewise.
367         (cheaper_cost_pair): Likewise.
368         (iv_ca_recount_cost): Likewise.
369         (iv_ca_set_no_cp): Likewise.
370         (iv_ca_set_cp): Likewise.
371         (iv_ca_cost): Likewise.
372         (iv_ca_new): Likewise.
373         (iv_ca_dump): Likewise.
374         (iv_ca_narrow): Likewise.
375         (iv_ca_prune): Likewise.
376         (iv_ca_replace): Likewise.
377         (try_add_cand_for): Likewise.
378         (try_improve_iv_set): Likewise.
379         (find_optimal_iv_set): Likewise.
381 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
383         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
384         that internal functions will clobber all caller-saved registers.
386 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
388         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
389         Return a better case_values_threshold when optimizing.
391 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
393         * config/aarch64/aarch64-simd.md (aarch64_combinez):
394         Add ? to integer variant.
395         (aarch64_combinez_be): Likewise.
397 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
399         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
400         instead of x constraint.
401         (vcvtps2ph256<mask_name>): Likewise.
403         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
404         alternative.  Formatting fix.
406         * config/i386/sse.md
407         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
408         to ...
409         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
410         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
411         maybe_evex prefix instead of vex.
412         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
413         EXT_REX_SSE_REG_P (op0) case in the splitter.
415 2016-05-25  Jeff Law  <law@redhat.com>
417         PR tree-optimization/71272
418         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
419         Update comments.  Add test for empty path.
421 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
423         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
424         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
425         special case builtin.
426         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
427         code for ALTIVEC_BUILTIN_VEC_CMPNE.
428         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
429         for __builtin_vec_cmpne.
431 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
433         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
434         redundant test and bail out if the type of the new operand is not
435         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
437 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
439         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
440         (x_ix86_target_flags_explicit): Remove.
441         * config/i386/i386.c (ix86_function_specific_save): Do not copy
442         x_ix86_target_flags_explicit.
443         (ix86_function_specific_restore): Ditto.
445 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
446             H.J. Lu  <hongjiu.lu@intel.com>
448         PR target/70738
449         * common/config/i386/i386-common.c
450         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
451         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
452         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
453         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
454         (-mgeneral-regs-only): Add new option.
455         * config/i386/i386.c (ix86_option_override_internal): Don't enable
456         x87 instructions if only general registers are allowed.
457         (ix86_target_string): Add ix86_flags argument. Handle additional
458         flags options through ix86_flags argument.  Update all callers.
459         * doc/invoke.texi: Document -mgeneral-regs-only.
461 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
463         PR rtl-optimization/66940
464         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
465         decrementing desired_val will not overflow before performing these
466         operations.
468 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
470         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
471         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
472         * config/i386/i386.c (enum ix86_builtins): Add
473         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
474         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
475         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
476         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
477         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
478         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
479         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
480         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
481         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
482         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
483         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
484         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
485         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
486         __builtin_ia32_cvtps2dq512_mask.
487         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
488         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
489         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
490         * config/i386/sse.md
491         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
492         Rename to ...
493         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
494         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
495         to ...
496         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
497         (avx512f_vec_pack_sfix_v8df): New define_expand.
498         (avx512f_roundpd512): Rename to ...
499         (avx512f_round<castmode>512): ... this.  Change iterator.
500         (avx512f_roundps512_sfix): New define_expand.
501         (round<mode>2_sfix): Change iterator.
503 2016-05-25  Nick Clifton  <nickc@redhat.com>
505         * config/msp430/msp430.c (msp430_attr): Produce an error if a
506         static interrupt handler is detected.
507         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
508         default linker script.
509         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
510         the low part of a symbolic pointer.
512 2016-05-25  Richard Biener  <rguenther@suse.de>
514         PR tree-optimization/71261
515         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
516         interesting stmt instead of immediate uses when looking
517         for the use operand to replace.
519 2016-05-25  Martin Liska  <mliska@suse.cz>
521         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
523 2016-05-25  Richard Biener  <rguenther@suse.de>
525         PR tree-optimization/71264
526         * tree-vect-stmts.c (vect_init_vector): Properly deal with
527         vector type val.
529 2016-05-25  Martin Liska  <mliska@suse.cz>
531         PR tree-optimization/71239
532         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
533         if DECL_SIZE is NULL.
535 2016-05-25  Richard Biener  <rguenther@suse.de>
537         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
538         * tree-if-conv.c (pass_data_if_conversion): Use it.
540 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
542         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
543         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
544         * varpool.c (varpool_node::get_availability): Likewise.
546 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
548         * config/rs6000/altivec.md (VNEG iterator): New iterator for
549         VNEGW/VNEGD instructions.
550         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
551         (neg<mode>2): Add expander for V2DImode added in ISA 2.06, and
552         support for ISA 3.0 VNEGW/VNEGD instructions.
554 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
556         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
557         pointers inside OACC_DATA regions.
558         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
559         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
560         (gimplify_adjust_omp_clauses): Fix typo in comment.
562 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
564         * config/rs6000/altivec.md (VParity): New mode iterator for vector
565         parity built-in functions.
566         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
567         zeros.
568         (p9v_parity<mode>2): Likewise.
569         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
570         parity.
571         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
572         (parity<mode>2): ISA 3.0 expander for vector parity.
573         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
574         power9 built-ins.
575         (BU_P9_64BIT_MISC_0): Likewise.
576         (BU_P9_MISC_0): Likewise.
577         (BU_P9V_AV_1): Likewise.
578         (BU_P9V_AV_2): Likewise.
579         (BU_P9V_AV_3): Likewise.
580         (BU_P9V_AV_P): Likewise.
581         (BU_P9V_VSX_1): Likewise.
582         (BU_P9V_OVERLOAD_1): Likewise.
583         (BU_P9V_OVERLOAD_2): Likewise.
584         (BU_P9V_OVERLOAD_3): Likewise.
585         (VCTZB): Add vector count trailing zeros support.
586         (VCTZH): Likewise.
587         (VCTZW): Likewise.
588         (VCTZD): Likewise.
589         (VPRTYBD): Add vector parity support.
590         (VPRTYBQ): Likewise.
591         (VPRTYBW): Likewise.
592         (VCTZ): Add overloaded vector count trailing zeros support.
593         (VPRTYB): Add overloaded vector parity support.
594         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
595         overloaded vector count trailing zeros and parity instructions.
596         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
597         vector parity support.
598         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
599         trailing zeros support.
600         (vec_cntlz): Likewise.
601         (vec_vctzb): Likewise.
602         (vec_vctzd): Likewise.
603         (vec_vctzh): Likewise.
604         (vec_vctzw): Likewise.
605         (vec_vprtyb): Add ISA 3.0 vector parity support.
606         (vec_vprtybd): Likewise.
607         (vec_vprtybw): Likewise.
608         (vec_vprtybq): Likewise.
609         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
610         the ISA 3.0 vector count trailing zeros and vector parity built-in
611         functions.
613 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
615         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
616         when there is stmt_to_insert.
618 2016-05-24  Martin Sebor  <msebor@redhat.com>
620         PR c++/71147
621         * tree.h (complete_or_array_type_p): New inline function.
623 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
625         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
626         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
627         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
629         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
630         Limit 1st alternative to noavx isa, split 2nd alternative into one
631         noavx and one avx alternative, use *x and Bm in the former and
632         x and m in the latter.
634         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
635         of sse4 for the first alternative, drop %v from the template
636         and d operand modifier.  Split second alternative into one sse4_noavx
637         and one avx alternative, use *x instead of *v in the former and v
638         instead of *v in the latter.
639         (*sse4_1_extractps): Use noavx isa instead of * for the first
640         alternative, drop %v from the template.  Split second alternative into
641         one noavx and one avx alternative, use *x instead of *v in the
642         former and v instead of *v in the latter.
643         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
644         with noavx and the last one with avx.
645         (sse4_1_phminposuw): Guard first alternative with noavx isa,
646         split the second one into one noavx and one avx alternative,
647         use *x and Bm in the former and x and m in the latter one.
648         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
649         alternatives.
651         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
652         first two alternatives to noavx, use *x instead of *v in the second
653         one, add avx alternative without *.
654         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
655         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
656         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
658 2016-05-24  Jeff Law  <law@redhat.com>
660         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
661         New function, extracted from...
662         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
663         Allow simple copies and constant initializations in the SSA chain.
665 2016-05-24  Marek Polacek  <polacek@redhat.com>
667         PR c/71249
668         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
669         scope.
671 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
673         PR c++/71257
674         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
675         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
676         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
677         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
678         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
680 2016-05-24  Richard Biener  <rguenther@suse.de>
682         PR tree-optimization/71240
683         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
684         has integral type.
686 2016-05-24  Richard Biener  <rguenther@suse.de>
688         PR tree-optimization/71230
689         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
691 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
693         * tree-vectorizer.h (vectorizable_comparison): Delete.
694         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
695         PURE_SLP_STMT check.
696         * tree-vect-stmts.c (vectorizable_call): Likewise.
697         (vectorizable_simd_clone_call): Likewise.
698         (vectorizable_conversion): Likewise.
699         (vectorizable_assignment): Likewise.
700         (vectorizable_shift): Likewise.
701         (vectorizable_operation): Likewise.
702         (vectorizable_load): Likewise.
703         (vectorizable_condition): Likewise.
704         (vectorizable_store): Likewise.  Assert that we don't have
705         hybrid SLP.
706         (vectorizable_comparison): Make static.  Remove redundant
707         PURE_SLP_STMT check.
708         (vect_transform_stmt): Assert that we always have an slp_node
709         if PURE_SLP_STMT.
711 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
713         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
714         operands[2] against 1 with comparison against CONST1_RTX.
715         (<shift>di3_neon): Likewise.
716         * config/arm/predicates.md (const0_operand): Replace with comparison
717         against CONST0_RTX.
719 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
721         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
722         operands[2] against 1 with comparison against CONST1_RTX.
723         (ashrdi3): Likewise.
724         (lshrdi3): Likewise.
725         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
726         UINTVAL.
727         (ashrsi3): Likewise.
728         (lshrsi3): Likewise.
729         (rotrsi3): Likewise.
730         (define_split above *compareqi_eq0): Likewise.
731         (define_split above "prologue"): Likewise.
732         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
733         * config/arm/predicates.md (shift_operator): Likewise.
734         (shift_nomul_operator): Likewise.
735         (sat_shift_operator): Likewise.
736         (thumb1_cmp_operand): Likewise.
737         (const_neon_scalar_shift_amount_operand): Replace manual range
738         check with IN_RANGE.
739         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
740         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
742 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
744         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
745         with HOST_WIDE_INT_1.
746         (insv): Likewise.
747         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
748         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
749         (arm_canonicalize_comparison): Likewise.
750         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
751         HOST_WIDE_INT_1.
752         (thumb1_size_rtx_costs): Likewise.
753         (vfp_const_double_index): Replace cast of 1 to unsigned
754         HOST_WIDE_INT with HOST_WIDE_INT_1U.
755         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
756         HOST_WIDE_INT_1.
757         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
758         HOST_WIDE_INT with HOST_WIDE_INT_1U.
759         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
760         HOST_WIDE_INT with HOST_WIDE_INT_1.
762 2016-05-24  Marek Polacek  <polacek@redhat.com>
764         * tree-cfg.h (should_remove_lhs_p): New predicate.
765         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
766         * gimplify.c (gimplify_modify_expr): Likewise.
767         * tree-cfg.c (verify_gimple_call): Likewise.
768         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
769         * gimple-fold.c: Include "tree-cfg.h".
770         (gimple_fold_call): Use should_remove_lhs_p.
772 2016-05-24  Richard Biener  <rguenther@suse.de>
774         PR tree-optimization/71253
775         * cfganal.h (control_dependences): Make robust against edge
776         and BB removal.
777         (control_dependences::control_dependences): Remove edge_list argument.
778         (control_dependences::get_edge): Remove.
779         (control_dependences::get_edge_src): Add.
780         (control_dependences::get_edge_dest): Likewise.
781         (control_dependences::m_el): Make a vector of edge src/dest index.
782         * cfganal.c (control_dependences::find_control_dependence): Adjust.
783         (control_dependences::control_dependences): Likewise.
784         (control_dependences::~control_dependence): Likewise.
785         (control_dependences::get_edge): Remove.
786         (control_dependences::get_edge_src): Add.
787         (control_dependences::get_edge_dest): Likewise.
788         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
789         get_edge_src.
790         (perform_tree_ssa_dce): Adjust.
791         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
792         get_edge_src.
793         (pass_loop_distribution::execute): Adjust.  Do loop destroying
794         conditional on changed.
796 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
798         PR target/69857
799         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
800         return.  Reindent transformation comment and mention the ARM state
801         behavior.
803 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
805         PR middle-end/71252
806         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
807         after build_and_add_sum creates new use stmt.
809 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
811         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
812         load_lanes/grouped_load classification comes first.  Don't check
813         whether the vectorization factor is a multiple of the group size
814         for load_lanes.
816 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
818         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
819         GROUP_GAP for single-element interleaving.
820         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
821         variable.
823 2016-05-24  Richard Biener  <rguenther@suse.de>
825         PR middle-end/70434
826         PR c/69504
827         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
828         bases which are accessed with non-invariant indices.
829         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
830         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
832 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
834         PR middle-end/71170
835         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
836         (add_to_ops_vec): Add stmt_to_insert.
837         (add_repeat_to_ops_vec): Init stmt_to_insert.
838         (insert_stmt_before_use): New.
839         (transform_add_to_multiply): Remove mult_stmt insertion and add it
840         to ops vector.
841         (get_ops): Init stmt_to_insert.
842         (maybe_optimize_range_tests): Likewise.
843         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
844         (rewrite_expr_tree_parallel): Likewise.
845         (reassociate_bb): Likewise.
847 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
849         PR target/71201
850         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
851         ISA 3.0 xxperm fusion alternative.
852         (altivec_vperm_v8hiv16qi): Likewise.
853         (altivec_vperm_<mode>_uns_internal): Likewise.
854         (vperm_v8hiv4si): Likewise.
855         (vperm_v16qiv8hi): Likewise.
857 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
858             Kelvin Nilsen  <kelvin@gcc.gnu.org>
860         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
861         vpermr/xxpermr on ISA 3.0.
862         (altivec_expand_vec_perm_le): Likewise.
863         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
864         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
865         ISA 3.0.
867 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
869         * config/i386/i386.h (IS_STACK_MODE): Enable for
870         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
871         SSE_FLOAT_MODE_P macros.
872         * config/i386/i386.c (ix86_preferred_reload_class): Use
873         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
874         Cleanup regclass processing for CONST_DOUBLE_P.
875         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
876         (ix86_rtx_costs): Remove redundant TARGET_80387 check
877         with IS_STACK_MODE macro.
878         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
879         with TARGET_SSE2.
880         (*movdf_internal): Use IS_STACK_MODE macro.
881         (*movsf_internal): Ditto.
883 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
885         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
886         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
888 2016-05-23  Jeff Law  <law@redhat.com>
890         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
891         extracted from ...
892         (fsm_find_control_statement_thread_paths): Call it.
894 2016-05-23  Martin Jambor  <mjambor@suse.cz>
896         PR ipa/71234
897         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
898         from_global_constant if t is not NULL.
900 2016-05-23  Marek Polacek  <polacek@redhat.com>
902         PR c/49859
903         * common.opt (Wswitch-unreachable): New option.
904         * doc/invoke.texi: Document -Wswitch-unreachable.
905         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
906         warning.
908 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
910         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
911         TMR_INDEX is non-NULL.
913 2016-05-23  Richard Biener  <rguenther@suse.de>
915         PR tree-optimization/71230
916         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
917         (try_special_add_to_ops): ... here.  Always test for single-use.
919 2016-05-23  Martin Jambor  <mjambor@suse.cz>
921         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
922         default block if a PHI node in the original one would be resized.
924 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
926         PR tree-optimization/58135
927         * tree-vect-slp.c: When group size is not multiple
928         of vector size, allow splitting of store group at
929         vector boundary.
931 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
933         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
935 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
937         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
938         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
939         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
940         of 64x2.
942         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
943         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
944         v constraint instead of x and vinserti32x4 insn.
946         * config/i386/sse.md (i128vldq): New mode iterator.
947         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
948         avx512dq and avx512vl alternatives.
950         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
951         constraint, use maybe_evex prefix instead of vex.
952         (vec_dupv4sf): Use v constraint instead of x for output
953         operand except for noavx alternative, use Yv constraint
954         instead of x for input.  Use maybe_evex prefix instead of vex.
955         (*vec_dupv4si): Likewise.
956         (*vec_dupv2di): Likewise.
958 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
960         PR middle-end/40921
961         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
962         (linearize_expr_tree): Call try_special_add_to_ops.
963         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
965 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
967         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
968         to computed stack_usage.
970 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
972         PR target/71103
973         * config/avr/avr.md (define_expand "mov<mode>"): If the source
974         operand is subreg (symbol_ref) then move the symbol ref to register.
976 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
978         * tree.c (array_at_struct_end_p): Look through MEM_REF.
980 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
982         PR middle-end/71179
983         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
984         VECTOR type.
986 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
988         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
989         ranges by calling get_single_symbol and tidy up.  Look more closely
990         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
992 2016-05-20  Jeff Law  <law@redhat.com>
994         * bitmap.c (bitmap_find_bit): Remove useless test.
996 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
998         * function.c (thread_prologue_and_epilogue_insns): Commit the
999         insertion of the epilogue.
1001 2016-05-20  Martin Jambor  <mjambor@suse.cz>
1003         PR tree-optimization/70884
1004         * tree-sra.c (initialize_constant_pool_replacements): Do not check
1005         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
1006         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
1007         of constant pool data as a reason for scalarization.
1009 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
1011         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
1012         for naked functions.
1013         (thumb1_expand_prologue): Likewise.
1015 2016-05-20  Nathan Sidwell  <nathan@acm.org>
1017         * config/nvptx/nptx.c (nvptx_option_override): Only set
1018         flag_toplevel_reorder, if not explicitly specified.  Set
1019         flag_no_common, unless explicitly specified.
1021 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
1023         * calls.c (can_implement_as_sibling_call_p): Mark param
1024         reg_parm_stack_space with ATTRIBUTE_UNUSED.
1026 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
1028         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
1029         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
1030         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
1031         constants.
1032         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
1033         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
1034         and CASE_CONST_ANY.
1036 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
1038         * config/nvptx/nvptx.md (sincossf3): New pattern.
1040 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
1042         * calls.c (maybe_complain_about_tail_call): New function.
1043         (initialize_argument_information): Call
1044         maybe_complain_about_tail_call when clearing *may_tailcall.
1045         (can_implement_as_sibling_call_p): Call
1046         maybe_complain_about_tail_call when returning false.
1047         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
1048         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
1049         if tail-call optimization fails.
1050         * cfgexpand.c (expand_call_stmt): Initialize
1051         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
1052         * gimple-pretty-print.c (dump_gimple_call): Dump
1053         gimple_call_must_tail_p.
1054         * gimple.c (gimple_build_call_from_tree): Call
1055         gimple_call_set_must_tail with the value of
1056         CALL_EXPR_MUST_TAIL_CALL.
1057         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
1058         (gimple_call_set_must_tail): New function.
1059         (gimple_call_must_tail_p): New function.
1060         * print-tree.c (print_node): Update printing of TREE_STATIC
1061         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
1062         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
1063         trailing comment listing applicable flags.
1064         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
1066 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
1068         * calls.c (expand_call): Move "Rest of purposes for tail call
1069         optimizations to fail" to...
1070         (can_implement_as_sibling_call_p): ...this new function, and
1071         split into multiple "if" statements.
1073 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
1075         * cfgloop.h (expected_loop_iterations_unbounded,
1076         expected_loop_iterations): Unconstify.
1077         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
1078         profile with known upper bound; return 3 when profile is absent.
1079         (expected_loop_iterations): Update.
1081 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
1083         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
1084         and get_max_loop_iterations_int.
1086 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
1088         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
1089         realistic upper bounds here.
1091 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
1093         PR c++/71210
1094         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
1095         calls if the LHS is variable length or has addressable type.
1096         If targets[0]->decl is a noreturn call with void return type and
1097         zero arguments, adjust fntype and remove lhs in that case.
1099 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
1101         PR tree-optimization/71079
1102         PR tree-optimization/71206
1103         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
1105 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1107         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
1108         (get_vec_alignment_for_array_decl): Likewise.
1109         (get_vec_alignment_for_record_decl): Likewise.
1110         (increase_alignment::execute): Move code to find alignment to
1111         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
1112         (type_align_map): New hash_map.
1114 2016-05-20  Richard Guenther  <rguenther@suse.de>
1116         PR tree-optimization/29756
1117         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
1118         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
1119         * fold-const.c (operand_equal_p): Likewise.
1120         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
1121         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
1122         * tree-inline.c (estimate_operator_cost): Likewise.
1123         * tree-pretty-print.c (dump_generic_node): Likewise.
1124         * tree-ssa-operands.c (get_expr_operands): Likewise.
1125         * cfgexpand.c (expand_debug_expr): Likewise.
1126         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
1127         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
1128         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
1129         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
1130         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
1131         (execute_update_addresses_taken): Do it.
1133 2016-05-20  Richard Biener  <rguenther@suse.de>
1135         PR tree-optimization/71185
1136         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
1137         register operations.
1139 2016-05-20  Richard Biener  <rguenther@suse.de>
1141         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
1142         gimple_seq_add_seq_without_update.
1143         (release_bb_predicate): Assert we have no operands to free.
1144         (if_convertible_loop_p_1): Calculate post dominators later.
1145         Do not free BB predicates here.
1146         (combine_blocks): Do not recompute BB predicates.
1147         (version_loop_for_if_conversion): Save BB predicates around
1148         loop versioning.
1150 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
1152         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
1153         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
1154         code.  Ignore sibcalls on EDGE_IGNORE edges.
1155         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
1156         on edges for sibcalls that run without prologue.  The rest of the
1157         function is combined from...
1158         (fix_fake_fallthrough_edge): ... this, and ...
1159         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
1160         function argument, make it a local variable.
1162 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
1164         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
1165         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
1166         for 32-bit mode and SEH for 64-bit.
1167         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
1168         TARGET_64BIT_DEFAULT.
1170 2016-05-19  Ryan Burn  <contact@rnburn.com>
1172         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
1173         * gengtype.c (open_base_files): Add cilk.h to ifiles.
1175 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
1177         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
1178         force pending loads from memory.
1180 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1182         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
1183         (UNSPEC_DARN_32): New unspec constant.
1184         (UNSPEC_DARN_RAW): New unspec constant.
1185         (darn_32): New instruction.
1186         (darn_raw): New instruction.
1187         (darn): New instruction.
1188         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
1189         support and documentation for this macro.
1190         (BU_P9_MISC_1): New macro definition.
1191         (BU_P9_64BIT_MISC_0): New macro definition.
1192         (BU_P9_MISC_0): New macro definition.
1193         (darn_32): New builtin definition.
1194         (darn_raw): New builtin definition.
1195         (darn): New builtin definition.
1196         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
1197         RS6000_BUILTIN_0 directives to surround each occurrence of
1198         #include "rs6000-builtin.def".
1199         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
1200         RS6000_BTM_64BIT flags to the returned mask, depending on
1201         configuration.
1202         (def_builtin): Correct an error in the assignments made to the
1203         debugging variable attr_string.
1204         (rs6000_expand_builtin): Add support for no-operand built-in
1205         functions.
1206         (builtin_function_type): Remove fatal_error assertion that is no
1207         longer valid.
1208         (rs6000_common_init_builtins): Add support for no-operand built-in
1209         functions.
1210         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
1211         definition.
1212         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
1213         definition.
1214         (RS6000_BTM_64BIT): New macro definition.
1215         * doc/extend.texi: Document __builtin_darn (void),
1216         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
1217         functions.
1219 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
1221         * tree-vect-loop.c (vect_analyze_loop_2): Use also
1222         max_loop_iterations_int.
1224 2016-05-19  Marek Polacek  <polacek@redhat.com>
1226         PR tree-optimization/71031
1227         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
1228         condition and adjust the code a bit.
1230 2016-05-19  Martin Liska  <mliska@suse.cz>
1232         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
1233         auto_vec instead of vec.
1235 2016-05-19  Martin Liska  <mliska@suse.cz>
1237         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
1239 2016-05-19  Martin Liska  <mliska@suse.cz>
1241         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
1243 2016-05-19  Martin Liska  <mliska@suse.cz>
1245         * ipa-pure-const.c (set_function_state): Remove an existing
1246         funct_state.
1247         (remove_node_data): Do not free it as it's released
1248         in set_function_state.
1250 2016-05-19  Martin Liska  <mliska@suse.cz>
1252         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
1253         bitmap.
1255 2016-05-19  Martin Liska  <mliska@suse.cz>
1257         * omp-simd-clone.c (simd_clone_adjust): Release vector.
1259 2016-05-19  Martin Liska  <mliska@suse.cz>
1261         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
1262         an auto_vec instead of re-creating it.
1264 2016-05-19  Martin Liska  <mliska@suse.cz>
1266         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
1267         auto_vec instead of vec.
1269 2016-05-19  Martin Liska  <mliska@suse.cz>
1271         * lto-section-in.c (lto_get_section_data): Call
1272         lto_check_version with additional argument.
1273         * lto-streamer.c (lto_check_version): Add new argument.
1274         * lto-streamer.h (lto_check_version): Likewise.
1276 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1278         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
1279         Don't add cost of inner memory when handling sign-extended loads.
1281 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
1283         PR rtl-optimization/71148
1284         * cse.c (cse_main): Free dominance info.
1285         (rest_of_handle_cse): Don't free dominance info.
1286         (rest_of_handle_cse2): Likewise.
1287         (rest_of_handle_cse_after_global_opts): Likewise.
1289 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1291         PR target/71056
1292         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
1293         NULL_TREE early if NEON is not available.  Remove now redundant check
1294         in ARM_CHECK_BUILTIN_MODE.
1296 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
1298         PR sanitizer/64354
1299         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
1300         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
1301         * doc/cpp.texi: Document new macros.
1303 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
1305         PR tree-optimization/69848
1306         * tree-vect-loop.c (vectorizable_reduction): Don't factor
1307         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
1309 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
1311         * function.c (thread_prologue_and_epilogue_insn): Move the
1312         "goto epilogue_done" one block later.
1314 2016-05-19  Richard Biener  <rguenther@suse.de>
1316         PR tree-optimization/70729
1317         * passes.def: Move LIM pass before PRE.  Remove no longer
1318         required copyprop and move first DCE out of the loop pipeline.
1320 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
1322         PR driver/69265
1323         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
1324         (OBJS-libcommon-target): ...here.
1325         * opts-common.c: Include spellcheck.h.
1326         (cmdline_handle_error): Build a vec of valid options and use it
1327         to suggest provide hints for misspelled arguments.
1329 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
1331         PR c++/71100
1332         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
1333         lhs if it has TREE_ADDRESSABLE type.
1335 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
1337         PR target/71145
1338         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
1339         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
1341 2016-05-18  Martin Jambor  <mjambor@suse.cz>
1343         PR ipa/69708
1344         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
1345         input for NOP_EXPR pass-through functions.
1346         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
1347         aggregate global constant VAR_DECLs in constant jump functions.
1349 2016-05-18  Martin Jambor  <mjambor@suse.cz>
1351         PR ipa/69708
1352         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
1353         from TREE_READONLY parameters.
1355 2016-05-18  Martin Jambor  <mjambor@suse.cz>
1357         PR ipa/69708
1358         * cgraph.h (cgraph_indirect_call_info): New field
1359         guaranteed_unmodified.
1360         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
1361         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
1362         appropriate.
1363         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
1364         pass the parameter value to ipa_find_agg_cst_for_param.
1365         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
1366         guaranteed_unmodified, store AA results there instead of bailing out
1367         if present.
1368         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
1369         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
1370         (find_constructor_constant_at_offset): New function.
1371         (ipa_find_agg_cst_from_init): Likewise.
1372         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
1373         static initializers of contants, report back through a new paameter
1374         from_global_constant if that was the case.
1375         (try_make_edge_direct_simple_call): Also pass parameter value to
1376         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
1377         appropriate.
1378         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
1379         (ipa_read_indirect_edge_info): Likewise.
1380         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
1381         (ipa_load_from_parm_agg): Likewise.
1383 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
1385         PR rtl-optimization/71150
1386         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
1387         check.
1389 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
1391         PR target/70915
1392         * config/rs6000/constraints.md (wE constraint): New constraint
1393         for a vector constant that can be loaded with XXSPLTIB.
1394         (wM constraint): New constraint for a vector constant of a 1's.
1395         (wS constraint): New constraint for a vector constant that can be
1396         loaded with XXSPLTIB and a vector sign extend instruction.
1397         * config/rs6000/predicates.md (xxspltib_constant_split): New
1398         predicates for wE/wS constraints.
1399         (xxspltib_constant_nosplit): Likewise.
1400         (easy_vector_constant): Add support for constants that can be
1401         loaded via XXSPLTIB.
1402         (all_ones_constant): New predicate for vector constant with all
1403         1's set.
1404         (splat_input_operand): Add support for ISA 3.0 word splat operations.
1405         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
1406         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
1407         instruction and possibly with a sign extension.
1408         (output_vec_const_move): Add support for XXSPLTIB. If we are
1409         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
1410         instead of XXLXOR/XXLORC.
1411         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
1412         operations.
1413         (rs6000_legitimize_reload_address): Likewise.
1414         (rs6000_output_move_128bit): Use output_vec_const_move to emit
1415         constants.
1416         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
1417         combine VSX_M and VSX_M2 into one iterator.
1418         (VSX_M2): Likewise.
1419         (VSINT_84): New iterators for loading constants with XXSPLTIB.
1420         (VSINT_842): Likewise.
1421         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
1422         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
1423         XXSPLTIB instruction.
1424         (xxspltib_<mode>_nosplit): Likewise.
1425         (xxspltib_<mode>_split): New insn to load up constants with
1426         XXSPLTIB and a sign extend instruction.
1427         (vsx_mov<mode>): Replace single move that handled all vector types
1428         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
1429         moves (when -mvsx-timode is in effect) into the main vector
1430         moves.  Eliminate separate moves for <VSr> <VSa>, where the
1431         preferred register class (<VSr>) is listed first, and the
1432         secondary register class (<VSa>) is listed second with a '?' to
1433         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
1434         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
1435         that if the register was involved in a slow operation, the
1436         clear/set operation does not wait for the slow operation to
1437         finish.  Adjust the length attributes for 32-bit mode.  Use
1438         rs6000_output_move_128bit and drop the use of the string
1439         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
1440         spacing so that the alternatives and attributes don't generate
1441         long lines, and put things in columns, so that it is easier to
1442         match up the operands and attributes with the insn alternatives.
1443         (vsx_mov<mode>_64bit): Likewise.
1444         (vsx_mov<mode>_32bit): Likewise.
1445         (vsx_movti_64bit): Fold movti into normal vector moves.
1446         (vsx_movti_32bit): Likewise.
1447         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
1448         splat instructions.
1449         (vsx_splat_v4si_internal): Likewise.
1450         (vsx_splat_v4sf_internal): Likewise.
1451         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
1452         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
1453         extend vector elements.
1454         (vsx_sign_extend_hi_<mode>): Likewise.
1455         (vsx_sign_extend_si_v2di): Likewise.
1456         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
1457         declaration.
1458         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
1459         constraints.  Add trailing period to wL documentation.
1461 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
1463         PR middle-end/71020
1464         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
1465         * tree-dfa.c (replace_abnormal_ssa_names): New function.
1466         * tree-call-cdce.c: Include tree-dfa.h.
1467         (can_guard_call_p): New function, extracted from...
1468         (can_use_internal_fn): ...here.
1469         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
1470         and return void.
1471         (shrink_wrap_one_built_in_call): Likewise.
1472         (use_internal_fn): Likewise.
1473         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
1474         and return void.  Call replace_abnormal_ssa_names.
1475         (pass_call_cdce::execute): Check can_guard_call_p during the
1476         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
1477         will always change something.
1479 2016-05-18  Martin Jambor  <mjambor@suse.cz>
1481         PR ipa/70646
1482         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
1483         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
1485 2016-05-18  Martin Jambor  <mjambor@suse.cz>
1487         PR ipa/70646
1488         * ipa-inline.h (condition): New field size.
1489         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
1490         for comaprison and store it into the new condition.
1491         (evaluate_conditions_for_known_args): Use condition size to check
1492         access sizes for all but CHANGED conditions.
1493         (unmodified_parm_1): New parameter size_p, store access size into it.
1494         (unmodified_parm): Likewise.
1495         (unmodified_parm_or_parm_agg_item): Likewise.
1496         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
1497         (set_cond_stmt_execution_predicate): Extract access sizes and store
1498         them to conditions.
1499         (set_switch_stmt_execution_predicate): Likewise.
1500         (will_be_nonconstant_expr_predicate): Likewise.
1501         (will_be_nonconstant_predicate): Likewise.
1502         (inline_read_section): Stream condition size.
1503         (inline_write_summary): Likewise.
1505 2016-05-18  Richard Biener  <rguenther@suse.de>
1507         * tree-ssa-loop-im.c (determine_max_movement): Properly add
1508         condition cost to PHI cost instead of total_cost.
1510 2016-05-18  Martin Liska  <mliska@suse.cz>
1512         PR fortran/70856
1513         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
1514         merged variables.
1516 2016-05-18  Richard Biener  <rguenther@suse.de>
1518         * lto-streamer.h (LTO_major_version): Bump to 6.
1520 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
1522         * function.c (make_split_prologue_seq, make_prologue_seq,
1523         make_epilogue_seq): New functions, factored out from...
1524         (thread_prologue_and_epilogue_insns): Here.
1526 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
1528         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
1529         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
1530         of before.  Add a comment.
1532 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
1534         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
1535         expression pointer, not pointer to the pointer.
1537 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
1539         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
1540         (avx2_pbroadcast<mode>): Add another alternative with v instead
1541         of x constraints in it, using <pbroadcast_evex_isa> isa.
1542         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
1544         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
1545         constraint x instead of v in second alternative, add avx512bw
1546         alternative.
1548         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
1549         constraint x instead of v in second alternative, add avx512bw
1550         alternative.
1552         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
1553         constraint x instead of v in second alternative, add avx512bw
1554         alternative.
1556         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
1557         avx512bw alternative.
1559 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
1561         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
1562         array to 128 chars.
1563         (define_insn "*andnottf3"): Ditto.
1564         (define_insn "*<code><mode>3"/any_logic): Ditto.
1565         (define_insn "*<code>tf3"/any_logic): Ditto.
1566         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
1567         operand to block AVX-512VL insn variant emit when it is not enabled.
1569 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
1571         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
1572         constraint fot SF mode.
1574 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
1575             Kirill Yukhin  <kirill.yukhin@intel.com>
1577         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
1578         modifiers.
1579         (define_insn "rsqrt14<mode>"): Ditto.
1580         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
1581         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
1582         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
1583         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
1584         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
1585         Ditto.
1586         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
1587         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
1588         * config/i386/i386.c (ix86_print_operand): Expand check for size
1589         override codes for Intel syntax.
1591 2016-05-18  Richard Biener  <rguenther@suse.de>
1593         PR tree-optimization/71168
1594         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
1595         initialization earlier.
1597 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
1599         * config/aarch64/aarch64-simd.md
1600         (aarch64_reduc_plus_internal<mode>): Rename to...
1601         (reduc_plus_scal): ...This, and remove previous implementation.
1603 2016-05-18  Richard Biener  <rguenther@suse.de>
1605         * passes.def: Put late dse and cd_dce in canonical order.
1607 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
1609         * ipa-inline-transform.c (preserve_function_body_p): Look for
1610         first non-thunk clone.
1611         (save_function_body): Save into first non-thunk.
1612         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
1613         up call stmt id.
1614         (lto_output_node): Inline thunks don't need body in every
1615         partition.
1616         * lto-streamer-in.c: Do not fixup thunk clones.
1617         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
1618         thunks.
1619         * tree-inline.c (copy_bb): Be prepared for target node to be new after
1620         folding suceeds.
1622 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
1624         PR middle-end/63586
1625         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
1626         (reassociate_bb): Call transform_add_to_multiply.
1628 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
1630         * config/aarch64/aarch64.c (all_extensions): Removed unused
1631         static variable.
1633 2016-05-17  Nathan Sidwell  <nathan@acm.org>
1635         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
1636         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
1638 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
1640         PR tree-optimization/54579
1641         PR middle-end/55299
1642         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
1644 2016-05-17  Marek Polacek  <polacek@redhat.com>
1646         PR ipa/71146
1647         * tree-inline.c (expand_call_inline): Call
1648         maybe_remove_unused_call_args.
1650 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
1652         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
1653         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
1654         * doc/md.texi (fmin@var{m}3): Likewise.
1656 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
1658         * match.pd (X & C): New transformation.
1660 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
1662         * match.pd (~X & Y): New transformation.
1664 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
1666         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
1667         information for new SSA_NAME.
1668         (simplify_conversion_using_ranges): Get range through get_range_info
1669         instead of get_value_range.
1671 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
1673         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
1674         Remove inline assembly.
1675         (vmvn_s16): Likewise.
1676         (vmvn_s32): Likewise.
1677         (vmvn_u8): Likewise.
1678         (vmvn_u16): Likewise.
1679         (vmvn_u32): Likewise.
1680         (vmvnq_s8): Likewise.
1681         (vmvnq_s16): Likewise.
1682         (vmvnq_s32): Likewise.
1683         (vmvnq_u8): Likewise.
1684         (vmvnq_u16): Likewise.
1685         (vmvnq_u32): Likewise.
1686         (vmvn_p8): Likewise.
1687         (vmvnq_p16): Likewise.
1689 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
1691         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
1692         Use builtin.
1693         (vmul_n_s16): Likewise.
1694         (vmul_n_s32): Likewise.
1695         (vmul_n_u16): Likewise.
1696         (vmul_n_u32): Likewise.
1697         (vmulq_n_f32): Likewise.
1698         (vmulq_n_f64): Likewise.
1699         (vmulq_n_s16): Likewise.
1700         (vmulq_n_s32): Likewise.
1701         (vmulq_n_u16): Likewise.
1702         (vmulq_n_u32): Likewise.
1704 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
1706         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
1707         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
1709 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
1711         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
1712         to *aarch64_fma4_elt_from_dup<mode>.
1713         (*aarch64_fnma4_elt_to_128df): Rename to
1714         *aarch64_fnma4_elt_from_dup<mode>.
1715         * config/aarch64/arm_neon.h (vfma_n_f64): New.
1716         (vfms_n_f32): Likewise.
1717         (vfms_n_f64): Likewise.
1718         (vfmsq_n_f32): Likewise.
1719         (vfmsq_n_f64): Likewise.
1721 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
1723         * wide-int.h: Change fixed_wide_int_storage from class to struct.
1725 2016-05-17  Richard Biener  <rguenther@suse.de>
1727         PR tree-optimization/71132
1728         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
1729         Only add control dependences for blocks in the loop.
1730         (build_rdg): Adjust.
1731         (generate_code_for_partition): Return whether loop should
1732         be destroyed and delay that.
1733         (distribute_loop): Likewise.
1734         (pass_loop_distribution::execute): Record loops to be destroyed
1735         and perform delayed destroying of loops.
1737 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1739         PR target/70809
1740         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
1742 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
1744         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
1746 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
1748         PR target/71114
1749         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
1750         insertion point for instructions generated by validize_mem.
1752 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
1754         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
1755         in brackets.
1757 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
1759         * config/aarch64/aarch64.c
1760         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
1761         rather than a macro.
1763 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
1765         * doc/invoke.texi (AArch64 Options): Various updates.
1767 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
1769         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
1770         into instrumentation thunks.
1771         * cif-code.def (CIF_CHKP): New.
1773 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
1775         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
1777 2016-05-16  Martin Jambor  <mjambor@suse.cz>
1779         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
1780         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
1782 2016-05-16  Marek Polacek  <polacek@redhat.com>
1784         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
1785         commentary.
1787 2016-05-16  Martin Jambor  <mjambor@suse.cz>
1789         PR hsa/70857
1790         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
1791         the outlined kernel function.
1793 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
1795         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
1796         (ISA_HAS_DLSA): Ditto.
1798 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
1800         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
1802 2016-05-16  Nathan Sidwell  <nathan@acm.org>
1804         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
1805         (nvptx_name_replacement): Restore.  Add comment.
1806         (write_fn_proto, write_fn_proto_from_insn,
1807         nvptx_output_call_insn): Restore
1808         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
1810 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
1812         * config/aarch64/aarch64.md
1813         (add<mode>3_compareC_cconly_imm): Remove use of %w.
1814         (add<mode>3_compareC_imm): Likewise.
1815         (<optab>si3_uxtw): Split into register and immediate variants.
1816         (andsi3_compare0_uxtw): Likewise.
1817         (and<mode>3_compare0): Likewise.
1818         (and<mode>3nr_compare0): Likewise.
1819         (stack_protect_test_<mode>): Don't use %x for memory operands.
1821 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
1823         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
1825 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
1827         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
1828         Split integer shifts into shift_reg and bfm.
1829         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
1830         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
1831         (ror<mode>3_insn): Likewise.
1832         (<optab>si3_insn_uxtw): Likewise.
1833         (<optab><mode>3_insn): Change to rotate_imm.
1834         (extr<mode>5_insn_alt): Likewise.
1835         (extrsi5_insn_uxtw): Likewise.
1836         (extrsi5_insn_uxtw_alt): Likewise.
1838 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
1840         * doc/tm.texi: Regenerate.
1841         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
1842         (TARGET_INVALID_RETURN_TYPE): Remove.
1843         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
1844         TARGET_INVALID_RETURN_TYPE.
1845         * target.def (invalid_parameter_type): Remove.
1846         (invalid_return_type): Remove.
1848 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
1850         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
1851         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
1852         calls from thunk.
1853         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
1854         gimple body.
1855         (preserve_function_body_p): No need to preserve function body
1856         * cif-codes.def (CIF_THUNK): Remove.
1857         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
1859 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
1861         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
1863 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
1865         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
1866         for thunks.
1868 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
1870         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
1871         (inline_small_functions): Do not look for function symbol when
1872         resetting caches.
1874 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
1876         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
1877         of inline thunks
1879 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
1880             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1881             Jiong Wang  <jiong.wang@arm.com>
1883         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
1884         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
1885         Define __ARM_FP16_ARGS when appropriate.
1886         * config/arm/arm.c (arm_invalid_parameter_type): Remove
1887         declaration.
1888         (arm_invalid_return_type): Likewise.
1889         (TARGET_INVALID_PARAMETER_TYPE): Remove.
1890         (TARGET_INVALID_RETURN_TYPE): Remove.
1891         (aapcs_vfp_sub_candidate): Allow HFmode.
1892         (aapcs_vfp_allocate): Add comment.  Support HFmode.
1893         (aapcs_vfp_allocate_return_reg): Likewise.
1894         (struct aapcs_cp_arg_layout): Slightly reword comments for
1895         is_return_candidate and allocate_return_reg.
1896         (output_mov_vfp): Update assert.
1897         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
1898         condition.
1899         (arm_invalid_parameter_type): Remove.
1900         (amr_invalid_return_type): Remove.
1901         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
1902         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
1903         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
1905 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
1907         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
1908         * config/aarch64/arch64-protos.h
1909         (aarch64_legitimize_reload_address): Remove.
1910         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
1911         Remove.
1913 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1915         * configure.ac: Add ACX_NONCANONICAL_HOST.
1916         * configure: Regenerate.
1917         * Makefile.in: Set host_noncanonical.
1919 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
1921         PR target/71097
1922         * config/i386/i386.md (*movtf_internal): Before register allocation,
1923         do not allow FP constants for CM_MEDIUM memory model, allow only
1924         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
1925         (*movxf_internal): Ditto.
1926         (*movdf_internal): Ditto.
1927         (*movsf_internal): Ditto.
1929 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
1931         PR rtl-optimization/67483
1932         * combine.c (make_compound_operation): Don't call extract_left_shift
1933         with negative shift amounts.
1935 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
1937         PR bootstrap/71071
1938         * fold-const.c (fold_checksum_tree): Allow modification
1939         of TYPE_ALIAS_SET during folding.
1941         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
1942         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
1943         (ix86_split_to_parts): Likewise.  Fix up formatting.
1945 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1947         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
1948         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
1949         printf format.
1951 2016-05-13  Nathan Sidwell  <nathan@acm.org>
1953         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
1954         (nvptx_name_replacement): Delete.
1955         (write_fn_proto, write_fn_proto_from_insn,
1956         nvptx_output_call_insn): Remove nvptx_name_replacement call.
1957         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
1958         * langhooks.c (add_builtin_funcction_common): Call
1959         targetm.mangle_decl_assembler_name.
1961         * config/nvptx/nvptx.c (write_fn_proto): Handle
1962         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
1964 2016-05-13  Martin Liska  <mliska@suse.cz>
1966         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
1967         and PRIu64 in printf format.
1969 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1971         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
1972         comment.
1974 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1976         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1977         Change --param max-completely-peeled-times to
1978         --param max-completely-peel-times in dump file printing.
1980 2016-05-13  Richard Biener  <rguenther@suse.de>
1982         PR tree-optimization/42587
1983         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
1984         (find_bswap_or_nop_1): Likewise.
1985         (bswap_replace): Likewise.
1987 2016-05-13  Martin Liska  <mliska@suse.cz>
1989         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
1990         Initialize a variable with default value.
1992 2016-05-13  Martin Liska  <mliska@suse.cz>
1994         * doc/invoke.texi: Enhance explanation of error recovery
1995         of sanitizers.
1997 2016-05-13  Martin Liska  <mliska@suse.cz>
1999         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
2000         (struct cost_pair): Change inv_expr_id (int) to inv_expr
2001         (iv_inv_expr_ent *).
2002         (struct iv_inv_expr_ent): Comment struct fields.
2003         (sort_iv_inv_expr_ent): New function.
2004         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
2005         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
2006         a hash_map between iv_inv_expr_ent and number of usages.
2007         (niter_for_exit): Fix coding style.
2008         (tree_ssa_iv_optimize_init): Use renamed variable.
2009         (determine_base_object): Fix coding style.
2010         (alloc_iv): Likewise.
2011         (find_interesting_uses_outside): Likewise.
2012         (add_candidate_1): Likewise.
2013         (add_standard_iv_candidates): Likewise.
2014         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
2015         (prepare_decl_rtl): Fix coding style.
2016         (get_address_cost): Likewise.
2017         (get_shiftadd_cost): Likewise.
2018         (force_expr_to_var_cost): Likewise.
2019         (compare_aff_trees): Likewise.
2020         (get_expr_id): Restructure the function.
2021         (get_loop_invariant_expr_id): Renamed to
2022         get_loop_invariant_expr.
2023         (get_computation_cost_at): Replace usage of inv_expr_id with
2024         inv_expr.
2025         (get_computation_cost): Likewise.
2026         (determine_group_iv_cost_generic): Likewise.
2027         (determine_group_iv_cost_address): Likewise.
2028         (iv_period): Fix coding style.
2029         (iv_elimination_compare_lt): Likewise.
2030         (may_eliminate_iv): Likewise.
2031         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
2032         inv_expr.
2033         (determine_group_iv_costs): Dump invariant expressions.
2034         (iv_ca_recount_cost): Use the newly added hash_map.
2035         (iv_ca_set_remove_invariants): Fix coding style.
2036         (iv_ca_set_add_invariants): Fix coding style.
2037         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
2038         invariants.
2039         (iv_ca_set_cp): Likewise.
2040         (iv_ca_new): Initialize the newly added hash_map and remove
2041         initialization of fields.
2042         (iv_ca_free): Delete the hash_map.
2043         (iv_ca_dump): Dump invariant expressions.
2044         (iv_ca_extend): Fix coding style.
2045         (try_add_cand_for): Likewise.
2046         (create_new_ivs): Dump information about # of avg iterations and
2047         # of used invariant expressions.
2048         (rewrite_use_compare): Fix coding style.
2049         (free_loop_data): Set default value for max_inv_expr_id.
2051 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2053         * cse.c (rest_of_handle_cse): Use cleanup_cfg
2054         returned value cse_cfg_altered computation.
2055         (rest_of_handle_cse2): Likewise.
2056         (rest_of_handle_cse_after_global_opts): Likewise.
2058 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2060         PR target/53440
2061         * config/arm/arm.c (arm32_output_mi_thunk): New.
2062         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
2063         to split Thumb1 vs TARGET_32BIT functionality.
2064         (arm_thumb1_mi_thunk): New.
2066 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2068         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
2069         to true.
2071 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2073         PR target/71080
2074         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
2076 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
2078         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
2079         (expand_builtin_trap): Emit a regular call.
2080         (set_builtin_user_assembler_name): Remove obsolete cases.
2081         * dse.c (scan_insn): Adjust.
2082         * except.c: Include calls.h.
2083         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
2084         emit a regular call to setjmp.
2085         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
2086         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
2087         (emit_block_move_via_libcall): Delete.
2088         (block_move_fn): Delete.
2089         (init_block_move_fn): Likewise.
2090         (emit_block_move_libcall_fn): Likewise.
2091         (emit_block_op_via_libcall): New function.
2092         (set_storage_via_libcall): Tidy up and use memset builtin.
2093         (block_clear_fn): Delete.
2094         (init_block_clear_fn): Likewise.
2095         (clear_storage_libcall_fn): Likewise.
2096         (expand_assignment): Call emit_block_move_via_libcall.
2097         Do not include gt-expr.h.
2098         * expr.h (emit_block_op_via_libcall): Declare.
2099         (emit_block_copy_via_libcall): New inline function.
2100         (emit_block_move_via_libcall): Likewise.
2101         (emit_block_comp_via_libcall): Likewise.
2102         (block_clear_fn): Delete.
2103         (init_block_move_fn): Likewise.
2104         (init_block_clear_fn): Likewise.
2105         (emit_block_move_via_libcall): Likewise.
2106         (set_storage_via_libcall): Add default parameter value.
2107         * libfuncs.h (enum libfunc_index): Remove obsolete values.
2108         (abort_libfunc): Delete.
2109         (memcpy_libfunc): Likewise.
2110         (memmove_libfunc): Likewise.
2111         (memcmp_libfunc): Likewise.
2112         (memset_libfunc): Likewise.
2113         (setbits_libfunc): Likewise.
2114         (setjmp_libfunc): Likewise.
2115         (longjmp_libfunc): Likewise.
2116         (profile_function_entry_libfunc): Likewise.
2117         (profile_function_exit_libfunc): Likewise.
2118         (gcov_flush_libfunc): Likewise.
2119         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
2120         and DECL_VISIBILITY on the declaration.
2121         (init_optabs): Do not initialize obsolete libfuncs.
2122         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
2123         * tree-core.h (ECF_RET1): Define.
2124         (ECF_TM_PURE): Adjust.
2125         (ECF_TM_BUILTIN): Likewise.
2126         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
2127         (build_common_builtin_nodes): Initialize abort builtin.
2128         Add ECF_RET1 on memcpy, memmove and memset builtins.
2129         Pass final flags for alloca and alloca_with_align builtins.
2130         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
2131         obsolete builtins.
2132         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
2133         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
2134         set_storage_via_libcall and call emit_block_copy_via_libcall.
2136 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
2138         * config/i386/i386.md (*call_got_x32): Change operand 0 to
2139         DImode before it is passed to ix86_output_call_operand.
2140         (*call_value_got_x32): Ditto for operand 1.
2142 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
2144         PR rtl-optimization/70904
2145         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
2146         reload for wide mode.
2148 2016-05-12  Marek Polacek  <polacek@redhat.com>
2150         PR c/70756
2151         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
2152         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
2153         * langhooks.h (incomplete_type_error): Likewise.
2154         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
2155         parameter, pass it down to incomplete_type_error.
2156         * tree.h (size_in_bytes): New inline overload.
2157         (size_in_bytes_loc): Renamed from size_in_bytes.
2159 2016-05-12  Richard Biener  <rguenther@suse.de>
2161         PR tree-optimization/71059
2162         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
2163         nary before looking up or entering the expression into the VN
2164         hashes.
2165         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
2166         Make sure to re-use NARYs without result as inserted by
2167         phi-translation.
2169 2016-05-12  Richard Biener  <rguenther@suse.de>
2171         PR tree-optimization/71062
2172         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
2173         field.
2174         * tree-ssa-structalias.c (set_uids_in_ptset): Set
2175         vars_contains_restrict if the var is a restrict tag.
2176         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
2177         do not disambiguate pointers against it.
2178         (dump_points_to_solution): Re-structure and adjust for new
2179         vars_contains_restrict flag.
2180         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
2182 2016-05-12  Martin Liska  <mliska@suse.cz>
2184         * doc/invoke.texi: Explain connection between
2185         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
2187 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
2189         PR tree-optimization/71006
2190         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
2191         consider COND_EXPR as a mask producer.
2193 2016-05-12  Marek Polacek  <polacek@redhat.com>
2195         PR driver/71063
2196         * opts.c (common_handle_option): Detect missing argument for --help^.
2198 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2200         PR target/70830
2201         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
2202         when popping the PC and within an interrupt handler routine.
2203         Add missing tab to output of "ldmfd".
2204         (output_return_instruction): Output LDMFD with SP update rather
2205         than POP when returning from interrupt handler.
2207 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
2209         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
2210         TARGET_64BIT && TARGET_AVX512DQ.
2211         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
2212         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
2213         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
2214         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
2215         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
2216         (*vec_extractv4si_zext): Add avx512dq alternative.
2217         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
2218         use v instead of x constraint in other alternatives where possible.
2220         * config/i386/sse.md (sse2_loadld): Use v instead of x
2221         constraint in alternatives 0,1,4.
2223         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
2224         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
2225         v constraints instead of x and <pinsr_evex_isa> isa attribute.
2227         PR target/71019
2228         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
2229         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
2230         is not emitted unless TARGET_AVX512BW.
2231         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
2232         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
2233         for the result operand.
2235         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
2236         constraint instead of x in avx alternatives.  Use maybe_evex instead
2237         of vex prefix.
2239         * config/i386/constraints.md (Yv): New constraint.
2240         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
2241         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
2242         * config/i386/i386.md (avx512fvecmode): New mode attr.
2243         (*pushtf): Use v constraint instead of x.
2244         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
2245         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
2246         (*absneg<mode>2): Use Yv constraint instead of x constraint.
2247         (*absnegtf2_sse): Likewise.
2248         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
2249         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
2250         avx512f alternatives.
2251         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
2253 2016-05-12  Richard Biener  <rguenther@suse.de>
2255         PR tree-optimization/71060
2256         * tree-data-ref.c (initialize_data_dependence_relation): Do not
2257         require exact match of DR_BASE_OBJECT but only matching address and
2258         type.
2260 2016-05-12  Richard Biener  <rguenther@suse.de>
2262         PR tree-optimization/70986
2263         * cfganal.c: Include cfgloop.h.
2264         (dfs_find_deadend): Prefer to take edges exiting loops.
2266 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2268         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
2269         compile and run time.
2271 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
2273         PR c/43651
2274         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
2276 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
2278         * config/i386/i386.c (legitimize_pic_address): Use
2279         copy_to_suggested_reg instead of gen_movsi.
2281 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
2283         * config/rs6000/predicates.md (quad_memory_operand): Move most of
2284         the code into quad_address_p and call it to share code with
2285         vsx_quad_dform_memory_operand.
2286         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
2287         d-form support.
2288         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
2289         bit instead of being a separate word.  Split -mpower9-dform into
2290         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
2291         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
2292         for the register class supporting 128-bit quad word memory offsets.
2293         (mode_supports_vsx_dform_quad): Helper function to return if the
2294         register class uses quad word memory offsets.
2295         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
2296         (rs6000_debug_reg_global): Always print if we are using LRA or not.
2297         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
2298         instructions are enabled, set up the appropriate addr_masks for
2299         128-bit types.
2300         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
2301         -mpower9-dform-scalar, instead of -mpower9-dform.
2302         (rs6000_option_override_internal): Split -mpower9-dform into two
2303         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
2304         -mpower9-dform switch sets or clears both.  If we are not using
2305         the LRA register allocator, do not enable -mpower9-dform-vector by
2306         default.  If we are using LRA, enable -mpower9-dform-vector and
2307         -mvsx-timode if it is appropriate.  Issue a warning if either
2308         -mpower9-dform-vector or -mvsx-timode are explicitly used without
2309         enabling LRA.
2310         (quad_address_offset_p): New helper function to return if the
2311         offset is legal for quad word memory instructions.
2312         (quad_address_p): New function to determin if GPR or vector
2313         register quad word memory addresses are legal.
2314         (mem_operand_gpr): Validate quad word address offsets.
2315         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
2316         d-form (register + offset) instructions.
2317         (offsettable_ok_by_alignment): Likewise.
2318         (rs6000_legitimate_offset_address_p): Likewise.
2319         (legitimate_lo_sum_address_p): Likewise.
2320         (rs6000_legitimize_address): Likewise.
2321         (rs6000_legitimize_reload_address): Add more debug statements for
2322         -mdebug=addr.
2323         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
2324         d-form instructions.
2325         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
2326         d-form instructions.  Distinguish different cases in debug
2327         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
2328         d-form instructions.
2329         (rs6000_preferred_reload_class): Likewise.
2330         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
2331         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
2332         of the ISA 2.06 indexed memory instructions.
2333         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
2334         use them to save/restore the saved vector registers instead of
2335         using Altivec instructions.
2336         (rs6000_emit_epilogue): Likewise.
2337         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
2338         (rs6000_opt_masks): Split -mpower9-dform into
2339         -mpower9-dform-scalar and -mpower9-dform-vector.
2340         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
2341         was not selected.
2342         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
2343         ISA 3.0 vector indexed memory instructions, and fold the code into
2344         the normal mov<mode> patterns.
2345         (p9_vecstore_<mode>): Likewise.
2346         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
2347         instructions.
2348         (vsx_movti_64bit): Likewise.
2349         (vsx_movti_32bit): Likewise.
2350         * config/rs6000/constraints.md (wO constraint): New constraint for
2351         ISA 3.0 vector d-form support.
2352         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
2353         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
2354         include -mpower9-dform-vector until we switch over to LRA.
2355         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
2356         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
2357         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
2358         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2359         for -mpower9-dform and -mlra.
2360         * doc/md.texi (wO constraint): Document wO constraint.
2362 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
2364         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
2365         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
2366         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
2367         Move handling of non-insn arguments inline into the sole user:
2368         (output_trans_func): ...here.
2369         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
2370         in emitted function prototype.
2371         (output_internal_insn_latency_func): Ditto.  Simplify.
2372         (output_internal_maximal_insn_latency_func): Ditto.  Delete
2373         always-unused argument.
2374         (output_insn_latency_func): Ditto.
2375         (output_maximal_insn_latency_func): Ditto.
2377 2016-05-11  Richard Biener  <rguenther@suse.de>
2379         PR tree-optimization/71055
2380         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
2381         sth with precision not equal to access size verify we don't chop
2382         off bits.
2384 2016-05-11  Richard Biener  <rguenther@suse.de>
2386         PR debug/71057
2387         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
2388         (dwarf2out_finish): Move retry_incomplete_types call ...
2389         (dwarf2out_early_finish): ... here.
2391 2016-05-11  Richard Biener  <rguenther@suse.de>
2393         PR middle-end/71002
2394         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
2395         if the langhook insists on it.
2396         * fold-const.c (make_bit_field_ref): Add arg for the original
2397         reference and preserve its alias-set.
2398         (decode_field_reference): Take exp by reference and adjust it
2399         to the original memory reference.
2400         (optimize_bit_field_compare): Adjust callers.
2401         (fold_truth_andor_1): Likewise.
2402         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
2404 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
2406         PR middle-end/70807
2407         * cfgrtl.h (delete_insn_and_edges): Now return bool.
2408         * cfgrtl.c (delete_insn_and_edges): Likewise.
2409         * config/i386/i386.c (convert_scalars_to_vector): Remove
2410         redundant code.
2411         * cse.c (cse_insn): Compute cse_cfg_altered.
2412         (delete_trivially_dead_insns): Likewise.
2413         (cse_cc_succs): Likewise.
2414         (rest_of_handle_cse): Free dominance info if required.
2415         (rest_of_handle_cse2): Likewise.
2416         (rest_of_handle_cse_after_global_opts): Likewise.
2418 2016-05-11  Alan Modra  <amodra@gmail.com>
2420         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
2421         abi_v4_pass_in_fpr): New functions.
2422         (rs6000_function_arg_boundary): Exclude complex IBM long double
2423         from 64-bit alignment when ABI_V4.
2424         (rs6000_function_arg, rs6000_function_arg_advance_1,
2425         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
2427 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
2429         PR rtl-optimization/71028
2430         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
2431         jump with just a return in the fallthrough block if the branch
2432         block contains just a return as well.
2434 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
2436         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
2437         * match.pd ((X & Y) ^ Y): ... this.
2438         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
2439         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
2441 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
2443         * read-md.c (require_char_ws): New function.
2444         (read_string): Simplify using require_char_ws.
2445         (handle_constants): Likewise.
2446         (handle_enum): Likewise.
2447         (handle_file): Likewise.
2448         * read-md.h (require_char_ws): New declaration.
2449         * read-rtl.c (read_conditions): Simplify using require_char_ws.
2450         (read_mapping): Likewise.
2451         (read_rtx_code): Likewise.
2452         (read_nested_rtx): Likewise.
2454 2016-05-10  James Norris  <jnorris@codesourcery.com>
2456         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
2457         if offloading is enabled and -fopenacc or -fopenmp is specified.
2458         (CRTOFFLOADEND): Likewise.
2459         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
2460         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
2462 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
2464         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
2465         gotoff_operand code paths.  Use copy_to_suggested_regs and
2466         expand_simple_binop where appropriate.  Cleanup.
2468 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
2470         PR target/70799
2471         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
2472         integer constants.
2473         (dimode_scalar_chain::vector_const_cost): New.
2474         (dimode_scalar_chain::compute_convert_gain): Handle constants.
2475         (dimode_scalar_chain::convert_op): Likewise.
2476         (dimode_scalar_chain::convert_insn): Likewise.
2478 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
2480         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
2481         unary operation, not a binary one.
2483 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
2485         PR middle-end/70877
2486         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
2487         calls with type casted fndecl.
2489 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
2491         PR tree-optimization/70786
2492         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
2493         * calls.c (initialize_argument_information): Bind bounds
2494         with corresponding args passed by reference.
2496 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
2498         PR target/70927
2499         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
2500         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
2501         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
2502         accordingly.
2504 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2506         PR target/70963
2507         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
2508         code for a zero scale factor.
2509         (vsx_xvcvdpuxds_scale): Likewise.
2511 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
2513         * diagnostic-show-locus.c (layout::layout): Call show_ruler
2514         if show_ruler_p was set on the context.
2515         (layout::show_ruler): New method.
2516         * diagnostic.h (struct diagnostic_context): Add field
2517         "show_ruler_p".
2519 2016-05-10  Richard Biener  <rguenther@suse.de>
2521         PR tree-optimization/71039
2522         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
2523         (chk_uses): New function.
2524         (propagate_with_phi): Verify we can safely replicate the lhs of an
2525         aggregate assignment on all incoming edges.
2527 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
2529         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
2530         Forward declare.
2531         (rx_atomic_sequence): New class.
2532         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
2533         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
2534         non-inline.
2535         (rx_atomic_sequence::rx_atomic_sequence,
2536         rx_atomic_sequence::~rx_atomic_sequence): New functions.
2537         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
2538         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
2539         CTRLREG_INTB): New constants.
2540         (FETCHOP): New code iterator.
2541         (fethcop_name, fetchop_name2): New iterator code attributes.
2542         (QIHI): New mode iterator.
2543         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
2544         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
2545         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
2547 2016-05-10  Martin Liska  <mliska@suse.cz>
2549         * tree-inline.c (remap_dependence_clique): Do not remap
2550         debugging statements.
2552 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2554         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
2555         ("*fixuns_truncdfdi2_z13")
2556         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
2557         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
2558         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
2560 2016-05-10  Richard Biener  <rguenther@suse.de>
2562         PR tree-optimization/70497
2563         PR tree-optimization/28367
2564         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
2565         split out from ...
2566         (visit_reference_op_load): ... here.
2567         (vn_reference_lookup_3): Use it to handle subreg-like accesses
2568         with simplified BIT_FIELD_REFs.
2569         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
2570         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
2571         correctly.
2573 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
2575         * dwarf2out.c (add_abstract_origin_attribute): Adjust
2576         documentation comment.  For BLOCK nodes, add a
2577         DW_AT_abstract_origin attribute that points to the DIE generated
2578         for the origin BLOCK.
2579         (gen_lexical_block_die): Call add_abstract_origin_attribute for
2580         blocks from inlined functions.
2582 2016-05-10  Alan Modra  <amodra@gmail.com>
2584         PR target/70947
2585         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
2586         regrename modifying insns saving lr before __morestack call.
2587         * config/rs6000/rs6000.md (split_stack_return): Similarly for
2588         insns restoring lr after __morestack call.
2590 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
2592         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
2593         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
2594         expanders.
2595         * config/i386/sse.md (vec_interleave_high<mode>,
2596         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
2597         <avx512>_vpermt2var<mode>3_maskz): Likewise.
2599 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
2601         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
2602         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
2603         parallel reassociation for power8 and forward.
2605 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
2607         * config/i386/i386.md (absneg splitters with general regs): Use
2608         general_reg_operand predicate.
2609         (btsq peephole2): Use x86_64_immediate_operand to check if new
2610         value is suitable for immediate operand.  Generate emitted insn
2611         using RTL expressions.
2612         (btcq peephole2): Ditto.
2613         (btrq peephole2): Ditto.  Generate correct immediate operand
2614         for AND masking.
2616 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
2618         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
2619         bitpos.
2621 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
2623         * tree-affine.c (wide_int_constant_multiple_p): Add missing
2624         pointer dereference.
2626 2016-05-09  Richard Biener  <rguenther@suse.de>
2628         PR tree-optimization/70985
2629         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
2630         op0 isn't a gimple register.
2632 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
2634         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
2635         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
2636         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
2637         (i6400_fpu_mult): New cpu units.
2638         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
2639         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
2640         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
2641         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
2642         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
2643         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
2644         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
2645         (i6400_msa_long_float4, i6400_msa_long_float5)
2646         (i6400_msa_long_float8, i6400_msa_fdiv_df)
2647         (i6400_msa_fdiv_sf): New reservations.
2648         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
2649         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
2650         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
2651         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
2652         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
2653         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
2654         (msa_short_cmp, msa_short_float2, msa_short_logic3)
2655         (msa_short_store4, msa_long_load, msa_short_store)
2656         (msa_long_logic, msa_long_float2, msa_long_float4)
2657         (msa_long_float5, msa_long_float8, msa_long_mult)
2658         (msa_long_fdiv, msa_long_div): New reservations.
2660 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
2661             Sameera Deshpande  <sameera.deshpande@imgtec.com>
2662             Matthew Fortune  <matthew.fortune@imgtec.com>
2663             Graham Stott  <graham.stott@imgtec.com>
2664             Chao-ying Fu  <chao-ying.fu@imgtec.com>
2666         * config.gcc: Add MSA header file for mips*-*-* target.
2667         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
2668         (Ubv8i, Urv8):  New constraints.
2669         * config/mips/mips-ftypes.def: Add function types for MSA
2670         builtins.
2671         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
2672         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
2673         * config/mips/mips-msa.md: New file.
2674         * config/mips/mips-protos.h
2675         (mips_split_128bit_const_insns): New prototype.
2676         (mips_msa_idiv_insns): Likewise.
2677         (mips_split_128bit_move): Likewise.
2678         (mips_split_128bit_move_p): Likewise.
2679         (mips_split_msa_copy_d): Likewise.
2680         (mips_split_msa_insert_d): Likewise.
2681         (mips_split_msa_fill_d): Likewise.
2682         (mips_expand_msa_branch): Likewise.
2683         (mips_const_vector_same_val_p): Likewise.
2684         (mips_const_vector_same_bytes_p): Likewise.
2685         (mips_const_vector_same_int_p): Likewise.
2686         (mips_const_vector_shuffle_set_p): Likewise.
2687         (mips_const_vector_bitimm_set_p): Likewise.
2688         (mips_const_vector_bitimm_clr_p): Likewise.
2689         (mips_msa_vec_parallel_const_half): Likewise.
2690         (mips_msa_output_division): Likewise.
2691         (mips_ldst_scaled_shift): Likewise.
2692         (mips_expand_vec_cond_expr): Likewise.
2693         * config/mips/mips.c (enum mips_builtin_type): Add
2694         MIPS_BUILTIN_MSA_TEST_BRANCH.
2695         (mips_gen_const_int_vector_shuffle): New prototype.
2696         (mips_const_vector_bitimm_set_p): New function.
2697         (mips_const_vector_bitimm_clr_p): Likewise.
2698         (mips_const_vector_same_val_p): Likewise.
2699         (mips_const_vector_same_bytes_p): Likewise.
2700         (mips_const_vector_same_int_p): Likewise.
2701         (mips_const_vector_shuffle_set_p): Likewise.
2702         (mips_symbol_insns): Forbid loading symbols via immediate for
2703         MSA.
2704         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
2705         stores.
2706         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
2707         MSA.
2708         (mips_lx_address_p): Add support load indexed address for MSA.
2709         (mips_address_insns): Add calculation of instructions needed for
2710         stores and loads for MSA.
2711         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
2712         CONST_VECTOR for MSA and let it fall through.
2713         (mips_ldst_scaled_shift): New function.
2714         (mips_subword_at_byte): Likewise.
2715         (mips_msa_idiv_insns): Likewise.
2716         (mips_legitimize_move): Validate MSA moves.
2717         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
2718         calculation of costs for MSA division.
2719         (mips_split_move_p): Check if MSA moves need splitting.
2720         (mips_split_move): Split MSA moves if necessary.
2721         (mips_split_128bit_move_p): New function.
2722         (mips_split_128bit_move): Likewise.
2723         (mips_split_msa_copy_d): Likewise.
2724         (mips_split_msa_insert_d): Likewise.
2725         (mips_split_msa_fill_d): Likewise.
2726         (mips_output_move): Handle MSA moves.
2727         (mips_expand_msa_branch): New function.
2728         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
2729         Reinstate 'y' modifier.
2730         (mips_file_start): Add MSA .gnu_attribute.
2731         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
2732         FPRs.
2733         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
2734         (mips_class_max_nregs): Add register size for MSA supported mode.
2735         (mips_cannot_change_mode_class): Allow conversion between MSA
2736         vector modes and TImode.
2737         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
2738         instruction.
2739         (mips_secondary_reload_class): Force MSA loads/stores via memory.
2740         (mips_preferred_simd_mode): Add preffered modes for MSA.
2741         (mips_vector_mode_supported_p): Add MSA supported modes.
2742         (mips_autovectorize_vector_sizes): New function.
2743         (mips_msa_output_division): Likewise.
2744         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
2745         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
2746         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
2747         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
2748         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
2749         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
2750         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
2751         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
2752         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
2753         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
2754         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
2755         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
2756         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
2757         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
2758         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
2759         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
2760         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
2761         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
2762         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
2763         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
2764         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
2765         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
2766         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
2767         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
2768         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
2769         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
2770         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
2771         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
2772         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
2773         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
2774         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
2775         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
2776         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
2777         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
2778         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
2779         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
2780         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
2781         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
2782         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
2783         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
2784         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
2785         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
2786         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
2787         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
2788         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2789         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2790         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2791         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2792         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2793         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2794         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2795         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2796         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
2797         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
2798         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
2799         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
2800         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
2801         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
2802         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
2803         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
2804         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
2805         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
2806         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
2807         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
2808         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
2809         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
2810         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
2811         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
2812         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
2813         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
2814         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
2815         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
2816         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
2817         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
2818         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
2819         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
2820         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
2821         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
2822         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
2823         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
2824         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
2825         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
2826         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
2827         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
2828         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
2829         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
2830         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
2831         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
2832         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
2833         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
2834         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
2835         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
2836         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
2837         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
2838         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
2839         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
2840         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
2841         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
2842         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
2843         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
2844         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
2845         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
2846         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
2847         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
2848         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
2849         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
2850         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
2851         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
2852         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
2853         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
2854         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
2855         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
2856         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
2857         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
2858         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
2859         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
2860         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
2861         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
2862         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
2863         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
2864         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
2865         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
2866         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
2867         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
2868         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
2869         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
2870         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
2871         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
2872         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
2873         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
2874         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
2875         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
2876         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
2877         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
2878         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
2879         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
2880         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
2881         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
2882         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
2883         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
2884         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
2885         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
2886         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
2887         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
2888         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
2889         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
2890         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
2891         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
2892         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
2893         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
2894         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
2895         move_v builtins.
2896         (mips_get_builtin_decl_index): New array.
2897         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
2898         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
2899         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
2900         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
2901         (mips_init_builtins): Initialize mips_get_builtin_decl_index
2902         array.
2903         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
2904         hook.
2905         (mips_expand_builtin_insn): Prepare operands for
2906         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
2907         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
2908         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
2909         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
2910         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
2911         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
2912         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
2913         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
2914         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
2915         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
2916         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
2917         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
2918         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
2919         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
2920         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
2921         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
2922         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
2923         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
2924         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
2925         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
2926         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
2927         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
2928         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
2929         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
2930         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
2931         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
2932         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
2933         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
2934         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
2935         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
2936         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
2937         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
2938         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
2939         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
2940         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
2941         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
2942         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
2943         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
2944         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
2945         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
2946         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
2947         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
2948         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
2949         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
2950         These are set implicitly and an error is reported if overridden.
2951         (mips_expand_builtin_msa_test_branch): New function.
2952         (mips_expand_msa_shuffle): Likewise.
2953         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
2954         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
2955         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
2956         (mips_expand_vec_unpack): Add support for MSA.
2957         (mips_expand_vector_init): Likewise.
2958         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
2959         instead of const0_rtx.
2960         (mips_msa_vec_parallel_const_half): New function.
2961         (mips_gen_const_int_vector): Likewise.
2962         (mips_gen_const_int_vector_shuffle): Likewise.
2963         (mips_expand_msa_cmp): Likewise.
2964         (mips_expand_vec_cond_expr): Likewise.
2965         * config/mips/mips.h
2966         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
2967         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
2968         specified.
2969         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
2970         (ISA_HAS_MSA): New macro.
2971         (UNITS_PER_MSA_REG): Likewise.
2972         (BITS_PER_MSA_REG): Likewise.
2973         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
2974         (MSA_REG_FIRST): New macro.
2975         (MSA_REG_LAST): Likewise.
2976         (MSA_REG_NUM): Likewise.
2977         (MSA_REG_P): Likewise.
2978         (MSA_REG_RTX_P): Likewise.
2979         (MSA_SUPPORTED_MODE_P): Likewise.
2980         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
2981         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
2982         * config/mips/mips.md: Include mips-msa.md.
2983         (alu_type): Add simd_add.
2984         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
2985         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
2986         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
2987         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
2988         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
2989         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
2990         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
2991         simd_move, simd_load, simd_store.  Choose "multi" for moves
2992         for "qword_mode".
2993         (qword_mode): New attribute.
2994         (insn_count): Add instruction count for quad moves.
2995         Increase the count for MIPS SIMD division.
2996         (UNITMODE): Add UNITMODEs for vector types.
2997         (addsub): New code iterator.
2998         * config/mips/mips.opt (mmsa): New option.
2999         * config/mips/msa.h: New file.
3000         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
3001         specified.
3002         * config/mips/mti-linux.h: Likewise.
3003         * config/mips/predicates.md
3004         (const_msa_branch_operand): New constraint.
3005         (const_uimm3_operand): Likewise.
3006         (const_uimm4_operand): Likewise.
3007         (const_uimm5_operand): Likewise.
3008         (const_uimm8_operand): Likewise.
3009         (const_imm5_operand): Likewise.
3010         (aq10b_operand): Likewise.
3011         (aq10h_operand): Likewise.
3012         (aq10w_operand): Likewise.
3013         (aq10d_operand): Likewise.
3014         (const_m1_operand): Likewise.
3015         (reg_or_m1_operand): Likewise.
3016         (const_exp_2_operand): Likewise.
3017         (const_exp_4_operand): Likewise.
3018         (const_exp_8_operand): Likewise.
3019         (const_exp_16_operand): Likewise.
3020         (const_vector_same_val_operand): Likewise.
3021         (const_vector_same_simm5_operand): Likewise.
3022         (const_vector_same_uimm5_operand): Likewise.
3023         (const_vector_same_uimm6_operand): Likewise.
3024         (const_vector_same_uimm8_operand): Likewise.
3025         (par_const_vector_shf_set_operand): Likewise.
3026         (reg_or_vector_same_val_operand): Likewise.
3027         (reg_or_vector_same_simm5_operand): Likewise.
3028         (reg_or_vector_same_uimm6_operand): Likewise.
3029         * doc/extend.texi (MIPS SIMD Architecture Functions): New
3030         section.
3031         * doc/invoke.texi (-mmsa): Document new option.
3033 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3035         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
3036         * configure: Regenerate.
3037         * config.in: Regenerate.
3038         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
3039         on -fvtable-verify.
3040         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
3041         (ENDFILE_VTV_SPEC): Define.
3043 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
3045         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
3046         registers in all interrupt handlers if necessary.
3047         (rl78_option_override): Add warning.
3048         (MUST_SAVE_MDUC_REGISTERS): New macro.
3049         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
3050         * config/rl78/rl78.c (check_mduc_usage): New function.
3051         (mduc_regs): New structure to hold MDUC register data.
3052         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
3053         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
3054         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
3055         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
3056         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
3057         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
3059 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
3061         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
3062         (tree-ssa-loop-niter.h): Ditto.
3063         (idx_within_array_bound, ref_within_array_bound): New functions.
3064         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
3065         Factor out check on writable base object to ...
3066         (base_object_writable): ... here.
3068 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3070         * config/arm/arm.md (probe_stack): Add modes to set source
3071         and destination.
3073 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
3075         * regrename.c (base_reg_class_for_rename): New static function.
3076         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
3078 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
3080         * cgraph.c (thunk_adjust): Export.
3081         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
3082         * cgraphunit.c (thunk_adjust): Export.
3083         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
3084         thunks.
3085         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
3086         inlinable.
3087         * tree-inline.c (expand_call_inline): Expand thunks inline.
3089 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
3091         PR target/70998
3092         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
3093         (*sse2_vd_cvtss2sd): Ditto.
3094         * config/i386/i386.md
3095         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
3096         Generate *sse2_vd_cvtsd2ss pattern.
3097         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
3098         Generate *sse2_vd_cvtss2sd pattern.
3100 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
3102         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
3103         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
3104         users.
3106 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
3108         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
3109         * config/sh/sh.c: Define and declare variables on first use throughout
3110         the file.
3111         (current_function_interrupt): Change to bool type.
3112         (frame_insn): Rename to emit_frame_insn and update users.
3113         (push_regs): Use bool for 'interrupt_handler' argument.
3114         (save_schedule_s): Remove.
3115         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
3116         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
3117         targetm.asm_out.unaligned_op.di.
3118         (gen_far_branch): Remove redundant forward declaration.
3119         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
3120         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
3121         (sh_set_return_address, sh_function_ok_for_sibcall,
3122         scavenge_reg): Update comments.
3123         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
3124         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
3125         (sh_attr_renesas_p): Remove unnecessary parentheses.
3126         (branch_dest): Simplify.
3127         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
3128         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
3129         (CUMULATIVE_ARGS): Change macro to typedef.
3130         (current_function_interrupt): Change to bool type.
3131         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
3132         Surround with __cplusplus ifdef.
3133         (sh_compare_op0, sh_compare_op1): Remove.
3134         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
3136 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
3138         * config/arm/arm.md: (arch): Add neon.
3139         (arch_enabled): Return yes for arch neon when TARGET_NEON.
3140         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
3141         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
3142         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
3143         attributes for alt renumbering.  Mark alt 3 as non-predicable.
3144         (thumb2_movdf_vfp): Likewise.
3146 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
3148         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
3149         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
3150         (*andqi_1): Add preferred_for_speed attribute to disparage
3151         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
3152         (*<code>qi_1): Ditto.
3153         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
3154         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
3155         (*ashlqi3_1): Ditto.
3156         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
3157         Add preferred_for_size attribute to disparage alternative 0 and
3158         preferred_for_speed attribute to disparage alternative 1 for
3159         TARGET_PARTIAL_REG_STALL targets.
3161 2016-05-07  Tom de Vries  <tom@codesourcery.com>
3163         PR tree-optimization/70956
3164         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
3165         def.
3167 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
3169         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
3170         * config/sh/sh.c (sh_cbranch_distance): Implement it.
3171         * config/sh/sh.md (branch_zero): Remove define_attr.
3172         (define_delay): Disable delay slot if branch distance is one insn.
3174 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
3176         * config/i386/i386.md (LEAMODE): New mode attribute.
3177         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
3178         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
3179         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
3180         operand 2 predicate.
3181         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
3182         (*lea<mode>_general_3): Ditto.
3183         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
3185 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
3187         * genmddump.c (main): Convert argv from char ** to const char **.
3189 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
3191         * coretypes.h (OVERRIDE): New macro.
3192         (FINAL): New macro.
3194 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
3196         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
3197         allow coalescing if the types are compatible.
3199 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
3201         * pass_manager.h (pass_manager::register_pass_name): New method.
3202         (pass_manager::get_pass_by_name): New method.
3203         (pass_manager::create_pass_tab): New method.
3204         (pass_manager::m_name_to_pass_map): New field.
3205         * passes.c (name_to_pass_map): Delete global in favor of field
3206         "m_name_to_pass_map" of pass_manager.
3207         (register_pass_name): Rename from a function to...
3208         (pass_manager::register_pass_name): ...this method, updating
3209         for renaming of global "name_to_pass_map" to field
3210         "m_name_to_pass_map".
3211         (create_pass_tab): Rename from a function to...
3212         (pass_manager::create_pass_tab): ...this method, updating
3213         for renaming of global "name_to_pass_map" to field.
3214         (get_pass_by_name): Rename from a function to...
3215         (pass_manager::get_pass_by_name): ...this method.
3216         (enable_disable_pass): Convert use of get_pass_by_name to
3217         a method call, locating the pass_manager singleton.
3219 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
3221         * genattr-common.c (main): Convert argv from char ** to const char **.
3222         * genattr.c (main): Likewise.
3223         * genattrtab.c (main): Likewise.
3224         * genautomata.c (initiate_automaton_gen): Likewise.
3225         (main): Likewise.
3226         * gencodes.c (main): Likewise.
3227         * genconditions.c (main): Likewise.
3228         * genconfig.c (main): Likewise.
3229         * genconstants.c (main): Likewise.
3230         * genemit.c (main): Likewise.
3231         * genenums.c (main): Likewise.
3232         * genextract.c (main): Likewise.
3233         * genflags.c (main): Likewise.
3234         * genmddeps.c (main): Likewise.
3235         * genopinit.c (main): Likewise.
3236         * genoutput.c (main): Likewise.
3237         * genpeep.c (main): Likewise.
3238         * genpreds.c (main): Likewise.
3239         * genrecog.c (main): Likewise.
3240         * gensupport.c (init_rtx_reader_args_cb): Likewise.
3241         (init_rtx_reader_args): Likewise.
3242         * gensupport.h (init_rtx_reader_args_cb): Likewise.
3243         (init_rtx_reader_args): Likewise.
3244         * gentarget-def.c (main): Likewise.
3245         * read-md.c (read_md_files): Likewise.
3246         * read-md.h (read_md_files): Likewise.
3248 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
3250         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
3251         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
3252         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
3253         Remove unused predicate.
3254         (register_and_not_fp_reg_operand): Ditto.
3256 2016-05-06  Martin Liska  <mliska@suse.cz>
3258         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
3259         instead of vec as the vector is local to the function.
3261 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
3263         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
3264         avx512bw alternative.
3266         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
3267         before the ashr<mode>3 pattern.
3269         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
3270         v instead of x in vex or maybe_vex alternatives, use
3271         maybe_evex instead of vex in prefix.
3273         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
3274         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
3275         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
3276         in vex or maybe_vex alternatives, use maybe_evex instead of vex
3277         in prefix.
3279         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
3280         v instead of x in vex or maybe_vex alternatives, use
3281         maybe_evex instead of vex in prefix.
3283         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
3284         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
3285         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
3286         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
3287         alternatives, use maybe_evex instead of vex in prefix.
3289         * config/i386/sse.md (vec_interleave_lowv4sf,
3290         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
3291         v instead of x in vex or maybe_vex alternatives, use
3292         maybe_evex instead of vex in prefix.
3294         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
3295         v instead of x in vex or maybe_vex alternatives, use
3296         maybe_evex instead of vex in prefix.
3298         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
3299         v constraint instead of x.
3301 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
3303         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
3304         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
3305         equality first.
3307 2016-05-06  Richard Biener  <rguenther@suse.de>
3309         PR tree-optimization/70948
3310         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3311         Properly clobber all fields of va_list for __builtin_va_start.
3313 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
3315         PR debug/70935
3316         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
3317         loop latch destination.
3319 2016-05-06  Martin Liska  <mliska@suse.cz>
3321         * tree-ssa-uninit.c: Apply manual changes
3322         to the GNU coding style.
3323         (prune_uninit_phi_opnds): Rename from
3324         prune_uninit_phi_opnds_in_unrealizable_paths.
3326 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3328         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
3329         mspace): Remove deprecated options.
3330         * doc/invoke.texi (SH options): Remove -mspace.
3332 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3334         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
3336 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3338         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
3339         corresponding combine split pattern.
3341 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3343         PR target/58219
3344         * config/sh/predicates.md (long_displacement_mem_operand): New.
3345         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
3346         Add movi20, movi20s alternatives.  Adjust length attribute for
3347         alternatives.
3348         (movsi_ie): Allow for any FPU.  Adjust length attribute for
3349         alternatives.
3350         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
3351         attribute for alternatives.
3352         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
3353         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
3354         length attribute for alternatives.
3356 2016-05-06  Richard Biener  <rguenther@suse.de>
3358         PR tree-optimization/70960
3359         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
3361 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3363         PR target/52933
3364         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
3365         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
3367 2016-05-06  Marek Polacek  <polacek@redhat.com>
3369         PR sanitizer/70875
3370         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
3372 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3374         PR target/54089
3375         * config/sh/sh.md (*rotcr): Add another variant.
3377 2016-05-06  Richard Biener  <rguenther@suse.de>
3379         PR middle-end/70931
3380         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
3382 2016-05-06  Richard Biener  <rguenther@suse.de>
3384         PR middle-end/70941
3385         * fold-const.c (split_tree): Always convert to the original type
3386         before negating.
3388 2016-05-06  Richard Biener  <rguenther@suse.de>
3390         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
3391         (fwprop_addr): Likewise.
3393 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
3395         PR target/70873
3396         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
3397         New prototype.
3398         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
3399         * config/i386/i386.md (push mem splitter): Use find_constant_src in
3400         the splitter condition.
3401         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
3402         the splitter condition.
3403         (FP float_extend load splitter): Ditto.
3405 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
3407         * config/i386/i386.md (peehole2 patterns): Change true_regnum
3408         to REGNO in all peephole2 patterns.
3409         (post-reload splitters): Change true_regnum to REGNO in
3410         post-reload splitters.
3411         (zero_extend splitters): Use general_reg_operand and
3412         nonimmediate_gr_operand predicates.
3414 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
3416         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
3417         v constraint instead of x.
3419 2016-05-05  Alan Modra  <amodra@gmail.com>
3421         PR target/68662
3422         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
3423         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
3424         TARGET_NO_FP_IN_TOC for -mrelocatable.
3425         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
3426         TARGET_RELOCATABLE test.
3427         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3428         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3429         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
3430         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3431         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3432         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
3433         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3434         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3435         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
3436         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
3437         Likewise.
3438         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
3439         (rs6000_stack_info): Likewise.
3440         (rs6000_elf_asm_out_constructor): Likewise.
3441         (rs6000_elf_asm_out_destructor): Likewise.
3442         (rs6000_elf_declare_function_name): Likewise.
3443         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
3444         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
3445         Don't define.
3447 2016-05-05  Alan Modra  <amodra@gmail.com>
3449         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
3451 2016-05-05  Alan Modra  <amodra@gmail.com>
3453         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
3454         out-of-line gpr restore for one or two regs if that would add
3455         a save of lr.
3457 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
3459         PR target/70873
3460         * config/i386/i386.md
3461         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
3462         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
3463         as operand 0 predicate.
3464         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
3465         Ditto.
3466         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
3467         Ditto.  Emit the pattern using RTX.
3469         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
3470         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
3471         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
3472         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
3473         Ditto.
3474         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
3475         sse_reg_operand as operand 0 predicate.
3477         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
3478         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
3479         instead of gen_rtx_REG.
3480         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
3481         Ditto.
3483 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
3485         * function.c (emit_use_return_register_into_block): Delete.
3486         (gen_return_pattern): Delete.
3487         (emit_return_into_block): Delete.
3488         (active_insn_between): Delete.
3489         (convert_jumps_to_returns): Delete.
3490         (emit_return_for_exit): Delete.
3491         (thread_prologue_and_epilogue_insns): Delete all code dealing with
3492         simple_return for shrink-wrapped blocks.
3493         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
3494         end of blocks that need one.
3495         (get_unconverted_simple_return): Delete.
3496         (convert_to_simple_return): Delete.
3497         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
3498         (convert_to_simple_return): Ditto.
3500 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
3502         * cfgcleanup.c (bb_is_just_return): New function.
3503         (try_optimize_cfg): Simplify jumps to return, branches to return,
3504         and branches around return.
3506 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
3508         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
3509         branch to a return.
3511 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
3513         PR c++/70906
3514         PR c++/70933
3515         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
3516         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
3517         assert flags & OEP_HASH_CHECK, instead of asserting it
3518         never happens.  Handle TARGET_EXPR.
3519         * fold-const.c (operand_equal_p): For hash verification,
3520         or in OEP_HASH_CHECK into flags.
3522 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3524         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
3525         comment.
3526         (compute_samebase_partition_bases): Fix typo.
3528 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
3530         * config/i386/sse.md (vec_interleave_highv8sf,
3531         vec_interleave_lowv8sf, vec_interleave_highv4df,
3532         vec_interleave_lowv4df): Remove constraints from expanders.
3534         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
3536 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
3538         * tree-inline.c (expand_call_inline): Fix path dealing with
3539         making lhs of call statement undefined.
3541 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
3543         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
3544         Check availability on NODE, too.
3545         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
3546         (cgraph_node::call_for_symbol_and_aliases): Likewise.
3547         (varpool_node::call_for_symbol_and_aliase): Likewise.
3548         * ipa-pure-const.c (add_new_function): Analyze all bodies.
3549         (propagate_pure_const): Propagate across interposable functions, too.
3550         (skip_function_for_local_pure_const): Do not skip interposable bodies
3551         with aliases.
3552         (pass_local_pure_const::execute): Update.
3554 2016-05-04  Marek Polacek  <polacek@redhat.com>
3556         * doc/invoke.texi: Document -Wdangling-else.
3558 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3560         * config.gcc: Error out when conflicting multilib is detected.  Do not
3561         loop over multilibs since no combination is legal.
3563 2016-05-04  Alan Modra  <amodra@gmail.com>
3565         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
3566         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
3567         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
3568         Align .toc.
3570 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
3572         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
3573         Clean up p5600 comments.
3575 2016-05-04  Richard Biener  <rguenther@suse.de>
3577         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
3578         constructor simplifications.
3579         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
3581 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
3583         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
3584         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
3585         result.set_rtx is null instead of aborting.
3586         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
3587         Always enable.
3588         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
3589         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
3590         *mov<mode>_store_postinc): New patterns.
3592 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
3594         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
3595         as commutative.  Check both conversions are NOP.
3596         ((A & B) OP (C & B)): Remove.
3598 2016-05-04  Alan Modra  <amodra@gmail.com>
3600         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
3602 2016-05-04  Alan Modra  <amodra@gmail.com>
3604         PR target/70866
3605         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
3606         when cr2,3,4 are all fixed regs.
3608 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
3610         PR rtl-optimization/57193
3611         * opts.c (default_options_table): Revert OPT_frename_registers change.
3612         * doc/invoke.texi (-frename-registers, -O2): Likewise.
3614 2016-05-03  Martin Sebor  <msebor@redhat.com>
3616         PR c++/66561
3617         * builtins.c (fold_builtin_FILE): New function.
3618         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
3619         (fold_builtin_0): Call them.
3620         * gimplify.c (gimplify_call_expr): Remove the handling of
3621         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
3623         PR c++/66561
3624         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
3625         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
3626         constants.
3628         PR c++/66639
3629         * doc/extend.texi (Function Names as Strings): Update __func__,
3630         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
3631         constants.
3633 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
3634             Richard Biener  <rguenther@suse.de>
3636         PR tree-optimization/70916
3637         * tree-if-conv.c: Include cfganal.h.
3638         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
3639         and remove_fake_exit_edges around the optimization pass.
3641 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
3643         * cgraph.c (symbol_table::create_edge): Set inline_failed.
3644         (cgraph_edge::make_direct): Likewise.
3645         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
3646         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
3647         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
3648         (CIF_THUNK): New code.
3649         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
3650         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
3651         (compute_inline_parameters): Set inline_failed for thunks.
3652         (inline_analyze_function): Cleanup.
3653         * ipa-inline.c (can_inline_edge_p): Do not deal with
3654         call_stmt_cannot_inline_p.
3655         (can_early_inline_edge_p): Likewise.
3656         (early_inliner): Initialize inline_failed.
3657         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
3659 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
3661         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
3662         from nonimm_ssenomem_operand.
3663         (nonimm_ssenomem_operand): New predicate.
3664         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
3665         as operand 0 predicate.
3666         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
3667         Disable unsupported alternatives using "enabled" attribute.
3668         Use register_ssemem_operand as operand 0 predicate.
3669         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
3671 2016-05-03  Marek Polacek  <polacek@redhat.com>
3673         PR c/70859
3674         * input.c (expansion_point_location): New function.
3675         * input.h (expansion_point_location): Declare.
3677 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
3679         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
3680         occurence with frame_offset_ ones.
3682 2016-05-03  Alan Modra  <amodra@gmail.com>
3684         PR rtl-optimization/70890
3685         * ira.c (combine_and_move_insns): When moving def_insn, remove
3686         equivs on use_insn.
3688 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3690         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
3691         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
3692         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
3693         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
3695 2016-05-03  Alan Modra  <amodra@gmail.com>
3697         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
3698         for SAVE_MULTIPLE/STORE_MULTIPLE.
3700 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
3702         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
3703         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
3705 2016-05-03  Richard Biener  <rguenther@suse.de>
3707         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
3708         default true.
3709         (gimplify_arg): Likewise.
3710         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
3711         re-writing the result to a decl if required.
3712         (internal_get_tmp_var): Add allow_ssa parameter
3713         and override into_ssa with it.
3714         (get_formal_tmp_var): Adjust.
3715         (get_initialized_tmp_var): Add allow_ssa parameter.
3716         (gimplify_arg): Add allow_ssa parameter and avoid generating
3717         SSA names for the result false.
3718         (gimplify_call_expr): If the call may return twice do not
3719         gimplify parameters into SSA.
3720         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
3721         (gimplify_modify_expr): Adjust assert.  For noreturn calls
3722         with a SSA name LHS adjust its def.
3723         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
3724         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
3725         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
3726         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
3727         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
3728         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
3729         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
3730         (optimize_target_teams): Do not allow SSA names for clause operands.
3731         (gimplify_expr): Likewise for where we mark the result addressable.
3732         * passes.def (pass_init_datastructures): Remove.
3733         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
3734         (rewrite_stmt): Likewise.
3735         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
3736         (replace_locals_op): Replace SSA names.
3737         (copy_gimple_seq_and_replace_locals): Init src_cfun.
3738         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
3739         * cgraph.c (release_function_body): Free CFG annotations only
3740         when we have a CFG.  Simplify.
3741         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
3742         force_gimple_operand instead of get_initialized_tmp_var.
3743         * tree-pass.h (make_pass_init_datastructures): Remove.
3744         * tree-ssa.c (execute_init_datastructures): Remove.
3745         (pass_data_init_datastructures): Likewise.
3746         (class pass_init_datastructures): Likewise.
3747         (make_pass_init_datastructures): Likewise.
3748         * omp-low.c (create_omp_child_function): Init SSA data structures.
3749         (grid_expand_target_grid_body): Likewise.
3750         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
3751         name before adding it to names_to_release.
3752         (remove_bb): Always release SSA defs.
3753         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
3754         before dereferencing it.
3755         * cgraphunit.c (init_lowered_empty_function): Always
3756         int SSA data structures.
3757         * tree-ssanames.c (release_defs): Remove assert that we are in
3758         SSA form.
3759         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
3761 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
3762             Uros Bizjak  <ubizjak@gmail.com>
3764         PR rtl-optimization/70467
3765         * config/i386/predicates.md (x86_64_hilo_int_operand,
3766         x86_64_hilo_general_operand): New predicates.
3767         * config/i386/constraints.md (Wd): New constraint.
3768         * config/i386/i386.md (mode attr di): Use Wd instead of e.
3769         (general_hilo_operand): New mode attr.
3770         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
3771         instead of <general_operand>.
3772         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
3773         x86_64_hilo_general_operand instead of <general_operand>.
3775 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
3777         PR tree-optimization/70916
3778         * tree-if-conv.c (constant_or_ssa_name): Removed.
3779         (fold_build_cond_expr): Use is_gimple_val instead of
3780         constant_or_ssa_name.
3782         PR tree-optimization/70916
3783         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
3784         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
3786         PR target/49244
3787         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
3788         (optimize_atomic_bit_test_and): New function.
3789         (pass_fold_builtins::execute): Use it.
3790         * optabs.def (atomic_bit_test_and_set_optab,
3791         atomic_bit_test_and_complement_optab,
3792         atomic_bit_test_and_reset_optab): New optabs.
3793         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
3794         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
3795         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
3796         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
3797         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
3798         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
3799         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
3800         * doc/md.texi (atomic_bit_test_and_set@var{mode},
3801         atomic_bit_test_and_complement@var{mode},
3802         atomic_bit_test_and_reset@var{mode}): Document.
3803         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
3804         atomic_bit_test_and_complement<mode>,
3805         atomic_bit_test_and_reset<mode>): New expanders.
3806         (atomic_bit_test_and_set<mode>_1,
3807         atomic_bit_test_and_complement<mode>_1,
3808         atomic_bit_test_and_reset<mode>_1): New insns.
3810 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
3812         PR rtl-optimization/70687
3813         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
3814         instead of unsigned HOST_WIDE_INT.
3816 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
3818         PR rtl-optimization/44281
3819         * hard-reg-set.h (struct target_hard_regs): New field
3820         x_fixed_nonglobal_reg_set.
3821         (fixed_nonglobal_reg_set): New macro.
3822         * reginfo.c (init_reg_sets_1): Initialize it.
3823         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
3824         of fixed_reg_set.
3825         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
3827 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
3829         PR tree-optimization/56541
3830         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
3831         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
3832         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
3833         (any_complicated_phi): new static variable.
3834         (aggressive_if_conv): delete.
3835         (if_convertible_phi_p): support phis with more than two arguments.
3836         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
3837         critical pred edges.
3838         (ifcvt_split_critical_edges): support phis with more than two
3839         arguments by checking new parameter.  only split critical edges
3840         if needed.
3841         (tree_if_conversion): handle simd pragma marked loop using new
3842         local variable aggressive_if_conv.  check any_complicated_phi.
3844 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
3846         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
3847         before using it.
3849 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
3851         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
3852         cbase.
3854 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
3856         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
3857         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
3858         define_insn_and_split.
3859         (mulsi3_i): New define_insn_and_split.
3860         (mulsi3_call): Convert to define_insn.
3861         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
3862         Remove constraints.
3864 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3866         * machmode.h (mode_complex): Add support to give the complex mode
3867         for a given mode.
3868         (GET_MODE_COMPLEX_MODE): Likewise.
3869         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
3870         stored by build_complex_type and gfc_build_complex_type instead of
3871         trying to figure out the appropriate mode based on the size. Raise
3872         an assertion error, if the type was not set.
3873         * genmodes.c (struct mode_data): Add field for the complex type of
3874         the given type.
3875         (blank_mode): Likewise.
3876         (make_complex_modes): Remember the complex mode created in the
3877         base type.
3878         (emit_mode_complex): Write out the mode_complex array to map a
3879         type mode to the complex version.
3880         (emit_insn_modes_c): Likewise.
3881         * tree.c (build_complex_type): Set the complex type to use before
3882         calling layout_type.
3883         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
3884         support for __float128 complex datatypes.
3885         (rs6000_hard_regno_mode_ok): Likewise.
3886         (rs6000_setup_reg_addr_masks): Likewise.
3887         (rs6000_complex_function_value): Likewise.
3888         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
3889         __float128 and __ibm128 complex.
3890         (FLOAT128_IBM_P): Likewise.
3891         (ALTIVEC_ARG_MAX_RETURN): Likewise.
3892         * doc/extend.texi (Additional Floating Types): Document that
3893         -mfloat128 must be used to enable __float128.  Document complex
3894         __float128 and __ibm128 support.
3896 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
3898         PR target/49244
3899         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
3900         char/short arguments promoted to int because of promote_prototypes.
3902 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
3904         * config/i386/predicates.md (register_ssemem_operand): New predicate.
3905         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
3906         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
3907         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
3908         alternatives using "enabled" attribute.  Use register_ssemem_operand
3909         as operand 1 predicate.
3910         (*cmpi<unord>xf_i387): Split XFmode pattern from
3911         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
3912         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
3913         *absneg<mode>2_i387.  Disable unsupported alternatives using
3914         "enabled" attribute.
3915         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
3917 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
3919         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
3920         marker.
3921         (oacc_loop_process): Check mask for loop termination.
3923 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
3925         * cif-code.def (CIF_THUNK): Add.
3926         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
3927         accidental change.
3929 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
3931         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
3932         (dump_inline_summary): Dump it.
3933         (fp_expression_p): New predicate.
3934         (estimate_function_body_sizes): Use it.
3935         (inline_merge_summary): Merge fp_expressions.
3936         (inline_read_section): Read fp_expressions.
3937         (inline_write_summary): Write fp_expressions.
3938         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
3939         codegen boundary if either caller or callee is !fp_expressions.
3940         * ipa-inline.h (inline_summary): Add fp_expressions.
3941         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
3942         to fp_expressions be sure the fp generation flags are updated.
3944 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
3946         PR rtl-optimization/70467
3947         * cse.c (cse_insn): Handle no-op MEM moves after folding.
3949         PR rtl-optimization/70467
3950         * ipa-pure-const.c (check_call): Handle internal calls even in
3951         ipa mode like in local mode.
3953 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3955         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
3957 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
3959         * match.pd (X u< X, X u> X): New transformations.
3961 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
3963         * flag-types.h (enum warn_strict_overflow_code): Move ...
3964         * coretypes.h: ... here.
3965         * fold-const.h (fold_overflow_warning): Declare.
3966         * fold-const.c (fold_overflow_warning): Make non-static.
3967         (fold_comparison): Move the transformation of X +- C1 CMP C2
3968         into X CMP C2 -+ C1 ...
3969         * match.pd: ... here.
3970         * gimple-fold.c (fold_stmt_1): Protect with
3971         fold_defer_overflow_warnings.
3973 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
3975         * omp-low.c (struct oacc_loop): Add 'inner' field.
3976         (new_oacc_loop_raw): Initialize it to zero.
3977         (oacc_loop_fixed_partitions): Initialize it.
3978         (oacc_loop_auto_partitions): Partition outermost loop to outermost
3979         available partitioning.
3981 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
3983         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
3984         register_operand.
3985         (umulsidi3): Likewise.
3986         (indirect_jump): Fix jump instruction assembly patterns.
3988 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
3990         PR target/70860
3991         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
3992         (nvptx_function_value): Assert non-NULL cfun.
3994 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
3996         PR rtl-optimization/70886
3997         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
3999         * cselib.h (rtx_equal_for_cselib_1): Declare.
4000         (rtx_equal_for_cselib_p: New inline function.
4001         * cselib.c (rtx_equal_for_cselib_p): Delete.
4002         (rtx_equal_for_cselib_1): Make public.
4004 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
4006         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
4007         (register_mixssei387nonimm_operand): Remove predicate.
4008         * config/i386/i386.md (*fop_<mode>_comm): Merge from
4009         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
4010         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
4011         for TARGET_MIX_SSE_I387 alternatives.
4012         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
4013         Disable unsupported alternatives using "enabled" attribute.  Use
4014         nonimm_ssenomem_operand as operand 1 predicate.  Also check
4015         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
4017 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
4019         * tree.c (cst_and_fits_in_hwi): Simplify.
4021 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
4023         * tree.h (wi::to_wide): New function.
4024         * expr.c (expand_expr_real_1): Use wi::to_wide.
4025         * fold-const.c (int_const_binop_1): Likewise.
4026         (extract_muldiv_1): Likewise.
4028 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
4030         * wide-int.h: Update offset_int and widest_int documentation.
4031         (WI_SIGNED_SHIFT_RESULT): New macro.
4032         (wi::binary_shift): Define signed_shift_result_type for
4033         shifts on offset_int- and widest_int-like types.
4034         (generic_wide_int): Support <<= and >>= if << and >> are supported.
4035         * tree.h (int_bit_position): Use shift operators instead of wi::
4036          shifts.
4037         * alias.c (adjust_offset_for_component_ref): Likewise.
4038         * expr.c (get_inner_reference): Likewise.
4039         * fold-const.c (fold_comparison): Likewise.
4040         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
4041         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
4042         * tree-dfa.c (get_ref_base_and_extent): Likewise.
4043         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
4044         (stmt_kills_ref_p): Likewise.
4045         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
4046         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
4047         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4048         (ao_ref_init_from_vn_reference): Likewise.
4050 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
4052         * wide-int.h: Update offset_int and widest_int documentation.
4053         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
4054         (wi::binary_traits): Allow ordered comparisons between offset_int and
4055         offset_int, between widest_int and widest_int, and between either
4056         of these types and basic C types.
4057         (operator <, <=, >, >=): Define for the same combinations.
4058         * tree.h (tree_int_cst_lt): Use comparison operators instead
4059         of wi:: comparisons.
4060         (tree_int_cst_le): Likewise.
4061         * gimple-fold.c (fold_array_ctor_reference): Likewise.
4062         (fold_nonarray_ctor_reference): Likewise.
4063         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
4064         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
4065         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
4066         * tree-sra.c (completely_scalarize): Likewise.
4067         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
4068         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
4069         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
4070         (check_for_binary_op_overflow): Likewise.
4071         (search_for_addr_array): Likewise.
4072         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
4074 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
4076         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
4077         (arc_save_restore): Likewise.
4078         (arc_dwarf_register_span): Likewise.
4079         (arc_output_pic_addr_const): Initialize suffix variable.
4081 2016-05-02  Martin Liska  <mliska@suse.cz>
4083         * symbol-summary.h (function_summary::function_summary):
4084         Remove checking assert for all cgraph nodes.
4085         (function_summary::get): Check summary_uid.
4086         (symtab_insertion): Check summary_uid.
4088 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
4090         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
4091         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
4092         bmaskn instruction.
4093         (arc_dwarf_register_span): Remove enum keyword.
4094         (compact_memory_operand_p): New function.
4095         * config/arc/arc.h (reg_class): Add code density register classes.
4096         (REG_CLASS_NAMES): Likewise.
4097         (REG_CLASS_CONTENTS): Likewise.
4098         * config/arc/arc.md (*movqi_insn): Add code density instructions.
4099         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
4100         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
4101         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
4102         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
4103         constraints.
4104         (h, Rcd, Rsd, Rzd): New register constraints.
4105         (T): Use compact_memory_operand_p function.
4106         * config/arc/predicates.md (compact_load_memory_operand): Remove.
4108 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
4110         * config/sh/sh.md (*negnegt, *movtt): Remove.
4112 2016-05-02  Marek Polacek  <polacek@redhat.com>
4113             Tom de Vries  <tom@codesourcery.com>
4115         PR tree-optimization/70700
4116         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
4117         bigger than FIRST_REF_NODE.
4119 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
4121         PR target/52898
4122         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
4123         TARGET_CMPEQDI_T.
4124         (prepare_cbranch_operands): Don't use scratch register.  Assume that
4125         function is used when pseudos can be created.
4126         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
4127         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
4128         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
4129         define_expand.  Allow it only when pseudos can be created.
4130         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
4132 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
4134         * config/i386/constraints.md (BC): Only allow -1 operands.
4135         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
4136         Add "enabled" attribute.  Update XI mode attribute calculation.
4137         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
4138         (*movoi_internal_avx): Update XI mode attribute calculation.
4139         (*movti_internal): Ditto.
4141 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
4143         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
4144         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
4146 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4148         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
4149         statement on instruction code.  Remove trailing spaces.
4150         (altivec_expand_stv_builtin): Likewise.
4152 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
4154         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
4155         (TARGET_FPU_DOUBLE): Simplify.
4156         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
4157         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
4158         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
4159         with 'TARGET_FPU_DOUBLE'.
4160         * config/sh/sh.md: Likewise.
4162 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
4164         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
4165         SH_DIV_STR_FOR_SIZE): Remove.
4166         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
4167         SH_DIV_STR_FOR_SIZE): Remove.
4169 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
4171         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
4172         logical_reg_operand): Delete.
4173         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
4174         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
4175         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
4176         match_operand and match_test.
4177         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
4178         variables on their first use.  Return bool values.
4179         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
4180         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
4181         arith_reg_operand for input operand.  Remove empty constraints.
4182         (xorsi3): Delete.
4183         (*xorsi3_compact): Rename to xorsi3.
4184         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
4185         (*zero_extend<mode>si2_disp_mem): Update comment.
4186         (mov_nop): Delete.
4188 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
4190         * config/sh/t-sh: Remove SH5 support.
4191         * config.gcc: Likewise.
4192         * configure: Likewise.
4194 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4196         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
4198 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
4200         * config/sh/sh.c (register_sh_passes, sh_option_override,
4201         sh_print_operand, prepare_move_operands,
4202         sh_can_follow_jump): Remove TARGET_SH1 checks.
4203         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
4204         PROMOTE_MODE): Likewise.
4205         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
4206         movdi): Likewise.
4208 2016-04-30  Alan Modra  <amodra@gmail.com>
4210         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
4211         restoring when fixed_reg_p, but allow out-of-line or stmw save.
4212         Check for user regs later to avoid unnecessary looping over regs.
4213         Merge user reg check with non-saved reg check.  Don't force
4214         inline VR restore when static chain used.
4215         (rs6000_frame_related): Omit eh_frame info for user regs when
4216         saving.
4217         (fixed_regs_p): Delete.
4219 2016-04-30  Alan Modra  <amodra@gmail.com>
4221         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
4222         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
4223         Update all uses.
4225 2016-04-30  Alan Modra  <amodra@gmail.com>
4227         PR target/69645
4228         * config/rs6000/rs6000.c (fixed_reg_p): New function.
4229         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
4230         Update all uses.
4232 2016-04-30  Alan Modra  <amodra@gmail.com>
4234         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
4235         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
4236         flag_pic test for Darwin.
4238 2016-04-30  Alan Modra  <amodra@gmail.com>
4240         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
4241         throw_calls_crossed.
4242         (REG_FREQ_CALLS_CROSSED): Delete.
4243         (REG_N_THROWING_CALLS_CROSSED): Delete.
4244         * regstat.c (regstat_bb_compute_ri): Don't calculate
4245         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
4246         (dump_reg_info): Don't print call cross frequency.
4247         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
4248         and REG_N_THROWING_CALLS_CROSSED.
4250 2016-04-30  Alan Modra  <amodra@gmail.com>
4252         * regs.h (struct reg_info_t): Delete live_length.
4253         (REG_LIVE_LENGTH): Delete macro.
4254         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
4255         local_live, local_processed and local_live_last_luid params.
4256         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
4257         Formatting fixes.
4258         (regstat_compute_ri): Adjust for above.  Don't set
4259         REG_LIVE_LENGTH.
4260         (dump_reg_info): Don't print live length.
4261         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
4262         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
4263         Localize loop_depth var.
4265 2016-04-30  Alan Modra  <amodra@gmail.com>
4267         * ira.c (enum valid_equiv): New.
4268         (validate_equiv_mem): Return enum.
4269         (update_equiv_mem): Create replacement in more cases.
4270         (add_store_equivs): Update validate_equiv_mem call.
4272 2016-04-30  Alan Modra  <amodra@gmail.com>
4274         * ira.c (combine_and_move_insns): Rather than scanning insns,
4275         use DF infrastucture to find use and def insns.
4277 2016-04-30  Alan Modra  <amodra@gmail.com>
4279         ira.c (combine_and_move_insns): Move invariant conditions..
4280         (ira.c): ..to here.  Call combine_and_move_insns before
4281         add_store_equivs.  Call grow_reg_equivs later.  Allocate
4282         req_equiv later using max_reg_num() rather than global max_regno.
4283         (contains_replace_regs): Delete.
4284         (add_store_equivs): Remove contains_replace_regs test.
4286 2016-04-30  Alan Modra  <amodra@gmail.com>
4288         * ira.c (struct equiv_mem_data): New.
4289         (equiv_mem, equiv_mem_modified): Delete static vars.
4290         (validate_equiv_mem_from_store): Use "data" param to communicate..
4291         (validate_equiv_mem): ..from here.
4293 2016-04-30  Alan Modra  <amodra@gmail.com>
4295         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
4296         split out from..
4297         (update_reg_equivs): ..here.  Move allocation and freeing of
4298         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
4299         end_alias_analysis to..
4300         (ira): ..here.
4302 2016-04-30  Alan Modra  <amodra@gmail.com>
4304         * ira.c (pdx_subregs): Delete.
4305         (struct equivalence): Add pdx_subregs field.
4306         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
4307         pdx_subregs access.
4308         (update_equiv_regs): Don't create or free pdx_subregs.  Update
4309         pdx_subregs access.
4311 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4313         * config/rs6000/altivec.h: Change definitions of vec_xl and
4314         vec_xst.
4315         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
4316         (LD_ELEMREV_V2DI): New.
4317         (LD_ELEMREV_V4SF): New.
4318         (LD_ELEMREV_V4SI): New.
4319         (LD_ELEMREV_V8HI): New.
4320         (LD_ELEMREV_V16QI): New.
4321         (ST_ELEMREV_V2DF): New.
4322         (ST_ELEMREV_V2DI): New.
4323         (ST_ELEMREV_V4SF): New.
4324         (ST_ELEMREV_V4SI): New.
4325         (ST_ELEMREV_V8HI): New.
4326         (ST_ELEMREV_V16QI): New.
4327         (XL): New.
4328         (XST): New.
4329         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4330         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
4331         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
4332         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
4333         (altivec_expand_builtin): Add handling for
4334         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
4335         (rs6000_invalid_builtin): Add error-checking for
4336         RS6000_BTM_P9_VECTOR.
4337         (altivec_init_builtins): Define builtins used to implement vec_xl
4338         and vec_xst.
4339         (rs6000_builtin_mask_names): Define power9-vector.
4340         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
4341         (RS6000_BTM_P9_VECTOR): Define.
4342         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
4343         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
4344         (vsx_ld_elemrev_v2df): Likewise.
4345         (vsx_ld_elemrev_v4sf): Likewise.
4346         (vsx_ld_elemrev_v4si): Likewise.
4347         (vsx_ld_elemrev_v8hi): Likewise.
4348         (vsx_ld_elemrev_v16qi): Likewise.
4349         (vsx_st_elemrev_v2df): Likewise.
4350         (vsx_st_elemrev_v2di): Likewise.
4351         (vsx_st_elemrev_v4sf): Likewise.
4352         (vsx_st_elemrev_v4si): Likewise.
4353         (vsx_st_elemrev_v8hi): Likewise.
4354         (vsx_st_elemrev_v16qi): Likewise.
4355         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
4356         grammar.
4358 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
4360         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
4361         out into ...
4362         (simplify_control_stmt_condition_1): ... here.  Recurse into
4363         BIT_AND_EXPRs and BIT_IOR_EXPRs.
4365 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
4367         PR target/69810
4368         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
4369         (zero_extendqi<mode>2_dot): Revert earlier conversion from
4370         define_insn_and_split to define_insn.
4371         (zero_extendqi<mode>2_dot2): Same.
4372         (extendqi<mode>2_dot): Same.
4373         (extendqi<mode>2_dot2): Same.
4375 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
4377         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
4378         (probe_stack): New expander.
4379         (probe_stack_<mode>): New insn pattern.
4381 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
4383         * config/i386/i386.md
4384         (operations with memory inputs setting flags peephole2):
4385         Remove uneeded REG_P checks.  Cleanup pattern generation.
4387 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
4389         * tree-vect-loop.c (vect_transform_loop): Fix
4390         nb_iterations_upper_bound computation for vectorized loop.
4392 2016-04-29  Marek Polacek  <polacek@redhat.com>
4393             Jakub Jelinek  <jakub@redhat.com>
4395         PR sanitizer/70342
4396         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
4397         TARGET_EXPR_SLOT as a base.
4399 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
4401         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
4402         with 'rCm2' constraints to limit possible immediate size.
4403         (*load_zeroextendqisi_update): Likewise.
4404         (*load_signextendqisi_update): Likewise.
4405         (*loadhi_update): Likewise.
4406         (*load_zeroextendhisi_update): Likewise.
4407         (*load_signextendhisi_update): Likewise.
4408         (*loadsi_update): Likewise.
4409         (*loadsf_update): Likewise.
4411 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
4413         * config/i386/predicates.md (constm1_operand): Fix comparison.
4415 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
4417         * testsuite/gcc.target/arc/ieee_eq.c: New test.
4419 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
4421         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
4422         remaining SH5 related settings.
4423         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
4424         shmedia_prepare_call_address): Delete.
4425         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
4426         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
4427         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
4428         UNSUPPORTED_SH2A): Remove m5 checks.
4429         (sh_divide_strategy_e): Remove SH5 division strategies.
4430         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
4431         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
4433 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4435         * config/s390/s390.c (s390_rtx_costs): Update documentation.
4437 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4439         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
4440         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
4441         Change lder to ldr.
4442         * config/s390/vector.md ("mov<mode>"): Likewise.
4444 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
4446         * config/s390/constraints.md ("U", "W"): Invoke
4447         s390_mem_constraint with "ZR" and "ZT".
4448         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
4449         addresses when using LRA.  Accept also short displacements for S
4450         and T constraints.  Do not check for long displacement target for
4451         S and T constraints.
4452         (s390_mem_constraint): Remove handling of U and W constraints.
4453         * config/s390/s390.md (various patterns): Remove the short
4454         displacement constraints (Q and R) if a long displacement
4455         constraint is present.  Add longdisp as required CPU capability.
4456         * config/s390/vector.md: Likewise.
4457         * config/s390/vx-builtins.md: Likewise.
4459 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4461         PR target/60040
4462         * reload1.c (reload): Call finish_spills before
4463         restarting reload loop. Skip select_reload_regs
4464         if update_eliminables_and_spill returns true.
4466 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
4468         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
4469         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
4470         (umulhisi3_imm): Update predicates and constraint letters.
4471         (umulhisi3_reg): Declare instruction as commutative.
4472         * config/arc/constraints.md (J12, J16): New constraints.
4473         * config/arc/predicates.md (short_unsigned_const_operand): New
4474         predicate.
4475         (arc_short_operand): Likewise.
4476         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
4478 2016-04-29  Richard Biener  <rguenther@suse.de>
4480         PR tree-optimization/13962
4481         PR tree-optimization/65686
4482         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
4483         * tree-ssa-alias.c (ptrs_compare_unequal): New function
4484         using PTA to compare pointers.
4485         * match.pd: Add pattern for pointer equality compare simplification
4486         using ptrs_compare_unequal.
4488 2016-04-29  Richard Biener  <rguenther@suse.de>
4490         * stor-layout.c (layout_type): Do not build a pointer-to-element
4491         type for arrays.
4493 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
4495         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
4496         Use SWI mode iterator.  Use general_reg_operand predicate.
4497         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
4498         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
4499         predicates.
4501 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
4503         PR middle-end/70843
4504         * fold-const.c (operand_equal_p): Don't verify hash value equality
4505         if arg0 == arg1.
4506         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
4507         and OMP_CLAUSE.
4509 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
4511         PR target/70858
4512         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
4513         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
4514         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
4515         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
4516         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
4518 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
4520         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
4521         to info.  Don't initialize separate fields to 0.  Clean up
4522         formatting a bit.
4524 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
4526         * config/i386/i386.md (peephole2s for operations with memory inputs):
4527         Use SWI mode iterator.
4528         (peephole2s for operations with memory outputs): Ditto.
4529         Do not check for stack checking probe.
4531         (probe_stack): Remove expander.
4533 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4534             Andrew Burgess  <andrew.burgess@embecosm.com>
4536         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
4537         operands as 32-bits.
4539 2016-04-28  Jason Merrill  <jason@redhat.com>
4541         * gdbinit.in: Skip line-map.h.
4543 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4544             Andrew Burgess  <andrew.burgess@embecosm.com>
4546         * config/arc/arc.c (arc_conditional_register_usage): Take
4547         TARGET_RRQ_CLASS into account.
4548         (arc_print_operand): Support printing 'p' and 's' operands.
4549         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
4550         as 0.
4551         (TARGET_RRQ_CLASS): Define.
4552         (IS_POWEROF2_OR_0_P): Define.
4553         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
4554         alternatives.
4555         (*tst_movb): New define_insn.
4556         (*tst): Avoid recognition if it could prevent '*tst_movb'
4557         combination; replace c/CnL with c/Chs alternative.
4558         (*tst_bitfield_tst): New define_insn.
4559         (*tst_bitfield_asr): New define_insn.
4560         (*tst_bitfield): New define_insn.
4561         (andsi3_i): Add Rrq variant.
4562         (extzv): New define_expand.
4563         (insv): New define_expand.
4564         (*insv_i): New define_insn.
4565         (*movb): New define_insn.
4566         (*movb_signed): New define_insn.
4567         (*movb_high): New define_insn.
4568         (*movb_high_signed): New define_insn.
4569         (*movb_high_signed + 1): New define_split pattern.
4570         (*mrgb): New define_insn.
4571         (*mrgb + 1): New define_peephole2 pattern.
4572         (*mrgb + 2): New define_peephole2 pattern.
4573         * config/arc/arc.opt (mbitops): New option for nps400, uses
4574         TARGET_NPS_BITOPS_DEFAULT.
4575         * config/arc/constraints.md (q): Make register class conditional.
4576         (Rrq): New register constraint.
4577         (Chs): New constraint.
4578         (Clo): New constraint.
4579         (Chi): New constraint.
4580         (Cbf): New constraint.
4581         (Cbn): New constraint.
4582         (C18): New constraint.
4583         (Cbi): New constraint.
4585 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
4587         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
4588         dst->popcount.
4589         (bitmap_intersection_of_preds): Ditto.
4590         (bitmap_union_of_succs): Ditto.
4591         (bitmap_union_of_preds): Ditto.
4592         * sbitmap.c (do_popcount): Delete.
4593         (BITMAP_DEBUGGING): Delete.
4594         (sbitmap_verify_popcount): Delete.
4595         (sbitmap_alloc): Don't initialize the popcount field.
4596         (sbitmap_alloc_with_popcount): Delete.
4597         (sbitmap_resize): Don't resize the popcount array.
4598         (sbitmap_vector_alloc): Don't initialize the popcount field.
4599         (bitmap_copy): Don't copy the popcount array.
4600         (bitmap_clear): Don't clear the popcount array.
4601         (bitmap_clear): Delete the popcount array handling.
4602         (bitmap_ior_and_compl): Delete the popcount assert.
4603         (bitmap_not): Ditto.
4604         (bitmap_and_compl): Ditto.
4605         (bitmap_and): Delete the popcount array handling.
4606         (bitmap_xor): Ditto.
4607         (bitmap_ior): Ditto.
4608         (bitmap_or_and): Delete the popcount assert.
4609         (bitmap_and_or): Ditto.
4610         (popcount_table): Delete.
4611         (sbitmap_elt_popcount): Delete.
4612         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
4613         (bitmap_set_bit): Delete the popcount assert.
4614         (bitmap_clear_bit): Ditto.
4615         (sbitmap_free): Don't free the popcount array.
4616         (sbitmap_alloc_with_popcount): Delete declaration.
4617         (sbitmap_popcount): Ditto.
4619 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4620             Andrew Burgess  <andrew.burgess@embecosm.com>
4622         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
4623         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
4624         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
4625         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
4626         * config/arc/arc.opt (mcmem): New option.
4627         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
4628         supply length for r/m alternative.
4629         (*extendqisi2_ac): Likewise.
4630         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
4631         r/Uex alternative.
4632         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
4633         (movhi_insn): Likewise.
4634         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
4635         (*zero_extendqihi2_i): Add r/Ucm alternative.
4636         (*zero_extendqisi2_ac): Likewise.
4637         (*zero_extendhisi2_i): Likewise.
4638         * config/arc/constraints.md (Uex): New memory constraint.
4639         (Ucm): New define_constraint.
4640         * config/arc/predicates.md (long_immediate_loadstore_operand):
4641         Return 0 for MEM with cmem_address address.
4642         (cmem_address_0): New predicates.
4643         (cmem_address_1): Likewise.
4644         (cmem_address_2): Likewise.
4645         (cmem_address): Likewise.
4647 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
4649         * config/rs6000/rs6000.c (machine_function): Rename
4650         insn_chain_scanned_p to spe_insn_chain_scanned_p.
4651         (rs6000_stack_info): Adjust.
4653 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4654             Andrew Burgess  <andrew.burgess@embecosm.com>
4656         * config/arc/constraints.md (Usd): Convert to define_constraint.
4657         (Us<): Likewise.
4658         (Us>): Likewise.
4660 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
4662         PR target/70821
4663         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
4664         Add new peephole2 where the first insn is *mov<mode>_or instead of
4665         *mov<mode>_internal.
4667 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
4669         * tracer.c (bb_seen): Make static.
4671 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
4673         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
4674         support, setup defaults.
4675         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
4676         * config/arc/arc.c (arc_init): Add NPS400 support.
4677         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
4678         (TARGET_ARC700): NPS400 is also an ARC700.
4679         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
4681 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
4683         PR target/70668
4684         * config/nds32/nds32.md (casesi): Don't access the operands array
4685         out of bounds.
4687 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
4689         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
4690         (or $-1,reg peephole2): Ditto.
4691         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
4693 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
4695         * doc/extend.texi (Common Function Attributes) [optimize]:
4696         Discourage use of the optimize attribute.
4698 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
4700         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
4701         special case builtin.
4702         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
4703         ALTIVEC_BUILTIN_VEC_ADDE.
4704         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4705         support for ALTIVEC_BUILTIN_VEC_ADDE.
4706         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4707         for __builtin_vec_adde.
4709 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
4711         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
4712         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
4714 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4716         PR testsuite/70595
4717         * doc/sourcebuild.texi (Effective-Target Keywords, Other
4718         attributes): Document cilkplus_runtime.
4720 2016-04-28  Martin Jambor  <mjambor@suse.cz>
4722         * tree-cfg.c (verify_expr): Verify that local declarations belong to
4723         this function.  Call verify_expr on MEM_REFs and bases of other
4724         handled_components.
4726 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4728         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
4729         for WORD_REGISTER_OPERATIONS to runtime check.
4731 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
4733         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
4735 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
4737         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
4738         big-endian compilation.
4739         * config/arc/arc.md (addf3): Likewise.
4740         (subdf3): Likewise.
4741         (muldf3): Likewise.
4743 2016-04-28  Richard Biener  <rguenther@suse.de>
4745         PR tree-optimization/70840
4746         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
4747         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
4748         Mark x * pow(x,c) -> pow(x,c+1) commutative.
4749         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
4751 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4753         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
4754         and explain why in a comment.
4756 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
4758         * config/arc/arc.md (cpu_facility): Add fpx variant.
4759         (subdf3): Prohibit use reverse sub when assist operations option
4760         is enabled.
4761         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
4762         instructions only when FPX is enabled.
4763         * testsuite/gcc.target/arc/trsub.c: New test.
4765 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
4767         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
4768         mult_operator when calculating "type" attribute.
4769         (*fop_<mode>_1_i387): Ditto.
4770         (*fop_xf_1_i387): Ditto.
4771         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
4772         Use std::swap to swap operands.  Use RTL expressions to generate
4773         converted pattern.
4775 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
4776             Joern Rennecke  <joern.rennecke@embecosm.com>
4778         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
4779         declaration.
4780         (emit_pic_move): Remove.
4781         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
4782         * config/arc/arc.c (emit_pic_move): Removed.
4783         (TARGET_HAVE_TLS): Define.
4784         (arc_conditional_register_usage): Test for arc_tp_regno.
4785         (arc_print_operand, arc_print_operand_address): Handle TLS
4786         unspecs.
4787         (arc_needs_pcl_p): New function.
4788         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
4789         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
4790         (arc_raw_symbolic_reference_mentioned_p): Likewise.
4791         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
4792         (arc_legitimize_tls_address): Likewise.
4793         (DTPOFF_ZERO_SYM): Define.
4794         (arc_legitimize_pic_address): Make it static, handle TLS cases.
4795         (arc_output_pic_addr_const): Print TLS unspecs.
4796         (prepare_pic_move): New function, replaces emit_pic_move.
4797         (arc_legitimate_constant_p): Handle TLS unspecs.
4798         (arc_legitimate_address_p): Likewise.
4799         (arc_rewrite_small_data_p): Use assert for TLS constants.
4800         (prepare_move_operands): Use prepare_pic_move.
4801         (arc_legitimize_address): Legitimize tls addresses.
4802         (arc_epilogue_uses): Check for arc_tp_regno.
4803         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
4804         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
4805         Define.
4806         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
4807         Likewise.
4808         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
4809         %(arc_tls_extra_start_spec).
4810         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
4811         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
4812         (EH_USES): Define.
4813         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
4814         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
4815         (UNSPEC_TLS_OFF): Add.
4816         (R10_REG): Define.
4817         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
4818         (get_thread_pointersi): New patterns.
4819         * config/arc/arc.opt (mtp-regno): New option.
4820         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
4821         (move_dest_operand): Likewise.
4822         * configure: Regenerate.
4823         * configure.ac: Add arc*-*-* case to test for tls.
4824         * doc/invoke.texi (ARC options): Document mtp-regno.
4826 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
4828         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
4829         the new ARC HS SIMD instructions.
4830         (arc_preferred_simd_mode): New function.
4831         (arc_autovectorize_vector_sizes): Likewise.
4832         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
4833         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
4834         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
4835         (arc_init_builtins): Add new SIMD builtin types.
4836         (arc_split_move): Handle 64 bit vector moves.
4837         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
4838         (TARGET_PLUS_QMACW): Define.
4839         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
4840         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
4841         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
4842         (VSUBADD4H): New builtins.
4843         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
4844         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
4846 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
4847             Matthias Klose  <doko@debian.org>
4849         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
4851 2016-04-28  Richard Biener  <rguenther@suse.de>
4853         PR middle-end/70777
4854         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
4855         canonicalization.
4857 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
4859         * common/config/sh/sh-common.c: Remove SH5 support.
4860         * config/sh/constraints.md: Likewise.
4861         * config/sh/config/sh/elf.h: Likewise.
4862         * config/sh/linux.h: Likewise.
4863         * config/sh/netbsd-elf.h: Likewise.
4864         * config/sh/predicates.md: Likewise.
4865         * config/sh/sh-c.c: Likewise.
4866         * config/sh/sh-protos.h: Likewise.
4867         * config/sh/sh.c: Likewise.
4868         * config/sh/sh.h: Likewise.
4869         * config/sh/sh.md: Likewise.
4870         * config/sh/sh.opt: Likewise.
4871         * config/sh/sync.md: Likewise.
4872         * config/sh/sh64.h: Delete.
4873         * config/sh/shmedia.h: Likewise.
4874         * config/sh/shmedia.md: Likewise.
4875         * config/sh/sshmedia.h: Likewise.
4876         * config/sh/t-netbsd-sh5-64: Likewise.
4877         * config/sh/t-sh64: Likewise.
4878         * config/sh/ushmedia.h: Likewise.
4880 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
4882         * config/i386/i386.md (sign_extend to memory peephole2s): Use
4883         general_reg_operand instead of register_operand predicate.
4885 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4887         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
4889 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
4891         * match.pd (A - B > A, A + B < A): New transformations.
4893 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
4895         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
4896         which defaults to true.  Emit an outer pair of parentheses only if
4897         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
4898         don't emit parentheses for the right-hand operand.
4900 2016-04-27  Jeff Law  <law@redhat.com>
4902         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
4904 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4906         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
4907         (altivec_lvx_<mode>_internal): Document.
4908         (altivec_lvx_<mode>_2op): New define_insn.
4909         (altivec_lvx_<mode>_1op): Likewise.
4910         (altivec_lvx_<mode>_2op_si): Likewise.
4911         (altivec_lvx_<mode>_1op_si): Likewise.
4912         (altivec_stvx_<mode>): Remove.
4913         (altivec_stvx_<mode>_internal): Document.
4914         (altivec_stvx_<mode>_2op): New define_insn.
4915         (altivec_stvx_<mode>_1op): Likewise.
4916         (altivec_stvx_<mode>_2op_si): Likewise.
4917         (altivec_stvx_<mode>_1op_si): Likewise.
4918         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4919         Expand vec_ld and vec_st during parsing.
4920         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
4921         changes.
4922         (altivec_expand_stvx_be): Likewise.
4923         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
4924         address-masking behavior in RTL.
4925         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
4926         address-masking behavior in RTL.
4927         (altivec_expand_builtin): Change builtin code arguments for calls
4928         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
4929         (insn_is_swappable_p): Avoid incorrect swap optimization in the
4930         presence of lvx/stvx patterns.
4931         (alignment_with_canonical_addr): New function.
4932         (alignment_mask): Likewise.
4933         (find_alignment_op): Likewise.
4934         (recombine_lvx_pattern): Likewise.
4935         (recombine_stvx_pattern): Likewise.
4936         (recombine_lvx_stvx_patterns): Likewise.
4937         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
4938         stvx patterns from expand.
4939         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
4940         expansions.
4941         (vector_altivec_store_<mode>): Likewise.
4943 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
4945         * config/aarch64/aarch64.md
4946         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
4947         remove the "fp" attributes.
4948         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
4949         add the "simd" attributes.
4950         (*movdf_aarch64): Likewise.
4951         (*movtf_aarch64): Remove the "fp" attributes.
4952         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
4953         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
4955 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
4957         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
4958         rtx to rtx_code_label *.
4959         * rtl.h (maybe_set_first_label_num): Likewise.
4961 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
4963         * df-core.c (df_add_problem): Make the problem param be const.
4964         (df_remove_problem): Make local "problem" be const.
4965         * df-problems.c (problem_RD): Make const.
4966         (problem_LR): Likewise.
4967         (problem_LIVE): Likewise.
4968         (problem_MIR): Likewise.
4969         (problem_CHAIN): Likewise.
4970         (problem_WORD_LR): Likewise.
4971         (problem_NOTE): Likewise.
4972         (problem_MD): Likewise.
4973         * df-scan.c (problem_SCAN): Likewise.
4974         * df.h (struct df_problem): Make field "dependent_problem" be
4975         const.
4976         (struct dataflow): Likewise for field "problem".
4977         (df_add_problem): Make param const.
4979 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
4981         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
4982         inter-unit moves to/from vector registers are enabled.  Do not disable
4983         for TARGET_MMX.
4985 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
4987         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
4988         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
4989         #define to...
4990         (enum df_problem_id): ...this new enum.
4991         (struct df_problem): Convert field "id" from "int" to
4992         enum df_problem_id.
4994 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
4996         * rtl.def: Update comment for "things in the instruction chain" to
4997         reflect the removal of the leading "i" field for INSN_UID in
4998         r210360.  Fix bogus apostrophe.
5000 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
5002         * config/i386/i386.md
5003         (lea arith with mem operand + setcc peephole2): Set operator mode.
5005 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
5007         PR target/70155
5008         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
5009         (dimode_scalar_to_vector_candidate_p): This.
5010         (timode_scalar_to_vector_candidate_p): New function.
5011         (scalar_to_vector_candidate_p): Likewise.
5012         (timode_check_non_convertible_regs): Likewise.
5013         (timode_remove_non_convertible_regs): Likewise.
5014         (remove_non_convertible_regs): Likewise.
5015         (remove_non_convertible_regs): Renamed to ...
5016         (dimode_remove_non_convertible_regs): This.
5017         (scalar_chain::~scalar_chain): Make it virtual.
5018         (scalar_chain::compute_convert_gain): Make it pure virtual.
5019         (scalar_chain::mark_dual_mode_def): Likewise.
5020         (scalar_chain::convert_insn): Likewise.
5021         (scalar_chain::convert_registers): Likewise.
5022         (scalar_chain::add_to_queue): Make it protected.
5023         (scalar_chain::emit_conversion_insns): Likewise.
5024         (scalar_chain::replace_with_subreg): Likewise.
5025         (scalar_chain::replace_with_subreg_in_insn): Likewise.
5026         (scalar_chain::convert_op): Likewise.
5027         (scalar_chain::convert_reg): Likewise.
5028         (scalar_chain::make_vector_copies): Likewise.
5029         (scalar_chain::convert_registers): New pure virtual function.
5030         (class dimode_scalar_chain): New class.
5031         (class timode_scalar_chain): Likewise.
5032         (scalar_chain::mark_dual_mode_def): Renamed to ...
5033         (dimode_scalar_chain::mark_dual_mode_def): This.
5034         (timode_scalar_chain::mark_dual_mode_def): New function.
5035         (timode_scalar_chain::convert_insn): Likewise.
5036         (dimode_scalar_chain::convert_registers): Likewise.
5037         (scalar_chain::compute_convert_gain): Renamed to ...
5038         (dimode_scalar_chain::compute_convert_gain): This.
5039         (scalar_chain::replace_with_subreg): Renamed to ...
5040         (dimode_scalar_chain::replace_with_subreg): This.
5041         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
5042         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
5043         (scalar_chain::make_vector_copies): Renamed to ...
5044         (dimode_scalar_chain::make_vector_copies): This.
5045         (scalar_chain::convert_reg): Renamed to ...
5046         (dimode_scalar_chain::convert_reg ): This.
5047         (scalar_chain::convert_op): Renamed to ...
5048         (dimode_scalar_chain::convert_op): This.
5049         (scalar_chain::convert_insn): Renamed to ...
5050         (dimode_scalar_chain::convert_insn): This.
5051         (scalar_chain::convert): Call convert_registers.
5052         (convert_scalars_to_vector): Change to scalar_chain pointer to
5053         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
5054         in 32-bit mode.  Delete scalar_chain pointer.  Call
5055         free_dominance_info in 64-bit mode.
5056         (pass_stv::gate): Remove TARGET_64BIT check.
5057         (ix86_option_override): Put the 64-bit STV pass before the CSE
5058         pass.
5060 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
5062         * dwarf2out.h (struct dw_loc_descr_node): Remove the
5063         dw_loc_frame_offset field.
5064         * dwarf2out.c (new_loc_descr): Likewise.
5065         (resolve_args_picking_1): Turn the VISITED hash set into a
5066         FRAME_OFFSET hash map. Use it to associate a frame offset to
5067         visited nodes. Remove uses of the CHECKING_P macro.
5068         (resolve_args_picking): Update call to resolve_args_picking_1.
5070 2016-04-27  Martin Liska  <mliska@suse.cz>
5072         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
5073         (free_loop_data): Release vuses of groups.
5075 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
5077         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
5078         instead of redundant use_id and boolean have_use_for.
5079         (struct iv_use): Change sub_id into group_id.  Remove field next.
5080         Move fields: related_cands, n_map_members, cost_map and selected
5081         to ...
5082         (struct iv_group): ... here.  New structure.
5083         (struct iv_common_cand): Use structure declaration directly.
5084         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
5085         (MAX_CONSIDERED_USES): Rename macro to ...
5086         (MAX_CONSIDERED_GROUPS): ... here.
5087         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
5088         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
5089         (dump_uses): Rename to ...
5090         (dump_groups): ... here.  Update all uses.
5091         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
5092         (find_induction_variables): Refactor format of dump information.
5093         (record_sub_use): Delete.
5094         (record_use): Update all uses.
5095         (record_group): New function.
5096         (record_group_use, find_interesting_uses_op): Call above functions.
5097         Update all uses.
5098         (find_interesting_uses_cond): Ditto.
5099         (group_compare_offset): New function.
5100         (split_all_small_groups): Rename to ...
5101         (split_small_address_groups_p): ... here.  Update all uses.
5102         (split_address_groups):  Update all uses.
5103         (find_interesting_uses): Refactor format of dump information.
5104         (add_candidate_1): Update all uses.  Remove redundant check on iv,
5105         base and step.
5106         (add_candidate, record_common_cand): Remove redundant assert.
5107         (add_iv_candidate_for_biv): Update use.
5108         (add_iv_candidate_derived_from_uses): Update all uses.
5109         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
5110         (alloc_use_cost_map): Ditto.
5111         (set_use_iv_cost, get_use_iv_cost): Rename to ...
5112         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
5113         (determine_use_iv_cost_generic): Ditto.
5114         (determine_group_iv_cost_generic): Ditto.
5115         (determine_use_iv_cost_address): Ditto.
5116         (determine_group_iv_cost_address): Ditto.
5117         (determine_use_iv_cost_condition): Ditto.
5118         (determine_group_iv_cost_cond): Ditto.
5119         (determine_use_iv_cost): Ditto.
5120         (determine_group_iv_cost): Ditto.
5121         (set_autoinc_for_original_candidates): Update all uses.
5122         (find_iv_candidates): Update all uses.  Refactor dump information.
5123         (determine_use_iv_costs): Ditto.
5124         (determine_iv_costs): Ditto.
5125         (iv_ca_cand_for_use): Rename to ...
5126         (iv_ca_cand_for_group): ... here.  Update all uses.
5127         (iv_ca_add_use, iv_ca_add_group): Ditto.
5128         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
5129         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
5130         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
5131         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
5132         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
5133         (create_new_iv, adjust_iv_update_pos): Ditto.
5134         (rewrite_use_address): Delete.
5135         (rewrite_use_address_1): Rename to ...
5136         (rewrite_use_address): ... here.
5137         (rewrite_use_compare): Update all uses.
5138         (rewrite_use): Delete.
5139         (rewrite_uses): Rename to ...
5140         (rewrite_groups): ... here.  Update all uses.
5141         (remove_unused_ivs, free_loop_data): Update all uses.
5142         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
5144 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5146         * rtlanal.c (nonzero_bits1): Convert preprocessor check
5147         for WORD_REGISTER_OPERATIONS to runtime check.
5149 2016-04-27  Richard Biener  <rguenther@suse.de>
5151         PR ipa/70760
5152         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
5153         aggregate_value_p to determine if a function result is
5154         returned by reference.
5155         (ipa_pta_execute): Functions having their address taken are
5156         not automatically nonlocal.
5158 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
5160         PR sanitizer/70683
5161         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
5162         * fold-const.c (operand_equal_p): If flag_checking and
5163         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
5164         and if it returns non-zero, assert iterative_hash_expr on both
5165         args is the same.
5167 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
5169         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
5171 2016-04-27  Nick Clifton  <nickc@redhat.com>
5173         PR middle-end/49889
5174         * varasm.c (merge_weak): Generate an error if an attempt is made
5175         to convert a non-weak static function into a weak, public function.
5177 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5179         * params.def (MAX_PARTITION_SIZE): New param.
5180         * doc/invoke.texi: Document lto-max-partition.
5182 2016-04-27  Richard Biener  <rguenther@suse.de>
5184         PR ipa/70785
5185         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
5186         function cummulating used_from_other_partition, externally_visible
5187         and force_output from aliases.
5188         (refered_from_nonlocal_var): Likewise.
5189         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
5190         node flags properly.
5192 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
5194         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
5195         (-Wmemset-elt-size): New item.
5197 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
5199         PR ada/70759
5200         * stor-layout.h (internal_reference_types): Delete.
5201         * stor-layout.c (reference_types_internal): Likewise.
5202         (internal_reference_types): Likewise.
5203         (layout_type) <REFERENCE_TYPE>: Adjust.
5205 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
5207         PR sanitizer/70683
5208         * tree.h (inchash::add_expr): Add FLAGS argument.
5209         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
5210         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
5211         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
5212         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
5213         if swap_tree_comparison (code) is smaller than code, hash that
5214         and arguments in the other order.  Hash CONVERT_EXPR the same
5215         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
5216         of ADDR_EXPR of decl as the decl itself.  Add or remove
5217         OEP_ADDRESS_OF from recursive flags as needed.  For
5218         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
5219         operands commutatively and only the third one normally.
5220         For internal CALL_EXPR hash in CALL_EXPR_IFN.
5222 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5224         * config/rtems.h (LIB_SPEC): Add -latomic.
5226 2016-04-27  Joel Sherrill  <joel@rtems.org>
5228         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
5229         xilink.ld and flags not relevant to RTEMS.
5231 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
5233         * toplev.c (backend_init_target): Avoid calling init_reload when using
5234         LRA.
5236 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
5238         * reorg.c (try_merge_delay_insns): Declare i and j inside the
5239         for loops rather than one for the whole function.
5241 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
5243         * match.pd (X + CST CMP X): New transformation.
5245 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
5247         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
5248         * fold-const.c (fold_binary_loc): Remove 2 transformations
5249         superseded by match.pd.
5250         * match.pd (x+x -> x*2): Generalize to integers.
5252 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
5254         * config/i386/i386.md (operation on memory peephole): Duplicate an
5255         existing peephole and adapt it to match lea rather than an operation
5256         that clobbers CC.
5258         PR rtl-optimization/57193
5259         * opts.c (default_options_table): Add OPT_frename_registers at -O2
5260         and above.
5261         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
5263 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
5265         * tree-if-conv.c (any_pred_load_store): New static variable.
5266         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
5267         any_pred_load_store instead of and_mask_load_store.
5268         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
5269         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
5270         (combine_blocks, tree_if_conversion): Ditto.
5272 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
5274         PR tree-optimization/70771
5275         PR tree-optimization/70775
5276         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
5277         virtual PHI nodes.  Delete parameter.
5278         (if_convertible_loop_p_1): Delete argument to above function.
5279         (predicate_all_scalar_phis): Delete code handling single-argument
5280         PHIs.
5281         (tree_if_conversion): Mark and update virtual SSA.
5283 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5285         PR target/61821
5286         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
5287         (x86_elf_aligned_common): Rename to ...
5288         (x86_elf_aligned_decl_common): ... this.
5289         Add decl arg.  Switch to .lbss for largecomm object.  Use
5290         LARGECOMM_SECTION_ASM_OP.
5291         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
5292         renaming.
5293         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
5294         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
5295         Pass new decl arg.
5296         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
5297         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
5299 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5301         PR target/59407
5302         * config/i386/i386.c (SECTION_LARGE): Define.
5303         (x86_64_elf_select_section): Set it for large data/bss sections.
5304         Only clear SECTION_WRITE for .lrodata.
5305         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
5306         data/bss sections.
5307         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
5308         * varasm.c (default_elf_asm_named_section): Grow flagchars.
5309         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
5310         SECTION_MACH_DEP.
5311         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
5312         * doc/tm.texi: Regenerate.
5314 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
5316         PR bootstrap/70704
5317         * configure.ac (--enable-checking): Document extra flag, for
5318         non-release builds default to --enable-checking=yes,extra.
5319         If misc checking and extra checking, define CHECKING_P to 2 instead
5320         of 1.
5321         * common.opt (fchecking=): Add.
5322         * doc/invoke.texi (-fchecking=): Document.
5323         * doc/install.texi: Document --enable-checking changes.
5324         * configure: Regenerated.
5325         * config.in: Regenerated.
5327 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
5329         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
5330         attribute instead of which_alternative.
5331         * config/i386/sse.md (*mov<mode>_internal): Ditto.
5332         Use EXT_REX_SSE_REG_P where appropriate.
5334 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
5336         * config/i386/predicates.md (const0_operand): Do not match
5337         const_wide_int code.
5338         (const1_operand): Ditto.
5340 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
5342         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
5343         for SSE constm1 operands and TARGET_AVX512VL.
5344         (*movti_internal): Ditto.
5345         (*mov<mode>_or): Use constm1_operand predicate.
5346         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
5347         for SSE vector_all_ones operands and TARGET_AVX512VL.
5348         * config/i386/predicates.md (constm1_operand): New predicate.
5349         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
5350         emission of constant -1 load.
5352 2016-04-25  Jason Merrill  <jason@redhat.com>
5354         * gdbinit.in: Skip is-a.h.
5356         * attribs.c (register_scoped_attributes): Fix logic.
5357         * attribs.h: Declare register_scoped_attributes.
5359 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5361         * config/rs6000/rs6000-builtin.def: Correct pasto error for
5362         stxvd2x and stxvw4x built-in functions.
5364 2016-04-25  DJ Delorie  <dj@redhat.com>
5366         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
5367         (ashrhi3): Likewise.
5368         (lshrhi3): Likewise.
5370 2016-04-25  Richard Biener  <rguenther@suse.de>
5372         PR tree-optimization/70780
5373         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
5374         wasn't visited yet.
5375         (compute_antic): Mark blocks with abnormal preds as visited as
5376         they have a final empty antic-in solution already.
5378 2016-04-25  Michael Collison  <michael.collison@linaro.org>
5380         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
5382 2016-04-25  Michael Collison  <michael.collison@linaro.org>
5384         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
5385         mode is VQI to improve mixed mode vectorization.
5386         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
5387         define_insn to match low half of signed vaddw.
5388         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
5389         define_insn to match high half of signed vaddw.
5390         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
5391         define_insn to match low half of unsigned vaddw.
5392         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
5393         define_insn to match high half of unsigned vaddw.
5394         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
5395         (arm_simd_check_vect_par_cnst_half_p): Likewise.
5396         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
5397         for new function.
5398         (arm_simd_check_vect_par_cnst_half_p): Likewise.
5399         * config/arm/predicates.md (vect_par_constant_high): Support
5400         big endian and simplify by calling
5401         arm_simd_check_vect_par_cnst_half
5402         (vect_par_constant_low): Likewise.
5404 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
5406         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
5407         predicate for operand 2.
5409 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
5410             H.J. Lu  <hongjiu.lu@intel.com>
5412         * config/i386/i386-protos.h (standard_sse_constant_p): Add
5413         machine_mode argument.
5414         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
5415         constm1_rtx operands.  For VOIDmode constants, get mode from
5416         pred_mode.  Check mode size if the mode is supported by ABI.
5417         (standard_sse_constant_opcode): Do not use standard_constant_p.
5418         Strictly check ABI support for all-ones operands.
5419         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
5420         immediates. Update calls to standard_sse_constant_p.
5421         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
5422         (ix86_rtx_costs): Ditto.
5423         * config/i386/i386.md (*movxi_internal_avx512f): Use
5424         nonimmediate_or_sse_const_operand instead of vector_move_operand.
5425         Use (v,BC) alternative instead of (v,C). Use register_operand
5426         checks instead of MEM_P.
5427         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
5428         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
5429         isa attribute.  Use register_operand checks instead of MEM_P.
5430         (*movti_internal): Use nonimmediate_or_sse_const_operand for
5431         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
5432         alternative and corresponding sse2 isa attribute.
5433         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
5434         to standard_sse_constant_p.
5435         (FP constant splitters): Ditto.
5436         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
5437         (C): Ditto.
5438         * config/i386/predicates.md (constm1_operand): Remove.
5439         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
5440         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
5441         vector_all_ones_operand instead of constm1_operand.
5443 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5445         * print-rtl.c (print_rtx_insn_vec): New function.
5446         * print-rtl.h: New prototype.
5447         * store-motion.c (struct st_expr): Make avail_stores a vector.
5448         (st_expr_entry): Adjust.
5449         (free_st_expr_entry): Likewise.
5450         (print_store_motion_mems): Likewise.
5451         (find_moveable_store): Likewise.
5452         (compute_store_table): Likewise.
5453         (delete_store): Likewise.
5454         (build_store_vectors): Likewise.
5456 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5458         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
5460 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5462         * vec.h (vec_safe_contains): New function.
5463         (vec::contains): Likewise.
5464         (vec::begin): Likewise.
5465         (vec::end): Likewise.
5467 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
5469         PR sanitizer/70712
5470         * cfgexpand.c (expand_stack_vars): Fix typo.
5472 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
5474         * system.h (list, map, set, vector): Include conditionally.
5475         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
5476         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
5477         * ipa-icf.c (INCLUDE_LIST): Define.
5478         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
5479         * config/sh/sh.c (INCLUDE_VECTOR): Define.
5480         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
5481         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
5482         * cp/logic.cc (INCLUDE_LIST): Define.
5483         * fortran/trans-common.c (INCLUDE_MAP): Define.
5485 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
5487         * auto-profile.c: Remove <string.h> include.
5488         * ipa-icf-gimple.c: Remove <list> include.
5489         * diagnostic.c: Remove <new> include.
5490         * genmatch.c: Likewise.
5491         * pretty-print.c: Likewise.
5492         * toplev.c: Likewise
5493         * c/c-objc-common.c: Likewise.
5494         * cp/error.c: Likewise.
5495         * fortran/error.c: Likewise.
5497 2016-04-22  Richard Biener  <rguenther@suse.de>
5499         * lto-streamer-in.c (input_ssa_names): Do not allocate
5500         GIMPLE_NOP for all SSA names.
5501         * lto-streamer-out.c (output_ssa_names): Do not output
5502         SSA names that should have been released.
5504 2016-04-22  Richard Biener  <rguenther@suse.de>
5506         PR tree-optimization/70740
5507         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
5508         VDEF.
5510 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5512         PR target/70750
5513         * config/i386/predicates.md (call_insn_operand): Replace
5514         sibcall_memory_operand with memory_operand.
5516 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
5518         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
5519         has_single_use() tests.
5520         (register_edge_assert_for_1): Likewise.
5521         (find_assert_locations_1): Check the liveness bitmap instead of
5522         checking has_single_use().
5524 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
5526         PR target/70728
5527         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
5528         Extract AVX-512BW constraint from AVX.
5530 2016-04-21  Richard Biener  <rguenther@suse.de>
5532         PR tree-optimization/70725
5533         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
5534         for phi_convertible_by_degenerating_args.
5535         (predicate_all_scalar_phis): Handle single-argument PHIs.
5537 2016-04-21  Richard Biener  <rguenther@suse.de>
5539         PR middle-end/70747
5540         * fold-const.c (fold_comparison): Return properly typed
5541         constant boolean.
5543 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
5545         PR tree-optimization/70715
5546         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
5547         after expanding BASE using expand_simple_operations.
5549 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
5551         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
5552         New transformations.
5554 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
5556         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
5558 2016-04-20  Jan Hubicka  <jh@suse.cz>
5560         * ipa-inline.c (can_inline_edge_p): Pass caller info to
5561         ultiimate_alias_target.
5562         (update_callee_keys): Likewise.
5563         (lookup_recursive_calls): Likewise.
5564         (speculation_useful_p): Likewise.
5566 2016-04-20  Jan Hubicka  <jh@suse.cz>
5568         PR ipa/70018
5569         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
5570         (set_nothrow_flag_1): ... this; handle interposition correctly;
5571         recurse on aliases and thunks.
5572         (cgraph_node::set_nothrow_flag): New.
5573         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
5574         functions compiled with non-call exceptions that binds to current
5575         def.
5576         (propagate_nothrow): Be safe WRT interposition.
5577         * cgraph.h (set_nothrow_flag): Update prototype.
5579 2016-04-18  Jan Hubicka  <jh@suse.cz>
5581         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5582         max_loop_iterations_int.
5583         (tree_unswitch_outer_loop): Likewise.
5585 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
5587         PR tree-optimization/69489
5588         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
5589         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
5590         Revise dump message.
5591         (if_convertible_bb_p): Remove check on edge count of basic block's
5592         predecessors.
5594 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
5596         PR tree-optimization/56625
5597         PR tree-optimization/69489
5598         * tree-data-ref.h (DR_INNERMOST): New macro.
5599         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
5600         hashing struct innermost_loop_behavior.
5601         (ref_DR_map): Remove.
5602         (innermost_DR_map): New map.
5603         (baseref_DR_map): Revise comment.
5604         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
5605         to innermost_DR_map accroding to its innermost loop behavior.
5606         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
5607         to its innermost loop behavior.
5608         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
5609         Add initialization for innermost_DR_map.  Record memory reference
5610         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
5611         have innermost loop behavior.
5612         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
5613         innermost_DR_map.
5615 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
5617         * config/i386/i386.md (*lea<mode>_general_1): Rename from
5618         *lea_general_1.  Use explicit SWI12 mode interator.
5619         (*lea<mode>_general_2): Rename from *lea_general_2.
5620         Use explicit SWI12 mode interator.
5621         (*lea<mode>_general_3): Rename from *lea_general_3.
5622         Use explicit SWI12 mode interator.
5623         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
5624         Use explicit SWI12 mode interator.
5625         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
5626         Use explicit SWI48 mode interator.
5628 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
5630         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
5631         Short-cut unaligned load and store cases.  Handle all integer
5632         vector modes.
5633         (ix86_expand_vector_move_misalign): Short-cut unaligned load
5634         and store cases.  Call ix86_avx256_split_vector_move_misalign
5635         directly without checking mode class.
5637 2016-04-20  Andrew Pinski  <apinski@cavium.com>
5638             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5640         PR target/64971
5641         * config/aarch64/aarch64.md (sibcall): Force call
5642         address to be DImode for ILP32.
5643         (sibcall_value): Likewise.
5645 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
5647         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
5649 2016-04-20  Richard Biener  <rguenther@suse.de>
5651         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
5652         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
5653         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
5654         (maybe_push_res_to_seq): Adjust.
5655         * gimple-fold.c (maybe_build_generic_op): Likewise.
5657 2016-04-20  Marek Polacek  <polacek@redhat.com>
5659         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
5660         rather than true.
5662 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
5664         * config/i386/sse.md (vec_unpacks_lo_hi): Always
5665         use kmovw to support AVX512F target.
5667 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
5669         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
5671 2016-04-20  Marek Polacek  <polacek@redhat.com>
5673         PR tree-optimization/70725
5674         * tree-if-conv.c (is_false_predicate): New function.
5675         (predicate_mem_writes): Use it.
5677 2016-04-20  Richard Biener  <rguenther@suse.de>
5679         PR tree-optimization/70726
5680         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
5681         shift amounts from a pattern stmt operand.
5683 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5685         PR target/70674
5686         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
5687         stack_restore_from_fpr pattern when restoring r15.
5688         (s390_optimize_prologue): Strip away the memory barrier in the
5689         parallel when trying to get rid of restore insns.
5690         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
5691         definition for loading the stack pointer from an FPR.  Compared to
5692         the normal move insn this pattern includes a full memory barrier.
5694 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
5696         PR middle-end/70680
5697         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
5698         implicitly linear or lastprivate iterator on the outer context.
5700 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
5702         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
5703         alignment check.
5704         * config/i386/i386.md (ssememalign): Removed.
5705         * config/i386/sse.md: Remove ssememalign attribute from patterns.
5707 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
5709         PR target/69201
5710         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
5711         const short * to __builtin_ia32_loaddquhi512_mask.
5712         (_mm512_maskz_loadu_epi16): Likewise.
5713         (_mm512_mask_storeu_epi16): Pass short * to
5714         __builtin_ia32_storedquhi512_mask.
5715         (_mm512_mask_loadu_epi8): Pass const char * to
5716         __builtin_ia32_loaddquqi512_mask.
5717         (_mm512_maskz_loadu_epi8): Likewise.
5718         (_mm512_mask_storeu_epi8): Pass char * to
5719         __builtin_ia32_storedquqi512_mask.
5720         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
5721         const double * to __builtin_ia32_loadupd512_mask.
5722         (_mm512_mask_loadu_pd): Likewise.
5723         (_mm512_maskz_loadu_pd): Likewise.
5724         (_mm512_storeu_pd): Pass double * to
5725         __builtin_ia32_storeupd512_mask.
5726         (_mm512_mask_storeu_pd): Likewise.
5727         (_mm512_loadu_ps): Pass const float * to
5728         __builtin_ia32_loadups512_mask.
5729         (_mm512_mask_loadu_ps): Likewise.
5730         (_mm512_maskz_loadu_ps): Likewise.
5731         (_mm512_storeu_ps): Pass float * to
5732         __builtin_ia32_storeups512_mask.
5733         (_mm512_mask_storeu_ps): Likewise.
5734         (_mm512_mask_loadu_epi64): Pass const long long * to
5735         __builtin_ia32_loaddqudi512_mask.
5736         (_mm512_maskz_loadu_epi64): Likewise.
5737         (_mm512_mask_storeu_epi64): Pass long long *
5738         to __builtin_ia32_storedqudi512_mask.
5739         (_mm512_loadu_si512): Pass const int * to
5740         __builtin_ia32_loaddqusi512_mask.
5741         (_mm512_mask_loadu_epi32): Likewise.
5742         (_mm512_maskz_loadu_epi32): Likewise.
5743         (_mm512_storeu_si512): Pass int * to
5744         __builtin_ia32_storedqusi512_mask.
5745         (_mm512_mask_storeu_epi32): Likewise.
5746         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
5747         char * to __builtin_ia32_storedquqi256_mask.
5748         (_mm_mask_storeu_epi8): Likewise.
5749         (_mm256_mask_loadu_epi16): Pass const short * to
5750         __builtin_ia32_loaddquhi256_mask.
5751         (_mm256_maskz_loadu_epi16): Likewise.
5752         (_mm_mask_loadu_epi16): Pass const short * to
5753         __builtin_ia32_loaddquhi128_mask.
5754         (_mm_maskz_loadu_epi16): Likewise.
5755         (_mm256_mask_loadu_epi8): Pass const char * to
5756         __builtin_ia32_loaddquqi256_mask.
5757         (_mm256_maskz_loadu_epi8): Likewise.
5758         (_mm_mask_loadu_epi8): Pass const char * to
5759         __builtin_ia32_loaddquqi128_mask.
5760         (_mm_maskz_loadu_epi8): Likewise.
5761         (_mm256_mask_storeu_epi16): Pass short * to.
5762         __builtin_ia32_storedquhi256_mask.
5763         (_mm_mask_storeu_epi16): Pass short * to.
5764         __builtin_ia32_storedquhi128_mask.
5765         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
5766         const double * to __builtin_ia32_loadupd256_mask.
5767         (_mm256_maskz_loadu_pd): Likewise.
5768         (_mm_mask_loadu_pd): Pass onst double * to
5769         __builtin_ia32_loadupd128_mask.
5770         (_mm_maskz_loadu_pd): Likewise.
5771         (_mm256_mask_storeu_pd): Pass double * to
5772         __builtin_ia32_storeupd256_mask.
5773         (_mm_mask_storeu_pd): Pass double * to
5774         __builtin_ia32_storeupd128_mask.
5775         (_mm256_mask_loadu_ps): Pass const float * to
5776         __builtin_ia32_loadups256_mask.
5777         (_mm256_maskz_loadu_ps): Likewise.
5778         (_mm_mask_loadu_ps): Pass const float * to
5779         __builtin_ia32_loadups128_mask.
5780         (_mm_maskz_loadu_ps): Likewise.
5781         (_mm256_mask_storeu_ps): Pass float * to
5782         __builtin_ia32_storeups256_mask.
5783         (_mm_mask_storeu_ps): ass float * to
5784         __builtin_ia32_storeups128_mask.
5785         (_mm256_mask_loadu_epi64): Pass const long long * to
5786         __builtin_ia32_loaddqudi256_mask.
5787         (_mm256_maskz_loadu_epi64): Likewise.
5788         (_mm_mask_loadu_epi64): Pass const long long * to
5789         __builtin_ia32_loaddqudi128_mask.
5790         (_mm_maskz_loadu_epi64): Likewise.
5791         (_mm256_mask_storeu_epi64): Pass long long * to
5792         __builtin_ia32_storedqudi256_mask.
5793         (_mm_mask_storeu_epi64): Pass long long * to
5794         __builtin_ia32_storedqudi128_mask.
5795         (_mm256_mask_loadu_epi32): Pass const int * to
5796         __builtin_ia32_loaddqusi256_mask.
5797         (_mm256_maskz_loadu_epi32): Likewise.
5798         (_mm_mask_loadu_epi32): Pass const int * to
5799         __builtin_ia32_loaddqusi128_mask.
5800         (_mm_maskz_loadu_epi32): Likewise.
5801         (_mm256_mask_storeu_epi32): Pass int * to
5802         __builtin_ia32_storedqusi256_mask.
5803         (_mm_mask_storeu_epi32): Pass int * to
5804         __builtin_ia32_storedqusi128_mask.
5805         * config/i386/i386-builtin-types.def (PCSHORT): New.
5806         (PINT64): Likewise.
5807         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
5808         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
5809         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
5810         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
5811         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
5812         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
5813         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
5814         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
5815         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
5816         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
5817         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
5818         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
5819         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
5820         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
5821         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
5822         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
5823         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
5824         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
5825         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
5826         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
5827         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
5828         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
5829         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
5830         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
5831         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
5832         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
5833         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
5834         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
5835         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
5836         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
5837         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
5838         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
5839         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
5840         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
5841         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
5842         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
5843         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
5844         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
5845         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
5846         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
5847         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
5848         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
5849         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
5850         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
5851         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
5852         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
5853         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
5854         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
5855         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
5856         use UNSPEC_STOREU.
5857         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
5858         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
5859         load nor store.
5860         (ix86_expand_vector_move_misalign): Likewise.
5861         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
5862         to scalar function prototype for unaligned load/store builtins.
5863         (ix86_expand_special_args_builtin): Updated.
5864         * config/i386/sse.md (UNSPEC_LOADU): Removed.
5865         (UNSPEC_STOREU): Likewise.
5866         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
5867         (VI_ULOADSTORE_F_AVX512VL): Likewise.
5868         (ssescalarsize): Handle V4TI, V2TI and V1TI.
5869         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5870         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5871         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
5872         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
5873         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
5874         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
5875         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
5876         (<avx512>_storedqu<mode>_mask): Likewise.
5877         (*sse4_2_pcmpestr_unaligned): Likewise.
5878         (*sse4_2_pcmpistr_unaligned): Likewise.
5879         (*mov<mode>_internal): Renamed to ...
5880         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
5881         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
5882         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
5883         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
5885 2016-04-19  Richard Biener  <rguenther@suse.de>
5887         PR tree-optimization/70171
5888         * tree-ssa-phiprop.c: Include stor-layout.h.
5889         (phiprop_insert_phi): Handle the aggregate copy case.
5890         (propagate_with_phi): Likewise.
5892 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
5894         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
5895         instead of simplify_gen_subreg (... , 0).
5896         (ix86_delegitimize_address): Ditto.
5897         (ix86_split_divmod): Ditto.
5898         (ix86_split_copysign_const): Ditto.
5899         (ix86_split_copysign_var): Ditto.
5900         (ix86_expand_args_builtin): Ditto.
5901         (ix86_expand_round_builtin): Ditto.
5902         (ix86_expand_special_args_builtin): Ditto.
5903         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
5904         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
5905         (udivmodqi4): Ditto.
5906         (absneg splitters): Ditto.
5907         (*jcc_bt<mode>_1): Ditto.
5909 2016-04-19  Richard Biener  <rguenther@suse.de>
5911         PR tree-optimization/70724
5912         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
5913         restoring out from ...
5914         (free_scc_vn): ... here.
5915         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
5916         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
5917         tail merging.
5918         (pass_fre::execute): Restore SSA info.
5920 2016-04-19  Richard Biener  <rguenther@suse.de>
5922         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
5923         * gimple-walk.c (walk_gimple_op): Initialize it.
5924         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
5925         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
5926         remapping SSA names of defs.
5927         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
5928         adjustment.
5930 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
5932         PR middle-end/70689
5933         * lra-constraints.c (equiv_substition_p): New.
5934         (process_alt_operands): Use it.
5935         (swap_operands): Swap it.
5936         (curr_insn_transform): Update it.
5938 2016-04-18  Michael Matz  <matz@suse.de>
5940         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
5941         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
5942         * tree-core.h (tree_type_common.align): Use bit-field.
5943         (tree_type_common.spare): New.
5944         (tree_decl_common.off_align): Make smaller.
5945         (tree_decl_common.align): Use bit-field.
5947         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
5948         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
5949         (scan_sharing_clauses): Ditto.
5950         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5951         (omp_finish_file): Ditto.
5952         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
5953         (layout_decl): Ditto.
5954         (relayout_decl): Ditto.
5955         (finalize_record_size): Use SET_TYPE_ALIGN.
5956         (finalize_type_size): Ditto.
5957         (finish_builtin_struct): Ditto.
5958         (layout_type): Ditto.
5959         (initialize_sizetypes): Ditto.
5960         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
5961         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
5962         (lookup_field_for_decl): Use SET_DECL_ALIGN.
5963         (get_chain_field): Ditto.
5964         (get_trampoline_type): Ditto.
5965         (get_nl_goto_field): Ditto.
5966         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
5967         SET_DECL_ALIGN.
5968         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
5969         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
5970         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5971         (build_qualified_type): Use SET_TYPE_ALIGN.
5972         (build_aligned_type, build_range_type_1): Ditto.
5973         (build_atomic_base): Ditto.
5974         (build_common_tree_nodes): Ditto.
5975         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
5976         (expand_one_stack_var_at): Ditto.
5977         * coverage.c (build_var): Use SET_DECL_ALIGN.
5978         * except.c (init_eh): Ditto.
5979         * function.c (assign_parm_setup_block): Ditto.
5980         * symtab.c (increase_alignment_1): Ditto.
5981         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
5982         * tree-vect-stmts.c (ensure_base_align): Ditto.
5983         * varasm.c (align_variable): Ditto.
5984         (assemble_variable): Ditto.
5985         (build_constant_desc): Ditto.
5986         (output_constant_def_contents): Ditto.
5988         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
5989         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
5990         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
5991         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
5992         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
5994 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
5996         PR target/70708
5997         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
5998         replace %vmovsd with "%vmovq".
5999         (vec_concatv2df): Likewise.
6001 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
6003         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
6004         (*vec_extractv2si_0): Ditto.
6005         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
6006         (zero_extended_scalar_load_operand splitters): Ditto.
6007         (vec_extract splitters): Ditto.
6008         (*vec_extractv4si_0_zext): Ditto.
6009         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
6010         and lowpart_subreg.
6011         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
6012         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
6013         (*sse4_1_extractps): Use lowpart_subreg.
6014         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
6016 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6018         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
6019         gld requirements.
6020         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
6021         Mention Solaris 11 packaging changes.
6022         Update gas and gld requirements.
6023         Remove reference to pre-Solaris 10 bug.
6024         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
6025         systems and bugs.
6026         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
6027         with cc.
6029 2016-04-17  Jan Hubicka  <jh@suse.cz>
6031         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
6032         max_loop_iterations_int.
6034 2016-04-18  Richard Biener  <rguenther@suse.de>
6036         PR tree-optimization/43434
6037         * tree-ssa-structalias.c (struct vls_data): New.
6038         (visit_loadstore): Handle all pointer-based accesses.
6039         (compute_dependence_clique): Compute a bitmap of restrict tags
6040         assigned bases and pass it to visit_loadstore.
6042 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
6044         PR target/70711
6045         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
6046         armv8.1-a and armv8.1-a+crc.
6048 2016-04-18  Richard Biener  <rguenther@suse.de>
6050         PR tree-optimization/70701
6051         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
6052         references after translating through a memcpy.
6054 2016-04-18  Richard Biener  <rguenther@suse.de>
6056         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
6057         (compute_antic): ... here.  For partial antic use regular
6058         postorder and scrap iteration.
6059         (compute_partial_antic_aux): Remove unused return value.
6060         (init_pre): Do not allocate postorder.
6061         (fini_pre): Do not free postorder.
6063 2016-04-18  Richard Biener  <rguenther@suse.de>
6065         PR middle-end/37870
6066         * expmed.c (extract_bit_field_1): Remove broken case
6067         using a wider MODE_INT mode.
6069 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
6071         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
6072         unless compiling with at least GCC-4.8.
6074 2016-04-17  Jan Hubicka  <jh@suse.cz>
6076         PR bootstrap/70706
6077         * graphite.c (graphite_finalize): Update call to
6078         tree_estimate_probability.
6079         * predict.h (tree_estimate_probability): Update prototype.
6081 2016-04-17  Jan Hubicka  <jh@suse.cz>
6083         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
6084         (tree_estimate_probability): Likewise.
6085         (pass_profile::execute): Update.
6086         (report_predictor_hitrates): New function.
6087         * profile.c (compute_branch_probabilities): Use it.
6088         * predict.h (report_predictor_hitrates): Declare.
6090 2016-04-17  Jan Hubicka  <jh@suse.cz>
6092         PR ipa/70018
6093         * cgraph.h (cgraph_node::set_const_flag,
6094         cgraph_node::set_pure_flag): Update prototype to return bool;
6095         update comment.
6096         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
6097         of interposable symbol are interposable, too.
6098         (cgraph_set_const_flag_1): Rename to ...
6099         (set_const_flag_1): ... this one; change to self recursive function
6100         instead of call_for_symbol_thunks_and_aliases. Handle correctly
6101         clearnig the flag in all variants and also virtual thunks of const
6102         functions are pure; track if any change was done.
6103         (cgraph_node::set_const_flag): Update.
6104         (struct set_pure_flag_info): New struct.
6105         (cgraph_set_pure_flag_1): Rename to ...
6106         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
6107         rather than pointer encoded flags; track if any changes was done;
6108         handle correctly clearning flag and setting flag of aliases already
6109         declared const.
6110         (cgraph_node::set_pure_flag): Update.
6111         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
6113 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6115         PR other/70433
6116         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
6117         backslash in label.
6119 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6121         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
6122         '{}<> ' as escape-for-record.
6124 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6126         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
6127         structure.
6129 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6131         PR other/70185
6132         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
6133         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
6134         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
6135         * passes.c (finish_optimization_passes): Only call
6136         finish_graph_dump_file if dfi->graph_dump_initialized.
6137         (execute_function_dump, pass_init_dump_file): Use
6138         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
6140 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6142         PR tree-optimization/70256
6143         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
6144         (debug_varmap): New function.
6146 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6148         PR other/70183
6149         * passes.c (pass_manager::register_pass): Propagate pflags.
6151 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6153         PR other/68875
6154         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
6155         * passes.c (pass_manager::pass_manager): Declare and init p_start in
6156         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
6157         check if it's equal to p_start.
6158         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
6160 2016-04-15  Jan Hubicka  <jh@suse.cz>
6162         PR ipa/70018
6163         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
6164         function does not bind to current def.
6165         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
6166         handle conservatively calls to functions that does not need to bind
6167         to current def.
6168         (check_call): Update call of worse_state.
6169         (ignore_edge_for_nothrow): Update.
6170         (ignore_edge_for_pure_const): Likewise.
6171         (propagate_pure_const): Update calls to worse_state.
6172         (skip_function_for_local_pure_const): Reformat comments.
6174 2016-04-15  Jan Hubicka  <jh@suse.cz>
6176         PR ipa/70018
6177         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
6178         (cgraph_node::function_symbol): Likewise.
6179         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
6180         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
6181         (symtab_node::ultimate_alias_target): Add REF parameter.
6182         (symtab_node::binds_to_current_def_p): Declare.
6183         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
6184         (cgraph_node::function_symbol): Likewise.
6185         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
6186         (cgraph_node::get_availability): Likewise.
6187         (cgraph_edge::binds_to_current_def_p): New inline function.
6188         (varpool_node::get_availability): Add REF parameter.
6189         (varpool_node::ultimate_alias_target): Likewise.
6190         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
6191         (symtab_node::binds_to_current_def_p): Likewise.
6192         * varpool.c (varpool_node::get_availability): Likewise.
6194 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
6196         PR target/70662
6197         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
6198         Fix mode size check.
6200 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
6202         * BASE-VER: Set to 7.0.0.
6204 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
6206         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
6208 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6210         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
6211         architecture revisions.
6213 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
6215         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
6216         * config/i386/i386.c (ix86_using_red_zone): No longer static.
6217         * config/i386/i386.md (stack decrement to push peepholes): Guard
6218         with !x86_using_red_zone ().
6220 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
6222         PR c++/70675
6223         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
6224         to dump_generic_node.
6225         (NIY): Pass also flags to do_niy.
6227 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
6229         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
6230         (simd_clone_vector_of_formal_parm_types)
6231         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
6232         (simd_clone_mangle, simd_clone_create)
6233         (simd_clone_adjust_return_type, create_tmp_simd_array)
6234         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
6235         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
6236         (ipa_simd_modify_function_body, simd_clone_linear_addend)
6237         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
6238         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
6239         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
6240         * omp-simd-clone.c: ... this new file.
6241         (simd_clone_vector_of_formal_parm_types): Make it static.
6242         * Makefile.in (OBJS): Add omp-simd-clone.o.
6244 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
6246         PR target/70662
6247         * config/i386/sse.md: Use proper memory operand modifiers.
6250 2016-04-15  Richard Biener  <rguenther@suse.de>
6251         Alan Modra  <amodra@gmail.com>
6253         PR tree-optimization/70130
6254         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
6255         when alignment stays not the same and no not use the realign
6256         scheme then.
6258 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6260         PR target/70669
6261         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6262         direct move handlers for KFmode. Change TFmode handlers test from
6263         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
6265 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
6267         PR c++/70594
6268         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
6269         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
6270         (inlined_polymorphic_ctor_dtor_block_p): Use it.
6271         * tree-ssa-live.c (remove_unused_scope_block_p): When
6272         in_ctor_dtor_block, avoid discarding not just BLOCKs with
6273         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
6274         block_ultimate_origin is FUNCTION_DECL.
6275         (remove_unused_locals): If current_function_decl is
6276         polymorphic_ctor_dtor_p, pass initial true to
6277         remove_unused_scope_block_p' is_ctor_dtor_block.
6279 2016-04-14  Martin Sebor  <msebor@redhat.com>
6281         PR c++/69517
6282         PR c++/70019
6283         PR c++/70588
6284         * doc/extend.texi (Variable Length): Revert.
6286 2016-04-14  Marek Polacek  <polacek@redhat.com>
6287             Jan Hubicka  <hubicka@ucw.cz>
6289         PR c++/70029
6290         * tree.c (verify_type): Disable the canonical type of main variant
6291         check.
6293 2016-04-14  Jason Merrill  <jason@redhat.com>
6295         * cfgexpand.c, expr.c: Revert previous change.
6297 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
6299         PR middle-end/70643
6300         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
6301         when building a mem ref for the incoming reduction variable.
6303 2016-04-14  Richard Biener  <rguenther@suse.de>
6305         PR tree-optimization/70614
6306         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
6307         loop if the evolution dropped to chrec_dont_know.
6308         (interpret_condition_phi): Likewise.
6310 2016-04-14  Richard Biener  <rguenther@suse.de>
6312         PR tree-optimization/70623
6313         * tree-ssa-pre.c (changed_blocks): Make global ...
6314         (compute_antic): ... local here.  Move and fix worklist
6315         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
6316         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
6317         worklist handling, dump when ANTIC_IN changed.
6318         (compute_partial_antic_aux): Remove worklist handling.
6319         (init_pre): Do not compute post dominators.  Add a comment about
6320         the CFG order chosen.
6321         (fini_pre): Do not free post dominators.
6323 2016-04-13  Martin Sebor  <msebor@redhat.com>
6325         PR c++/69517
6326         PR c++/70019
6327         PR c++/70588
6328         * doc/extend.texi (Variable Length): Document C++ specifics.
6330 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
6332         PR c++/70641
6333         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
6334         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
6335         eh edges have been purged.
6337         PR c++/70594
6338         * tree-sra.c (create_access_replacement,
6339         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
6340         gets fancy name.
6341         * tree-pretty-print.c (dump_fancy_name): New function.
6342         (dump_decl_name, dump_generic_node): Use it.
6344 2016-04-13  Jason Merrill  <jason@redhat.com>
6346         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
6347         * expr.c (expand_expr_real_1): Likewise.
6349 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
6351         * config/i386/i386.md (kunpckhi): Swap operands.
6352         (kunpcksi): Likewise.
6353         (kunpckdi): Likewise.
6354         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
6355         (vec_pack_trunc_<mode>): Likewise.
6357 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
6359         PR debug/70628
6360         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
6362         PR middle-end/70633
6363         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
6364         gimplification turns some element into non-constant.
6366         PR debug/70628
6367         * rtl.h (convert_memory_address_addr_space_1): New prototype.
6368         * explow.c (convert_memory_address_addr_space_1): No longer static,
6369         add NO_EMIT argument and don't call convert_modes if true, pass
6370         it down recursively, remove break after return.
6371         (convert_memory_address_addr_space): Adjust caller.
6372         * simplify-rtx.c (simplify_unary_operation_1): Call
6373         convert_memory_address_addr_space_1 instead of convert_memory_address,
6374         if it returns NULL, don't simplify.
6376 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
6378         PR target/70630
6379         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
6381 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
6383         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6384         Bump the upper SIMDLEN limits, so that if the return type or
6385         characteristic type if the return type is void can be passed in
6386         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
6387         allowed.
6389 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
6391         PR target/70640
6392         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
6393         Do not use "=" constraint on an input constraint.
6394         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
6395         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
6396         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
6397         generates (neg (abs ...)) instead of (abs ...).
6399 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
6401         PR rtl-optimization/70596
6402         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
6403         just invalidate LRA data and reset them.  Adjust dump wording.
6405 2016-04-12  Martin Liska  <mliska@suse.cz>
6407         Revert
6408         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
6410         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6411         estimates here.
6412         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6413         max_loop_iterations_int.
6414         (tree_unswitch_outer_loop): Likewise.
6415         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6416         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
6418 2016-04-12  Tom de Vries  <tom@codesourcery.com>
6420         PR tree-optimization/68756
6421         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
6422         instead of new_name.
6424 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
6426         PR tree-optimization/70602
6427         * tree-sra.c (generate_subtree_copies): Don't write anything into
6428         constant pool decls.
6430         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
6431         regardless whether there are depend clauses or not.
6433 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6435         PR target/70381
6436         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
6437         target attribute and pragma from changing the -mfloat128
6438         and -mfloat128-hardware options.
6440         * doc/extend.texi (Additional Floating Types): Document PowerPC
6441         __float128 restrictions.
6443 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
6445         PR target/70133
6446         * config/aarch64/driver-aarch64.c
6447         (aarch64_get_extension_string_for_isa_flags): New.
6448         (arch_extension): Rename to...
6449         (aarch64_arch_extension): ...This.
6450         (ext_to_feat_string): Rename to...
6451         (aarch64_extensions): ...This.
6452         (aarch64_core_data): Keep track of architecture extension flags.
6453         (cpu_data): Rename to...
6454         (aarch64_cpu_data): ...This.
6455         (aarch64_arch_driver_info): Keep track of architecture extension
6456         flags.
6457         (get_arch_name_from_id): Rename to...
6458         (get_arch_from_id): ...This, change return type.
6459         (host_detect_local_cpu): Update and reformat for renames, handle
6460         extensions through common infrastructure.
6462 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
6464         PR target/70133
6465         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
6466         track of a canonical flag name.
6467         (all_extensions): Likewise.
6468         (arch_to_arch_name): Also track extension flags enabled by the arch.
6469         (all_architectures): Likewise.
6470         (aarch64_parse_extension): Move to here.
6471         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
6472         rework.
6473         (aarch64_rewrite_selected_cpu): Update for above change.
6474         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
6475         are handled, such that the single explicit value enabled by an
6476         extension is kept seperate from the implicit values it also enables.
6477         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
6478         to here.
6479         (aarch64_parse_extension): New.
6480         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
6481         here to config/aarch64/aarch64-protos.h.
6482         (aarch64_parse_extension): Move from here to
6483         common/config/aarch64/aarch64-common.c.
6484         (aarch64_option_print): Update.
6485         (aarch64_declare_function_name): Likewise.
6486         (aarch64_start_file): Likewise.
6487         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
6488         the canonical flag for extensions.
6489         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
6490         flags.
6492 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
6494         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
6495         AARCH64_FL_CRC.
6497 2016-04-09  Tom de Vries  <tom@codesourcery.com>
6499         PR tree-optimization/68953
6500         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
6501         first to last subscript.
6503 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
6505         PR tree-optimization/70586
6506         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
6507         for any calls.
6509 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
6511         PR lto/70289
6512         PR ipa/70348
6513         PR tree-optimization/70373
6514         PR middle-end/70533
6515         PR middle-end/70534
6516         PR middle-end/70535
6517         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
6518         clauses for acc parallel reductions as necessary.  Error on those
6519         that are private.
6520         * omp-low.c (scan_sharing_clauses): Don't install variables which
6521         are used in acc parallel reductions.
6522         (lower_rec_input_clauses): Remove dead code.
6523         (lower_oacc_reductions): Add support for reference reductions.
6524         (lower_reduction_clauses): Remove dead code.
6525         (lower_omp_target): Don't remap variables appearing in acc parallel
6526         reductions.
6527         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
6529 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
6531         PR middle-end/70593
6532         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
6533         with multiple SSA_NAME defs, force the outputs other than first
6534         to be live before calling live_track_process_def on each output.
6536         PR rtl-optimization/70574
6537         * fwprop.c (forward_propagate_and_simplify): Don't add
6538         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
6539         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
6540         paradoxical subregs within *loc.
6542 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
6544         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
6545         -ftree-parallelize-loops={0,1}.
6546         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
6547         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
6548         * config/ia64/hpux.h (LIB_SPEC): Likewise.
6549         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
6550         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
6552 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
6554         PR sanitizer/70541
6555         * asan.c (instrument_derefs): If we get unknown location, extract it
6556         with EXPR_LOCATION.
6557         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
6559 2016-04-08  Tom de Vries  <tom@codesourcery.com>
6561         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
6562         implicit firstprivate clause.
6564 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6566         PR target/70566
6567         * config/arm/thumb2.md (tst + branch-> lsls + branch
6568         peephole below *orsi_not_shiftsi_si): Require that condition
6569         register is dead after the peephole.
6570         (second peephole after the above): Likewise.
6572 2016-04-08  Alan Modra  <amodra@gmail.com>
6574         PR target/70117
6575         * builtins.c (fold_builtin_classify): For IBM extended precision,
6576         look at just the high-order double to test for NaN.
6577         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
6578         test just the high double for Inf but both doubles for subnormal
6579         limit.
6581 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
6583         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
6584         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
6585         node->simdclone->mask_mode != VOIDmode masks.
6586         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
6587         earlier, use it instead of node->simdclone.
6588         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6589         Set clonei->mask_mode.
6591 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
6593         PR c/70436
6594         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
6595         Pass it through to cp_parser_already_scoped_statement.
6596         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
6597         it through to cp_parser_statement.
6598         (cp_parser_statement): Pass IF_P through to
6599         cp_parser_iteration_statement.
6600         (cp_parser_pragma): Adjust call to
6601         cp_parser_iteration_statement.
6603 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
6605         PR c/70436
6606         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
6607         resolve a future -Wparentheses warning.
6608         * omp-low.c (scan_sharing_clauses): Likewise.
6609         * tree-parloops.c (eliminate_local_variables): Likewise.
6611 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
6613         PR rtl-optimization/70398
6614         * lra-constraints.c (process_address_1): Check zero scale and code
6615         for reloading with zero scale.
6617 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
6619         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
6620         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
6622 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
6624         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6625         Add support for AVX512F clones, include them by default for
6626         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
6627         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
6628         up to 128.
6630         PR middle-end/70550
6631         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
6632         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
6633         firstprivate clauses.
6634         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
6635         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
6636         (lower_omp_target): Set TREE_NO_WARNING for
6637         non-addressable possibly uninitialized vars which are copied into
6638         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
6640 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
6642         * config/pa/predicates.md (integer_store_memory_operand): Accept
6643         REG+D operands with a large offset when reload_in_progress is true.
6644         (floating_point_store_memory_operand): Likewise.
6646 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
6648         PR c++/70336
6649         * match.pd (nested int casts): Limit to GIMPLE.
6651 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
6653         PR ipa/66223
6654         * ipa-devirt.c (maybe_record_node): Fix comment; use
6655         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
6657 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
6659         PR rtl-optimization/70542
6660         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
6661         if there are any uses other than insn or debug insns.
6663 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
6664             Jakub Jelinek  <jakub@redhat.com>
6666         PR tree-optimization/70509
6667         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
6668         Shift HOST_WIDE_INT_1U instead of 1.
6670 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
6672         PR tree-optimization/70509
6673         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
6674         of the vector base type for index.
6676 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
6678         PR target/70510
6679         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
6681 2016-04-05  Richard Biener  <rguenther@suse.de>
6683         PR tree-optimization/70526
6684         * tree-sra.c (build_ref_for_offset): Use prev_base to
6685         extract the alias pointer type.
6687 2016-04-05  Richard Biener  <rguenther@suse.de>
6689         * dse.c (struct store_info): Remove alias_set member.
6690         (struct read_info_type): Likewise.
6691         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
6692         spill_deleted, clear_alias_set_lookup): Remove.
6693         (get_group_info): Remove dead base == NULL_RTX case.
6694         (dse_step0): Remove initialization of removed variables.
6695         (delete_dead_store_insn): Reomve alias set dumping.
6696         (free_read_records): Remove alias_set handling.
6697         (canon_address): Remove alias_set_out parameter.
6698         (record_store): Remove spill_alias_set, it's always zero.
6699         (check_mem_read_rtx): Likewise.
6700         (dse_step2): Rename from ...
6701         (dse_step2_nospill): ... this.  Adjust.
6702         (scan_stores): Rename from ...
6703         (scan_stores_nospill): ... this.
6704         (scan_reads): Rename from ...
6705         (scan_reads_nospill): ... this.
6706         (scan_stores_spill, scan_reads_spill): Remove.
6707         (dse_step3_scan): Remove for_spills argument which is always false.
6708         (dse_step3): Likewise.
6709         (dse_step5): Rename from ...
6710         (dse_step5_nospill): ... this.  Remove alias_set handling.
6711         (rest_of_handle_dse): Adjust.
6713 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
6715         PR target/70525
6716         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
6717         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
6718         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
6719         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
6721 2016-04-05  Richard Biener  <rguenther@suse.de>
6723         PR middle-end/70499
6724         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
6725         non-register type temporaries into SSA.
6727 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
6729         PR ipa/66223
6730         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
6731         calls when sanitizing.
6732         (possible_polymorphic_call_target_p): Fix formatting.
6734 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6735             Jakub Jelinek <jakub@redhat.com>
6737         PR middle-end/70457
6738         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
6739         to ensure a call statement is compatible with a built-in's
6740         prototype.
6741         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
6742         Likewise.
6744 2016-04-04  Richard Biener  <rguenther@suse.de>
6746         PR rtl-optimization/70484
6747         * rtl.h (canon_output_dependence): Declare.
6748         * alias.c (canon_output_dependence): New function.
6749         * dse.c (record_store): Use canon_output_dependence rather
6750         than canon_true_dependence.
6752 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
6754         PR ipa/68881
6755         * cgraph.h (symtab_node::copy_visibility_from): New function.
6756         * symtab.c (symtab_node::copy_visibility_from): New function.
6757         * ipa-visibility.c (optimize_weakref): New function.
6758         (function_and_variable_visibility): Use it.
6760 2016-04-04  Martin Liska  <mliska@suse.cz>
6762         PR hsa/70402
6763         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
6764         value that is really in range handled by SBR instruction.
6765         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
6766         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
6767         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
6769 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
6771         PR target/70416
6772         PR target/67391
6773         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
6774         set, but not for SP_REG operands.
6776 2016-04-02  Martin Sebor  <msebor@redhat.com>
6778         PR c++/67376
6779         * fold-const.c (maybe_nonzero_address): New function.
6780         (fold_comparison): Call it.  Fold equality and relational
6781         expressions involving null pointers.
6782         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
6784 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
6786         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
6787         the "Y" constraint (scalar FP 0.0 immediate).
6789         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
6790         Add the "const_double" to the list of operand constraints.
6792 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
6794         PR rtl-optimization/70467
6795         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
6796         If low word of the last operand is 0, just emit addition/subtraction
6797         for the high word.
6799 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6801         PR target/70404
6802         * config/s390/s390.c (s390_expand_insv): Check for everything
6803         constant instead of just VOIDmode stuff.
6805 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6807         PR target/70496
6808         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
6810 2016-04-01  Nathan Sidwell  <nathan@acm.org>
6812         * tree.def (TRY_CATCH_EXPR): Correct documentation.
6814 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
6816         PR rtl-optimization/70461
6817         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
6818         is necessary.
6820 2016-03-31  Martin Liska  <mliska@suse.cz>
6822         PR hsa/70399
6823         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
6824         a tree value or an immediate integer value to a buffer
6825         that is eventually copied to a BRIG section.
6826         (emit_immediate_operand): Call the function here.
6827         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
6828         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
6829         of class' fields that are removed.
6830         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
6831         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
6832         m_brig_repr_size fields.
6834 2016-03-31  Martin Liska  <mliska@suse.cz>
6836         PR hsa/70391
6837         * hsa-gen.c (hsa_function_representation::update_dominance): New
6838         function.
6839         (convert_addr_to_flat_segment): Likewise.
6840         (gen_hsa_memory_set): New alignment argument.
6841         (gen_hsa_ctor_assignment): Likewise.
6842         (gen_hsa_insns_for_single_assignment): Provide alignment
6843         to gen_hsa_ctor_assignment.
6844         (gen_hsa_insns_for_direct_call): Add new argument.
6845         (expand_lhs_of_string_op): New function.
6846         (expand_string_operation_builtin): Likewise.
6847         (expand_memory_copy): New function.
6848         (expand_memory_set): New function.
6849         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
6850         (convert_switch_statements): Change signature.
6851         (generate_hsa): Use a return value of the function.
6852         (pass_gen_hsail::execute): Do not call
6853         convert_switch_statements here.
6854         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
6855         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
6856         (hsa_function_representation::update_dominance): New function.
6858 2016-03-31  Martin Liska  <mliska@suse.cz>
6860         PR hsa/70391
6861         * hsa-brig.c (emit_directive_variable): Emit alignment
6862         according to hsa_symbol::m_align.
6863         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
6864         (dump_hsa_symbol): Dump alignment of HSA symbols.
6865         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
6866         (gen_hsa_addr_with_align): New function.
6867         (hsa_bitmemref_alignment): Use newly added function.
6868         (gen_hsa_insns_for_load): Likewise.
6869         (gen_hsa_insns_for_store): Likewise.
6870         (gen_hsa_memory_copy): New argument added.
6871         (gen_hsa_insns_for_single_assignment): Respect
6872         alignment for assignments processed via gen_hsa_memory_copy.
6873         (gen_hsa_insns_for_direct_call): Likewise.
6874         (gen_hsa_insns_for_return): Likewise.
6875         (gen_function_def_parameters): Set default alignment.
6876         * hsa.c (hsa_object_alignment): New function.
6877         (hsa_byte_alignment): Pasted function.
6878         * hsa.h (hsa_symbol::m_align): New field.
6880 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
6882         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
6883         scratch field for goto case.
6885 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
6887         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
6889 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
6891         PR target/70442
6892         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
6893         (scalar_chain::convert_insn): Call convert_op for reg
6894         moves to handle undefined registers.
6896 2016-03-31  Nathan Sidwell  <nathan@acm.org>
6898         PR c++/70393
6899         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
6900         Assert we don't want to move backwards.
6902 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
6904         PR target/70453
6905         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
6907 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
6909         PR rtl-optimization/70460
6910         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
6911         with operand from REG_LABEL_OPERAND, instead substitute
6912         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
6913         Don't do anything for REG_NON_LOCAL_GOTO jumps.
6915 2016-03-31  Martin Liska  <mliska@suse.cz>
6917         * passes.c (execute_one_pass): Do not call
6918         todo_after for a discarded function.
6920 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
6922         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
6923         (no_cost, infinite_cost): Initialize the new field.
6924         (get_computation_cost_at): Record setup cost.
6925         (determine_use_iv_cost_address): Skip cost computation for sub
6926         uses if we can estimate it without losing accuracy.
6928 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
6930         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6931         estimates here.
6932         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6933         max_loop_iterations_int.
6934         (tree_unswitch_outer_loop): Likewise.
6935         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6936         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
6938 2016-03-30  Richard Biener  <rguenther@suse.de>
6940         PR middle-end/70450
6941         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
6943 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
6945         PR target/70421
6946         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
6947         in gen_blendm expander.
6949 2016-03-30  Nick Clifton  <nickc@redhat.com>
6951         PR target/62254
6952         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
6953         case where we are already provided with an SImode SUBREG.
6955 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6957         PR target/70439
6958         * config/i386/i386.c (ix86_expand_epilogue): Properly check
6959         conflict between DRAP register and __builtin_eh_return.
6961 2016-03-30  Michael Matz  <matz@suse.de>
6962             Richard Biener  <rguenther@suse.de>
6964         PR ipa/12392
6965         * ipa-polymorphic-call.c (struct type_change_info): Change
6966         speculative to an unsigned allowing to limit the work we do.
6967         (csftc_abort_walking_p): New inline function..
6968         (check_stmt_for_type_change): Limit the number of may-defs
6969         skipped for speculative devirtualization to
6970         max-speculative-devirt-maydefs.
6971         * params.def (max-speculative-devirt-maydefs): New param.
6972         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
6974 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
6976         PR target/63890
6977         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
6978         and TARGET_MACHO.
6980 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
6982         PR tree-optimization/59124
6983         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
6984         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
6986 2016-03-29  Jeff Law  <law@redhat.com>
6988         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
6990 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6992         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
6993         to HOST_WIDE_INT.
6995 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
6997         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
6998         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
6999         gcrt0.o if linking dynamically.
7001 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
7003         PR ipa/70283
7004         * ipa-devirt.c (methods_equal_p): New function.
7005         (compare_virtual_tables): Use it.
7006         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
7007         * cgraphclones.c (clone_function_name_1): Use
7008         symbol_table::symbol_suffix_separator.
7009         * coverage.c (build_var): Likewise.
7010         * symtab.c (symbol_table::symbol_suffix_separator): New.
7012 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
7014         PR rtl-optimization/70429
7015         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
7016         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
7017         mode != result_mode.
7019         PR c++/70353
7020         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
7022         PR tree-optimization/70405
7023         * ssa-iterators.h (num_imm_uses): Add missing braces.
7025 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7027         PR rtl-optimization/68695
7028         * ira-color.c (allocno_copy_cost_saving): New.
7029         (improve_allocation): Use it.
7031 2016-03-29  Richard Henderson  <rth@redhat.com>
7033         PR middle-end/70355
7034         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
7036 2016-03-29  Richard Biener  <rguenther@suse.de>
7038         PR middle-end/70424
7039         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
7040         use alignment returned by get_pointer_alignment_1 if it is
7041         bigger than BITS_PER_UNIT.
7042         * builtins.c (get_pointer_alignment_1): Do not return true
7043         for alignment extracted from SSA info.
7045 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
7047         * config/ft32/ft32.opt (mnodiv): New.
7048         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
7049         * doc/invoke.texi (FT32 Options -mnodiv): New.
7051 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
7053         PR target/70406
7054         * config/i386/i386.md (define_split, andn): Fix modes.
7056 2016-03-26  Richard Biener  <rguenther@suse.de>
7057             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7059         PR ipa/70366
7060         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
7061         instead of
7062         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
7063         as 2nd argument to cl_optimization_restore().
7065 2016-03-25  Richard Henderson  <rth@redhat.com>
7067         PR target/70120
7068         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
7069         * config/aarch64/aarch64-protos.h: Declare it.
7070         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
7072 2016-03-25  Alan Modra  <amodra@gmail.com>
7074         PR target/70052
7075         * config/rs6000/constraints.md (j): Simplify.
7076         * config/rs6000/predicates.md (easy_fp_constant): Exclude
7077         decimal float 0.D.
7078         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
7079         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
7080          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
7081         in all constraint alternatives.
7082         (movtd_64bit_nodm): Delete "j" constraint alternative.
7084 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
7086         * tree-ssa-propagate.c: Enhance docs for
7087         SSA_PROP_NOT_INTERESTING.
7089 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
7091         * doc/extend.texi: Fix typo in documentation to pure attribute.
7093 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
7095         PR target/70319
7096         * config/pa/pa.md (bswapdi2): Use a scratch register.
7098 2016-03-24  Richard Henderson  <rth@redhat.com>
7100         PR middle-end/69845
7101         * fold-const.c (extract_muldiv_1): Correct test for multiplication
7102         overflow.
7104 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
7106         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
7107         using ix86_expand_binary_operator instead of gen_andsi3.
7109 2016-03-24  Richard Biener  <rguenther@suse.de>
7111         PR tree-optimization/70396
7112         * tree-vect-stmts.c (vectorizable_comparison): Use
7113         get_vectype_for_scalar_type.
7115 2016-03-24  Richard Biener  <rguenther@suse.de>
7117         PR middle-end/70370
7118         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
7119         with register bases.
7121 2016-03-24  Richard Biener  <rguenther@suse.de>
7123         PR tree-optimization/70372
7124         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
7125         build_all_ones_cst to also handle vector types correctly.
7127 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
7129         PR target/70381
7130         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
7131         -mfloat128 here.
7133 2016-03-23  Marek Polacek  <polacek@redhat.com>
7135         PR c++/69884
7136         * doc/invoke.texi: Document -Wignored-attributes.
7138 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
7140         PR tree-optimization/69042
7141         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
7142         parameter from 30 to 40.
7144 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
7146         PR tree-optimization/69042
7147         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
7148         for use with constant offset stripped in base.
7150 2016-03-23  Richard Biener  <rguenther@suse.de>
7152         PR middle-end/70251
7153         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
7154         mode compatibility check.
7155         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7157 2016-03-23  Jeff Law  <law@redhat.com>
7159         PR tree-optimization/64058
7160         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
7161         CONFLICT_COUNT.
7162         (struct ssa_conflicts): Move up earlier in the file.
7163         (conflicts_, var_map_): New static variables.
7164         (initialize_conflict_count): New function to initialize the
7165         CONFLICT_COUNT field for each conflict pair.
7166         (compare_pairs): Lazily initialize the conflict count and use it
7167         as the first tie-breaker.
7168         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
7169         and wipe conflicts_ and map_ around the call to qsort.  Remove
7170         special case for 2 coalesce pairs.
7171         * bitmap.c (bitmap_count_unique_bits): New function.
7172         (bitmap_count_bits_in_word): New function, extracted from
7173         bitmap_count_bits.
7174         (bitmap_count_bits): Use bitmap_count_bits_in_word.
7175         * bitmap.h (bitmap_count_unique_bits): Declare it.
7177 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7179         PR target/69917
7180         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
7181         transparent alias chain for decl assembler name.
7182         * config/sol2.c (solaris_assemble_visibility): Likewise.
7184 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7186         * config/arm/arm1020e.md (1020call_op): Reduce reservation
7187         duration.
7188         (v10_fdivs): Likewise.
7189         (v10_fdivd): Likewise.
7191 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7193         PR driver/70132
7194         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
7195         to not call fclose twice on file.
7197 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
7199         PR tree-optimization/70354
7200         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
7201         oprnd0 is wider than oprnd1 and there is a cast from the wider
7202         type to oprnd1, mask it with the mask of the narrower type.
7204         PR target/70321
7205         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
7206         Optimize TARGET_STV splitters, if high or low word of last argument
7207         is 0 or -1.
7209 2016-03-22  Jeff Law  <law@redhat.com>
7211         PR target/70232
7212         tree-ssa-threadbackward.c
7213         (fsm_find_control_statement_thread_paths): Correctly distinguish
7214         between old style jump threads vs FSM jump threads.
7216 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
7218         PR target/70302
7219         * config/i386/i386.c (scalar_chain::convert_op): Support
7220         uninitialized register usage case.
7222 2016-03-22  Richard Biener  <rguenther@suse.de>
7224         PR middle-end/70251
7225         * genmatch.c (gen_transform): Adjust last parameter to a three-state
7226         int...
7227         (capture::gen_transform): ... to change behavior when substituting
7228         a condition into cond or not-cond expr context.
7229         (dt_simplify::gen_1): Adjust.
7230         * gimple-match-head.c: Include gimplify.h for unshare_expr.
7231         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
7232         last change and instead change to
7233         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
7234         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7236 2016-03-22  Anthony Green  <green@moxielogic.com>
7238         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
7239         issue for moxiebox targets.
7240         (CC1PLUS_SPEC): Ditto.
7242 2016-03-22  Richard Biener  <rguenther@suse.de>
7244         PR middle-end/70333
7245         * fold-const.c (extract_muldiv_1): Properly perform multiplication
7246         in the wide type.
7248 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
7250         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
7252 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
7254         PR target/70325
7255         * config/i386/i386.c (def_builtin): Handle
7256         OPTION_MASK_ISA_AVX512VL to be and-ed with other
7257         bits.
7258         (const struct builtin_description bdesc_special_args[]):
7259         Remove duplicate ISA bits.
7261 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
7263         PR target/70329
7264         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
7265         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
7266         in a way that works also for AVX512BW.
7268         PR target/70300
7269         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
7270         instead of source if operands[1] is xmm16 and above and
7271         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
7272         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
7274         PR c++/70295
7275         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
7276         on assign if (*from_p) is a comparison, set it to
7277         TREE_NO_WARNING (*from_p).
7279 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
7281         PR middle-end/70326
7282         * lra.c (restore_scratches): Ignore deleted insns.
7284 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
7285             Jakub Jelinek  <jakub@redhat.com>
7287         PR tree-optimization/70317
7288         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
7289         to HONOR_NANS.
7291 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
7293         PR target/70327
7294         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
7295         of ix86_expand_move.
7296         (movoi): Ditto.
7297         (movti): Use general_operand for operand 1 predicate.
7299 2016-03-21  Martin Liska  <mliska@suse.cz>
7301         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
7302         insns.
7303         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
7305 2016-03-21  Martin Liska  <mliska@suse.cz>
7307         PR ipa/70306
7308         * ipa-icf.c (sem_function::parse): Skip static
7309         constructors and destructors.
7311 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
7313         PR target/70296
7314         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
7315         function-like macro, peek following token(s) if it is followed
7316         by CPP_OPEN_PAREN token with optional padding in between, and
7317         if not, don't treat it like a macro.
7319 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
7320             Alexander Monakov  <amonakov@ispras.ru>
7322         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
7323         for the stabs debug format.
7325 2016-03-21  Richard Biener  <rguenther@suse.de>
7327         PR tree-optimization/70310
7328         * tree-vect-generic.c (expand_vector_condition): Fold the built
7329         condition.
7331 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
7333         PR target/70293
7334         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
7335         Block third alternative for AVX-512VL target,
7337 2016-03-21  Martin Liska  <mliska@suse.cz>
7339         PR hsa/70234
7340         * hsa-brig.c (emit_function_directives): Mark unemitted
7341         global variables for emission.
7342         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
7343         (get_symbol_for_decl): Likewise.
7344         * hsa.h (struct hsa_symbol): New flag.
7346 2016-03-21  Richard Biener  <rguenther@suse.de>
7348         PR tree-optimization/70288
7349         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
7350         we do not estimate unsimplified all-constant conditionals or
7351         switches as optimized away.
7353 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
7355         PR rtl-optimization/69102
7356         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
7357         when we have a readonly dependency context.
7359 2016-03-18  Jeff Law  <law@redhat.com>
7361         PR rtl-optimization/70263
7362         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
7363         (update_equiv_regs): When trying to move a store to after the insn
7364         that sets the source of the store, make sure the store occurs after
7365         the insn that sets the source of the store.  When successful note
7366         the REG_EQUIV note created in the dump file.
7368 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
7369             Bernd Schmidt  <bschmidt@redhat.com>
7371         * doc/extend.texi: Document more potential problems with basic asms.
7373 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
7375         PR rtl-optimization/70278
7376         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
7377         VOIDmode.
7379 2016-03-18  Jason Merrill  <jason@redhat.com>
7381         * calls.c (load_register_parameters): Fix zero size sibcall logic.
7383 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
7385         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
7386         values to 128b regs.
7388 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
7390         PR tree-optimization/70252
7391         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
7392         boolean vector has a proper number of elements.
7393         (supportable_narrowing_operation): Likewise.
7395 2016-03-18  Tom de Vries  <tom@codesourcery.com>
7397         PR ipa/70269
7398         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
7400 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
7402         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
7403         instead of replace_rtx for DEBUG_INSNs.
7405 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7407         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
7408         load type reservations.
7410 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
7412         PR target/70188
7413         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
7414         define_constraint for "Q" and "T" constraints.
7416 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
7418         Tweak the pipeline model for Exynos M1
7420         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
7421         model.
7423 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
7425         PR c/70264
7426         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
7427         where one or both locations aren't within a line_map.
7429 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7431         PR driver/70192
7432         * opts.c (finish_options): Don't set flag_pie to the default if
7433         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
7434         if it is -1.
7436 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
7438         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
7439         true as ALL_REGS argument to replace_rtx.
7441 2016-03-17  Richard Biener  <rguenther@suse.de>
7443         PR debug/70271
7444         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
7445         last.
7447 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
7449         PR target/70245
7450         * rtl.h (replace_rtx): Add ALL_REGS argument.
7451         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
7452         equality and assert mode is the same, instead of just rtx pointer
7453         equality.
7454         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
7455         true as ALL_REGS argument to replace_rtx.
7457 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
7459         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
7460         for boolean vector with vector mode only.
7461         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7463 2016-03-17  Nick Clifton  <nickc@redhat.com>
7465         PR target/70162
7466         * config/rx/rx.c (rx_print_integer): Print negative constants in
7467         decimal.
7469 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
7471         PR target/70261
7472         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
7474 2016-03-16  Richard Henderson  <rth@redhat.com>
7475             Richard Biener  <rguenth@suse.de>
7477         PR middle-end/70240
7478         PR middle-end/68215
7479         PR tree-opt/68714
7480         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
7481         first operand as is_gimple_condexpr.
7483         PR middle-end/70240
7484         PR middle-end/68215
7485         Revert r231575
7486         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
7487         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
7488         Do not gimplify the result.
7489         (do_unop): Adjust call to tree_vec_extract.
7490         (do_binop): Likewise.
7491         (do_compare): Likewise.
7492         (do_plus_minus): Likewise.
7493         (do_negate): Likewise.
7494         (expand_vector_condition): Likewise.
7495         (do_cond): Likewise.
7497 2016-03-16  Richard Henderson  <rth@redhat.com>
7499         PR target/70048
7500         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
7501         (aarch64_classify_address): Use it.
7502         (aarch64_legitimize_address): Force all subexpressions of PLUS
7503         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
7505 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
7506             Richard Biener  <rguenth@suse.de>
7508         PR target/70245
7509         * rtlanal.c (replace_rtx): For REG, if from is a REG,
7510         return to even if only REGNO is equal, and assert
7511         mode is the same.
7513 2016-03-11  Jeff Law  <law@redhat.com>
7515         PR rtl-optimization/70224
7516         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
7518 2016-03-16  Richard Henderson  <rth@redhat.com>
7520         PR middle-end/70199
7521         * function.h (struct function): Add has_forced_label_in_static.
7522         * gimplify.c (force_labels_r): Set it.
7523         * lto-streamer-in.c (input_struct_function_base): Read it.
7524         * lto-streamer-out.c (output_struct_function_base): Write it.
7525         * tree-inline.c (has_label_address_in_static_1): Remove.
7526         (copy_forbidden): Remove fndecl parameter; test
7527         has_forced_label_in_static.
7528         (inline_forbidden_p): Update call to copy_forbidden.
7529         (tree_versionable_function_p): Likewise.
7530         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
7531         (chkp_versioning): Likewise.
7532         * tree-inline.h (copy_forbidden): Update decl.
7534 2016-03-16  Marek Polacek  <polacek@redhat.com>
7536         PR c/70093
7537         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
7538         function being thunked if the result type doesn't have fixed size.
7539         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
7540         doesn't have fixed size.
7542 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
7544         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
7545         reporting malformed loop nest.
7547 2016-03-16  Tom de Vries  <tom@codesourcery.com>
7549         PR lto/70187
7550         * ipa-devirt.c (possible_polymorphic_call_targets): Move
7551         nodes.length () == 1 test to before first nodes[0] access.
7553 2016-03-16  Tom de Vries  <tom@codesourcery.com>
7555         PR tree-optimization/68715
7556         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
7557         single_pred_p test.
7559 2016-03-16  Tom de Vries  <tom@codesourcery.com>
7561         PR tree-optimization/68809
7562         * graphite-scop-detection.c (same_close_phi_node): Test if result types
7563         are the same.
7565 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
7566             Sandra Loosemore  <sandra@codesourcery.com>
7568         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
7569         on leaf attribute. Mention ELF interposition problems.
7571 2016-03-16  Alan Modra  <amodra@gmail.com>
7573         PR rtl-optimization/69195
7574         PR rtl-optimization/47992
7575         * ira.c (indirect_jump_optimize): Ignore artificial defs.
7576         Add comments.
7578 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
7580         PR bootstrap/69513
7581         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
7583 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7585         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
7587 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
7589         PR rtl-optimization/70222
7590         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
7591         optimization if mode is different from result_mode, queue up masking
7592         of the result in outer_op.  Formatting fix.
7594         PR middle-end/70239
7595         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
7596         of safe_grow.
7598 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
7600         PR rtl-optimization/69032
7601         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
7602         looping backwards over basic block insns.
7604 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
7606         PR target/66660
7607         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
7608         to non-speculative when propagating trap bits.
7610 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
7612         PR rtl-optimization/63384
7613         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
7614         DEBUG_INSN_P insns.
7616 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
7618         PR target/64411
7619         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
7620         factored out from ...
7621         (sched_analyze_insn): ... here.
7622         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
7623         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
7624         get_implicit_reg_pending_clobbers in it.
7625         (setup_id_reg_sets): Use setup_id_implicit_regs.
7626         (deps_init_id): Ditto.
7628 2016-03-15  Tom de Vries  <tom@codesourcery.com>
7630         PR ipa/70161
7631         * cgraph.c (cgraph_node::get_body): Save, reset and restore
7632         dump_file_name.
7633         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
7634         execute_function_dump.
7635         (execute_one_pass): Don't dump function if it will be dumped after ipa
7636         transform.
7638 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
7640         * genrecog.c (match_pattern_2): If pred is NULL don't call
7641         safe_predicate_mode on it.
7643 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
7645         PR middle-end/70219
7646         * lra-constraints.c (delete_move_and_clobber): Change assertion
7647         to also allow dregno == 0.
7649 2016-03-14  Richard Henderson  <rth@redhat.com>
7651         PR tree-opt/68714
7652         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
7653         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
7654         (reassociate_bb): Use optimize_vec_cond_expr; avoid
7655         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
7656         on vectors.
7658 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
7660         PR target/70083
7661         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
7662         regs.
7663         (lra_create_live_ranges_1): initialize hard register biggest_mode to
7664         VOIDmode.
7665         * lra-constraints.c (split_reg): For hard regs, try to find the
7666         biggest single-register mode used in the function.
7668 2016-03-14  Richard Biener  <rguenther@suse.de>
7670         PR tree-optimization/56365
7671         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
7672         constants to compare against.
7674 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
7676         PR target/70098
7677         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
7678         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
7679         (define_split for the GPR case): Use int_reg_operand instead of
7680         gpc_reg_operand for the output.
7682 2016-03-14  Tom de Vries  <tom@codesourcery.com>
7684         PR tree-optimization/70045
7685         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
7686         create_empty_if_region_on_edge argument.
7688 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
7690         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
7691         (STACK_CHECK_PROTECT): Likewise.
7692         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7693         (STACK_CHECK_PROTECT): Likewise.
7694         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7695         (STACK_CHECK_PROTECT): Likewise.
7696         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
7697         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7698         (STACK_CHECK_PROTECT): Likewise.
7700 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
7702         PR rtl-optimization/69307
7703         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
7704         registers in modes that span more than one register.
7706 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
7708         PR target/69614
7709         * lra-constraints.c (delete_move_and_clobber): New.
7710         (remove_inheritance_pseudos): Use it.
7712 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
7714         PR ada/70017
7715         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
7716         the libcall is LCT_THROW.
7717         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
7718         for the checking routine.
7720 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
7722         PR target/70131
7723         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
7724         optimization if we have direct move.
7725         (roundu32<mode>2_fprs): Likewise.
7727 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
7729         PR target/70123
7730         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
7731         be rematerialized.
7732         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
7733         Arguments swapped.  All callers changed.  Take reg_renumber into
7734         account, and Calculate and compare register ranges for hard regs.
7736 2016-03-11  Jeff Law  <law@redhat.com>
7738         PR tree-optimization/70190
7739         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7740         Handle cases where we can not extract the taken edge, even though we
7741         found a constant value.
7743         PR tree-optimization/64058
7744         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
7745         (num_coalesce_pairs): Move up earlier in file.
7746         (find_coalesce_pair): Initialize the INDEX field for each pair
7747         discovered.
7748         (compare_pairs): No longer sort on the elements in each pair.
7749         Instead break ties with the index of the coalesce pair.
7751 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7753         PR target/70002
7754         * config/aarch64/aarch64-protos.h
7755         (aarch64_save_restore_target_globals): New prototype.
7756         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
7757         Call the above when popping pragma.
7758         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
7759         New function.
7760         (aarch64_set_current_function): Rewrite using the above.
7762 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
7764         PR tree-optimization/70177
7765         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
7766         (extract_ops_from_tree): ... this.  In the 2 argument
7767         overload remove _1 suffix.
7768         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
7769         (extract_ops_from_tree): ... this.
7770         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
7771         Adjust callers.
7772         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
7773         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
7774         extract_ops_from_tree instead of 2 operand one.
7776 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
7778         PR tree-optimization/70013
7779         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
7780         for constant-pool entries.
7782 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
7784         PR rtl-optimization/70174
7785         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
7786         followed by gen_lowpart on force_reg instead of just gen_lowpart.
7788         PR tree-optimization/70169
7789         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
7790         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
7791         for unknown codes.
7793 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
7794             Jakub Jelinek  <jakub@redhat.com>
7796         PR target/70160
7797         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
7798         of uninitialized values.
7800 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7802         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
7803         define_expand.
7804         ("*trunctddd2"): New pattern definition.
7805         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
7806         TD->DD truncation.
7808 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7810         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
7811         definitions for BFP and DFP rounding modes.
7812         ("fixuns_truncdddi2", "fixuns_trunctddi2")
7813         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
7814         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
7815         ("fix_trunctf<mode>2"): Use the new constants instead of magic
7816         numbers.
7818 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7820         * config/s390/constraints.md: Adjust comment.
7821         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
7822         s390_decompose_addrstyle_without_index.
7823         * config/s390/predicates.md (shift_count_or_setmem_operand):
7824         Rename to setmem_operand.
7825         * config/s390/s390-protos.h
7826         (s390_decompose_shift_count): Rename to
7827         s390_decompose_addrstyle_without_index.
7828         * config/s390/s390.c (s390_decompose_shift_count)
7829         (s390_mem_constraint, print_shift_count_operand)
7830         (print_operand_address, print_operand): Rename
7831         s390_decompose_shift_count to
7832         s390_decompose_addrstyle_without_index and rename
7833         print_shift_count_operand to print_addrstyle_operand troughout the
7834         file.
7835         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
7836         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
7837         Rename shift_count_or_setmem_operand to setmem_operand.
7838         * config/s390/vx-builtins.md ("vec_insert<mode>")
7839         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
7840         nonmemory_operand.
7842 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7844         PR target/70168
7845         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
7846         Handle overlapping retval and newval.
7848 2016-03-10  Nick Clifton  <nickc@redhat.com>
7850         PR target/7044
7851         * config/aarch64/aarch64.c
7852         (aarch64_override_options_after_change_1): When forcing
7853         flag_omit_frame_pointer to be true, use a special value that can
7854         be detected if this function is called again, thus preventing
7855         flag_omit_leaf_frame_pointer from being forced to be false.
7857 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7859         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
7860         Set x_flag_omit_leaf_frame_pointer when handling
7861         -momit-leaf-frame-pointer.
7863 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
7865         PR lto/69589
7866         * cgraph.c (cgraph_node::dump): Dump split_part and
7867         indirect_call_target.
7868         * cgraph.h (cgraph_node): Add indirect_call_target flag.
7869         * ipa.c (has_addr_references_p): Cleanup.
7870         (is_indirect_call_target_p): New.
7871         (walk_polymorphic_call_targets): Do not mark virtuals that may be
7872         called indirectly as local.
7873         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
7875 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
7877         PR ipa/69630
7878         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7879         on cxa_pure_virtual.
7881 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
7883         PR lto/69589
7884         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
7886 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
7888         PR lto/69589
7889         * tree.c (need_assembler_name_p): Only record main variant type names.
7891 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
7893         PR target/70113.
7894         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
7895         Always define to 0 or 1.
7896         (TARGET_FIX_ERR_A53_843419): New macro.
7897         * config/aarch64/aarch64-elf-raw.h
7898         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
7899         * config/aarch64/aarch64-linux.h: Likewise.
7900         * config/aarch64/aarch64.c
7901         (aarch64_override_options_after_change_1): Do not default
7902         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
7903         843419 is on.
7904         (aarch64_attributes): Handle fix-cortex-a53-843419.
7905         (aarch64_can_inline_p): Likewise.
7906         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
7908 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
7909         Jakub Jelinek <jakub@redhat.com>
7911         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
7912         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
7913         DECL_COMMONS if flag_unconstrained_commons is set.
7914         * tree-dfa.c (get_ref_base_and_extent): Likewise.
7915         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
7916         (funconstrained-commons): Document.
7918 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
7920         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
7921         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
7923 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
7925         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
7926         has a proper number of elements.
7928 2016-03-10  Alan Modra  <amodra@gmail.com>
7930         PR rtl-optimization/69195
7931         PR rtl-optimization/47992
7932         * ira.c (recorded_label_ref): Delete.
7933         (update_equiv_regs): Return void.
7934         (indirect_jump_optimize): New function.
7935         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
7936         before regstat_compute_ri.  Don't rebuild_jump_labels here.
7937         Delete update_regstat.
7939 2016-03-10  Richard Biener  <rguenther@suse.de>
7941         PR tree-optimization/70128
7942         * tree-ssa-structalias.c (set_uids_in_ptset): Set
7943         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
7945 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
7947         PR tree-optimization/70152
7948         * tree-sra.c (replace_removed_params_ssa_names): Copy over
7949         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
7951         PR target/70086
7952         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
7953         instead of gen_sse2_loadlpd.
7954         * config/i386/sse.md (*vec_concatv2df): Rename to...
7955         (vec_concatv2df): ... this.
7957         PR tree-optimization/70127
7958         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
7960 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
7962         PR c/68473
7963         PR c++/70105
7964         * diagnostic-show-locus.c (compatible_locations_p): New function.
7965         (layout::layout): Sanitize ranges using compatible_locations_p.
7967 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
7969         PR c/68473
7970         PR c++/70105
7971         * diagnostic-show-locus.c (layout_range::layout_range): Replace
7972         location_range param with three const expanded_locations * and a
7973         bool.
7974         (layout::layout): Replace call to
7975         rich_location::lazily_expand_location with get_expanded_location.
7976         Extract the range and perform location expansion here, passing
7977         the results to the layout_range ctor.
7978         * diagnostic.c (source_range::debug): Delete.
7979         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
7980         of rich_location::get_expanded_location.
7981         * gcc-rich-location.c (get_range_for_expr): Delete.
7982         (gcc_rich_location::add_expr): Reimplement to avoid the
7983         rich_location::add_range overload that took a location_range,
7984         passing a location_t instead.
7986 2016-03-09  Richard Biener  <rguenther@suse.de>
7987         Jakub Jelinek  <jakub@redhat.com>
7989         PR tree-optimization/70138
7990         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7991         Also skip vect_double_reduction_def.
7993 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
7995         PR target/70049
7996         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
7997         if the operand is "m".
7999 2016-03-09  Nathan Sidwell  <nathan@acm.org>
8001         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
8003 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8005         * config/i386/i386.c (processor_target_table): Fix cost table
8006         intialization order for znver1.
8008 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
8010         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
8011         - becuase -> because.
8012         * ipa-reference.c (ignore_module_statics): Likewise.
8013         * cgraph.c (cgraph_node::get_body): Likewise.
8014         * ipa-inline.c (early_inliner): Likewise.
8015         * ipa-devirt.c (types_same_for_odr): Likewise.
8016         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
8017         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
8019 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8021         * tree-ssa-math-opts.c: Fix typo in comment.
8023 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
8025         PR target/70110
8026         * config/i386/i386.c (scalar_chain::make_vector_copies,
8027         scalar_chain::convert_reg): Call end_sequence in between
8028         get_insns and emit_conversion_insns rather than after both
8029         calls.
8031 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
8033         PR target/70064
8034         * config/i386/i386.h (machine_function): Add
8035         pc_thunk_call_expanded flag.
8036         (ix86_pc_thunk_call_expanded): New define.
8037         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
8038         (*set_got): Rename insn pattern from set_got.
8039         (*set_got_labelled): Rename inst pattern from set_got_labelled.
8040         * config/i386/i386.c (ix86_compute_frame_layout): Use
8041         ix86_pc_thunk_call_expanded to prevent red-zone.
8043 2016-03-07  Martin Jambor  <mjambor@suse.cz>
8045         * hsa.h (hsa_get_ctor_statements): Declare.
8046         (hsa_get_dtor_statements): Likewise.
8047         (hsa_get_kernel_dispatch_type): Likewise.
8048         * hsa.c (hsa_get_ctor_statements): New function.
8049         (hsa_get_dtor_statements): Likewise.
8050         (hsa_get_kernel_dispatch_type): Likewise.
8051         * hsa-brig.c (hsa_cdtor_statements): Removed.
8052         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
8053         hsa_get_dtor_statements.
8054         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
8055         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
8057 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
8059         * config/arm/arm-cores.def (cortex-r8): New.
8060         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
8061         * config/arm/arm-tune.md: Likewise.
8062         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
8064 2016-03-07  Martin Sebor  <msebor@redhat.com>
8066         PR rtl-optimization/19705
8067         * doc/invoke.texi (Options That Control Optimization): Clarify
8068         -fno-branch-count-reg.
8070 2016-02-26  Richard Biener  <rguenther@suse.de>
8071             Jeff Law  <law@redhat.com>
8073         PR tree-optimization/69740
8074         * cfghooks.c (remove_edge): Request loop fixups if we delete
8075         an edge that might turn an irreducible loop into a natural
8076         loop.
8077         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
8078         Move after definition of loops_state_clear.
8080 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
8082         PR rtl-optimization/69052
8083         * rtlanal.c (commutative_operand_precedence): Set higher precedence
8084         to CONST_WIDE_INT.
8086 2016-03-07  Tom de Vries  <tom@codesourcery.com>
8088         PR tree-optimization/70116
8089         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
8090         is_tm_ending stmts and ubsan/asan internal functions.
8091         (find_duplicate): Use it.  Don't test is_tm_ending here.
8093 2016-03-07  Richard Biener  <rguenther@suse.de>
8095         PR tree-optimization/70115
8096         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
8097         (propagate_constants_for_unrolling): Use replace_uses_by.
8099 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
8101         PR middle-end/69916
8102         * omp-low.c (struct oacc_loop): Add ifns.
8103         (new_oacc_loop_raw): Initialize it.
8104         (finish_oacc_loop): Clear mask & flags if no ifns.
8105         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
8106         (oacc_loop_xform_loop): Add ifns arg & adjust.
8107         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
8109 2016-03-07  Richard Henderson  <rth@redhat.com>
8111         PR rtl-opt/70061
8112         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
8113         (insert_value_copy_on_edge): Likewise.
8115 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8117         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
8119 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8121         PR target/62281
8122         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
8124 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
8126         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
8128 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
8130         Fix sseimul type attribute.
8131         * config/i386/znver1.md
8132         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
8133         znver1_sseimul_avx256_load) : Fix the type attribute.
8134         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
8135         pipe usage and latency.
8137 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
8139         PR c++/70084
8140         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
8141         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
8142         to the right type.
8144 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
8146         PR c/69973
8147         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
8149         PR rtl-optimization/69941
8150         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
8151         the reg share its mode.
8153 2016-03-04  Jeff Law  <law@redhat.com>
8155         PR tree-optimization/69196
8156         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8157         If the both SSA_NAMEs are anonymous, then consider them unassociated
8158         and include the PHI in the statement count.
8160 2016-03-05  Tom de Vries  <tom@codesourcery.com>
8162         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
8163         construct in oacc routine.  Check for oacc region in oacc routine.
8165 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
8167         PR target/70062
8168         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
8169         2016-02-22 changes, instead don't recurse if RECUR is already true.
8170         Don't change *dynamic_check if RECUR.  Adjust recursive caller
8171         to pass true to the new argument.
8172         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
8174         PR target/70059
8175         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
8176         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
8177         fixes.
8178         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
8180 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
8182         PR rtl-optimization/57676
8183         * lra-assigns.c (lra_assign): Guard test for maximum iterations
8184         with flag_checking.
8186 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
8188         * tree-vect-patterns.c (search_type_for_mask): Handle
8189         comparison of booleans.
8191 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
8193         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
8194         Fix @xref usage.
8196         PR debug/69947
8197         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
8198         all other ops that have dw_val_class_die_ref operands,
8199         and DW_OP_GNU_entry_value.
8201 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8203         PR rtl-optimization/69904
8204         * config/arm/arm.c (arm_cannot_copy_insn_p):
8205         Return true for load-exclusive instructions.
8207 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
8209         PR target/70021
8210         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
8211         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
8212         the pattern no matter if it is used just by non-pattern, pattern
8213         or mix thereof.
8214         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
8215         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
8216         oprnd1 def_stmt is in pattern, don't look through it.
8218 2016-03-03  Marek Polacek  <polacek@redhat.com>
8220         PR middle-end/70050
8221         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
8223 2016-03-03  Martin Liska  <mliska@suse.cz>
8225         PR tree-optimization/70043
8226         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
8227         previous statement if we see a debug statement.
8229 2016-03-03  Richard Biener  <rguenther@suse.de>
8231         PR tree-optimization/55936
8232         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
8233         parameter and guard unsafe equivalence use.
8234         (vrp_evaluate_conditional_warnv_with_ops): Always use
8235         safe equivalences but not via the quadratic compare_names
8236         helper.
8238 2016-03-03  Michael Collison  <michael.collison@linaro.org>
8240         PR target/70014
8241         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
8242         for operand 1 to s_register_operand. Change predicate for operand
8243         2 to arm_not_immediate_operand.
8245 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
8247         * doc/tm.texi: Regenerated.
8249 2016-03-02  Richard Henderson  <rth@redhat.com>
8251         PR rtl-opt/67145
8252         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
8253         simplification when all args are positive non-fixed registers.
8255 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8257         * target.def (lra_p): Specify that new ports should use LRA.
8259 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
8261         PR libgomp/69555
8262         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
8263         gimplify_type_sizes the type they refer to.
8264         (omp_notice_variable): Handle reference vars to VLAs.
8265         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
8266         reference to VLA decls in the second pass instead of first pass.
8268 2016-03-02  Tom de Vries  <tom@codesourcery.com>
8270         PR tree-optimization/68659
8271         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
8272         new_expr == NULL_TREE.
8273         (get_new_name): Handle ADDR_EXPR.
8275 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
8277         PR rtl-optimization/69052
8278         * loop-invariant.c (canonicalize_address): New function.
8279         (inv_can_prop_to_addr_use): Check validity of address expression
8280         which is canonicalized by above function.
8282 2016-03-02  Alan Modra  <amodra@gmail.com>
8284         PR ipa/69990
8285         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
8286         larger alignment.
8288 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
8290         PR target/70028
8291         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
8292         (*movhi_internal): Put mask moves from and to memory separately
8293         from moves from/to GPRs.
8295 2016-03-02  Richard Biener  <rguenther@suse.de>
8297         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
8298         GENERIC expressions in GIMPLE.
8300 2016-03-02  Richard Biener  <rguenther@suse.de>
8302         * config/i386/i386.c (type_natural_mode): Fix typo.
8304 2016-03-02  Nick Clifton  <nickc@redhat.com>
8306         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
8308 2016-03-02  Richard Biener  <rguenther@suse.de>
8309             Uros Bizjak  <ubizjak@gmail.com>
8311         PR target/67278
8312         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
8314 2016-03-02  Richard Biener  <rguenther@suse.de>
8316         PR middle-end/67278
8317         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
8319 2016-03-02  Marek Polacek  <polacek@redhat.com>
8321         PR c/67854
8322         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
8323         "is promoted to" warning.
8325 2016-03-01  DJ Delorie  <dj@redhat.com>
8327         * config.gcc: Deprecate mep-*.
8329 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
8331         PR middle-end/70025
8332         * lra-constraints.c (regno_val_use_in): New.
8333         (match_reload): Use it instead of regno_use_in.
8335 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
8337         PR rtl-optimization/70007
8338         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
8339         references present in REG_EQUAL notes attached to non-SET patterns.
8341 2016-03-01  Jeff Law  <law@redhat.com>
8343         PR tree-optimization/69196
8344         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8345         Appropriately clamp the number of statements to copy when the
8346         thread path does not traverse a loop backedge.
8348         PR tree-optimization/69196
8349         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8350         Do count some PHIs in the thread path against the insn count.  Decrease
8351         final statement count by one as the control statement in the last
8352         block will get removed.  Remove special cased code for handling PHIs
8353         in the last block.
8355 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
8357         PR target/70027
8358         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
8359         asm dialect alternatives to explicit GOTPCREL calls.
8361 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
8363         PR ada/70017
8364         * ira.c (do_reload): Issue warning for generic stack checking here...
8365         * reload1.c (reload): ...instead of here and streamline it.
8367 2016-03-01  Nick Clifton  <nickc@redhat.com>
8369         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
8371 2016-03-01  Richard Biener  <rguenther@suse.de>
8373         PR tree-optimization/69983
8374         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
8375         types and fall back to operand_equal_p.
8377 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8379         Revert
8380         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8382         * config/s390/constraints.md ("jm8"): New constraint.
8383         * config/s390/predicates.md ("const_int_8bitset_operand"): New
8384         predicate.
8385         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
8386         into ...
8387         ("*setmem_long<setmem_and>"): New pattern.
8388         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
8389         into ...
8390         ("*setmem_long_31z<setmem_and>"): New pattern.
8391         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
8392         New substitution rules with the required attributes.
8395 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8397         Revert
8398         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8400         * gensupport.c (process_substs_on_one_elem): Split loop to
8401         complete mark_operands_used_in_match_dup on all expressions in the
8402         vector first.
8403         (adjust_operands_numbers): Inline into process_substs_on_one_elem
8404         and remove function.
8406 2016-03-01  Richard Biener  <rguenther@suse.de>
8408         PR middle-end/70022
8409         * fold-const.c (fold_indirect_ref_1): Fix range checking for
8410         vector BIT_FIELD_REF extract.
8412 2016-03-01  Richard Biener  <rguenther@suse.de>
8414         PR tree-optimization/69994
8415         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
8417 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
8419         PR tree-optimization/69956
8420         * tree-vect-stmts.c (supportable_widening_operation): Support
8421         multi-step conversion of boolean vectors.
8422         (supportable_narrowing_operation): Likewise.
8424 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8426         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
8427         anymore.
8429 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8431         * config/s390/subst.md (DSI_VI): New mode iterator.
8432         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
8433         * config/s390/vector.md ("vec_set<mode>"): Move expander before
8434         the insn definition.
8435         ("*vec_set<mode>"): Change predicate and add alternative to
8436         support only either register or const_int operands as element
8437         selector.
8438         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
8439         operands.
8440         ("vec_extract<mode>"): New expander.
8441         ("*vec_extract<mode>"): New insn definition supporting reg and
8442         const_int element selectors.
8443         ("*vec_extract<mode>_plus"): New insn definition supporting
8444         reg+const_int element selectors.
8445         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
8446         following expander+insn definition.
8447         ("<vec_shifts_name><mode>3"): New expander.
8448         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
8450 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8452         * config/s390/s390.md ("*tabort_1"): Change predicate to
8453         nonmemory_operand.  Add a second alternative to cover
8454         register as well as const int operands.
8455         ("*tabort_1_plus"): New pattern definition.
8457 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8459         * config/s390/s390.md ("*ashrdi3_cc_31")
8460         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
8461         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
8462         Merge insn definitions into ...
8463         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
8464         New pattern definition.
8465         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
8466         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
8467         ("*ashr<mode>3_and"): Merge insn definitions into ...
8468         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
8469         New pattern definition.
8470         * config/s390/subst.md ("addr_style_op_cc_subst")
8471         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
8472         substitutions patterns plus attributes.
8473         Add ashiftrt to SUBST iterator.
8475 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8477         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
8478         op2 to nonmemory_operand.
8479         ("*<shift>di3_31", "*<shift>di3_31_and"):
8480         Merge into single pattern definition ...
8481         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
8482         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
8483         pattern definition ...
8484         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
8485         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
8486         iterator.
8488 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8490         * config/s390/predicates.md (const_int_6bitset_operand): New
8491         predicate.
8492         * config/s390/s390.md: Include subst.md.
8493         ("rotl<mode>3"): New expander.
8494         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
8495         ...
8496         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
8497         * config/s390/subst.md: New file.
8499 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8501         * config/s390/s390.md ("op_type", "atype", "length" attributes):
8502         Remove RRR type.  It doesn't really exist.
8503         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
8504         attributes.
8505         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
8506         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
8507         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
8508         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
8509         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
8510         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
8511         `enabled' attribute.
8513 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8515         * gensupport.c (process_substs_on_one_elem): Split loop to
8516         complete mark_operands_used_in_match_dup on all expressions in the
8517         vector first.
8518         (adjust_operands_numbers): Inline into process_substs_on_one_elem
8519         and remove function.
8521 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
8523         PR target/69706
8524         * config/sparc/sparc.c (NWORDS_UP): Rename to...
8525         (CEIL_NWORDS): ...this.  Use CEIL macro.
8526         (compute_fp_layout): Adjust to above renaming.
8527         (function_arg_union_value): Likewise.
8528         (sparc_arg_partial_bytes): Likewise.
8529         (sparc_function_arg_advance): Likewise.
8531 2016-02-29  Jeff Law  <law@redhat.com>
8533         PR tree-optimization/70005
8534         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
8535         where an object with a boolean range is compared against a value
8536         outside [0..1].
8538         PR tree-optimization/69999
8539         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
8540         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
8541         loop cleanups.
8543 2016-02-29  Richard Biener  <rguenther@suse.de>
8545         PR tree-optimization/69994
8546         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
8547         (get_unary_op): Look through nop conversions.
8548         (ops_equal_values_p): New function, look for equality diregarding
8549         nop conversions.
8550         (eliminate_plus_minus_pair): Use ops_equal_values_p
8551         (repropagate_negates): Do not use get_unary_op here.
8553 2016-02-29  Martin Liska  <mliska@suse.cz>
8555         * system.h: Poison ENABLE_CHECKING macro.
8557 2016-02-29  Martin Liska  <mliska@suse.cz>
8559         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
8560         is presented in dump flags.
8561         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8562         (hsa_regalloc): Likewise.
8564 2016-02-19  Richard Biener  <rguenther@suse.de>
8566         PR tree-optimization/69980
8567         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
8568         permutation of those we need to keep.
8570 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
8572         PR target/69706
8573         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
8574         (NWORDS_UP): ...this
8575         (init_cumulative_args): Minor tweaks.
8576         (sparc_promote_function_mode): Likewise.
8577         (scan_record_type): Delete.
8578         (traverse_record_type): New function template.
8579         (classify_data_t): New structure type.
8580         (classify_registers): New inline function.
8581         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
8582         exhausted.  Instantiate traverse_record_type on classify_registers and
8583         deal with the case of a structure passed in slot #15 with no FP field
8584         in the first word.
8585         (assign_data_t): New structure type.
8586         (compute_int_layout): New static function.
8587         (compute_fp_layout): Likewise.
8588         (count_registers): New inline function.
8589         (assign_int_registers): New static function.
8590         (assign_fp_registers): Likewise.
8591         (assign_registers): New inline function.
8592         (function_arg_record_value_1): Delete.
8593         (function_arg_record_value_2): Likewise.
8594         (function_arg_record_value_3): Likewise.
8595         (function_arg_record_value): Adjust to above changes.  Instantiate
8596         traverse_record_type on count_registers to first count the number of
8597         registers to be used and then on assign_registers to assign them.
8598         (function_arg_union_value): Adjust to above renaming.
8599         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
8600         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
8601         case of a structure passed in slot #15
8602         (sparc_function_arg_advance): Likewise.
8603         (function_arg_padding): Minor tweak.
8605 2016-02-29  Richard Biener  <rguenther@suse.de>
8607         PR tree-optimization/69720
8608         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
8609         the adjustment_def path for possibly vectorized defs.
8610         (vect_create_epilog_for_reduction): Handle vectorized initial
8611         defs properly.
8613 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
8615         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
8617 2016-02-27  Jeff Law  <law@redhat.com>
8619         Revert
8620         2016-02-26  Richard Biener  <rguenther@suse.de>
8621                     Jeff Law  <law@redhat.com>
8623         PR tree-optimization/69740
8624         * cfghooks.c (remove_edge): Request loop fixups if we delete
8625         an edge that might turn an irreducible loop into a natural
8626         loop.
8628 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
8630         PR rtl-optimization/69896
8631         * tree-vect-generic.c (get_compute_type): Avoid single element
8632         vector types.
8634 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
8636         Rename the AArch64 tuning option and related functions to enable the
8637         Newton series for the reciprocal square root to reflect its
8638         approximative characteristic.
8640         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
8641         function to "aarch64_emit_approx_rsqrt".
8642         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
8643         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
8644         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
8645         (xgene1_tunings): Likewise.
8646         (use_rsqrt_p): Likewise.
8647         (aarch64_emit_swrsqrt): Use new function name.
8648         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
8649         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
8650         text explaining this option.
8651         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
8653 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
8655         PR target/69969
8656         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8657         complain about -mallow-movmisalign without -mvsx if
8658         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
8660 2016-02-26  Joel Sherrill  <joel@rtems.org>
8662         * config.gcc: Add x86_64-*-rtems*.
8663         * config/i386/rtems-64.h: New file.
8665 2016-02-26  Joel Sherrill  <joel@rtems.org>
8667         * config.gcc: Add aarch64-*-rtems*.
8668         * config/aarch64/rtems.h: New file.
8670 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
8672         PR target/69946
8673         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
8674         shift amount using %h.  Add comment.
8676 2016-02-26  Richard Biener  <rguenther@suse.de>
8677             Jeff Law  <law@redhat.com>
8679         PR tree-optimization/69740
8680         * cfghooks.c (remove_edge): Request loop fixups if we delete
8681         an edge that might turn an irreducible loop into a natural
8682         loop.
8684 2016-02-26  Martin Jambor  <mjambor@suse.cz>
8686         PR middle-end/69920
8687         * tree-sra.c (sra_modify_assign): Do not remove loads of
8688         uninitialized aggregates to SSA_NAMEs.
8690 2016-02-26  Richard Henderson  <rth@redhat.com>
8692         PR target/69709
8693         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
8694         pseudo in case the target rtx matches the source of the left
8695         shift.
8697 2016-02-26  Martin Jambor  <mjambor@suse.cz>
8699         PR hsa/69568
8700         * hsa.h (hsa_type_packed_p): Declare.
8701         * hsa.c (hsa_type_packed_p): New function.
8702         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
8703         loads.
8704         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
8705         * hsa-brig.c (emit_basic_insn): Likewise.
8707 2016-02-26  Martin Jambor  <mjambor@suse.cz>
8709         pr hsa/69674
8710         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
8711         pointers.
8712         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
8714 2016-02-26  Martin Jambor  <mjambor@suse.cz>
8716         * hsa.h (is_a_helper): New overload for hsa_op_immed for
8717         hsa_op_with_type operands.
8718         (hsa_unsigned_type_for_type): Declare.
8719         * hsa.c (hsa_unsigned_type_for_type): New function.
8720         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
8721         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
8722         the finalizer.  Do not emit extra move.
8724 2016-02-26  Martin Jambor  <mjambor@suse.cz>
8726         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
8727         atomic operations in private segment.
8729 2016-02-26  Martin Jambor  <mjambor@suse.cz>
8731         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
8732         statements to wi->info.  Also disallow omp simd constructs.
8733         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
8734         for not gridifying.  Dump special string for omp_for.
8736 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8738         PR target/69245
8739         * config/aarch64/aarch64.c (aarch64_set_current_function):
8740         Save/restore target globals when switching to
8741         target_option_default_node.
8743 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8745         PR target/69613
8746         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
8747         Return 0 if !SHIFT_COUNT_TRUNCATED.
8749 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
8750             Eric Botcazou  <ebotcazou@adacore.com>
8752         PR rtl-optimization/69891
8753         * dse.c (scan_insn): If we can't figure out memset arguments
8754         or they are non-constant, call clear_rhs_from_active_local_stores.
8756 2016-02-26  Martin Liska  <mliska@suse.cz>
8758         * doc/extend.texi: Mention clog10, clog10f an clog10l
8759         in Builtins section.
8761 2016-02-26  Martin Liska  <mliska@suse.cz>
8763         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
8764         CHECKING_P.
8765         (resolve_args_picking_1): Likewise.
8766         * dwarf2out.h (struct GTY): Likewise.
8768 2016-02-26  Martin Liska  <mliska@suse.cz>
8770         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
8771         with flag_checking.
8772         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8774 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
8775             Martin Liska  <mliska@suse.cz>
8777         * doc/install.texi: Mention --enable-valgrind-annotations.
8779 2016-02-26  Richard Biener  <rguenther@suse.de>
8781         PR tree-optimization/69551
8782         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
8783         looking through aliases adjust DECL_PT_UID to refer to the
8784         ultimate alias target.
8786 2016-02-25  Martin Liska  <mliska@suse.cz>
8788         PR middle-end/69919
8789         * alloc-pool.c (after_memory_report): New variable.
8790         * alloc-pool.h (base_pool_allocator ::release): Do not use
8791         the infrastructure if after_memory_report.
8792         * toplev.c (toplev::main): Mark after memory report.
8794 2016-02-25  Richard Biener  <rguenther@suse.de>
8796         PR tree-optimization/48795
8797         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
8799 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
8801         PR driver/68463
8802         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
8803         offloading is enabled and -fopenacc or -fopenmp is specified.
8804         (CRTOFFLOADEND): Likewise.
8805         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
8806         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
8807         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
8808         (offload_objects_file_name): New static var.
8809         (tool_cleanup): Remove offload_objects_file_name file.
8810         (find_offloadbeginend): Replace with ...
8811         (find_crtoffloadtable): ... this.
8812         (run_gcc): Remove offload_argc and offload_argv.
8813         Get offload_objects_file_name from -foffload-objects=... option.
8814         Read names of object files with offload from this file, pass them to
8815         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
8816         don't pass offloadbegin and offloadend to the linker.  Don't pass
8817         offload non-LTO files to the linker, because now they're not claimed.
8819 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
8821         PR ipa/69630
8822         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
8823         on builtin_unreachable.
8825 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
8827         PR rtl-optimization/69896
8828         * regcprop.c: Include cfgrtl.h.
8829         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
8830         than remembered mode, either delete it (if noop_move_p), or
8831         treat like copy_p but not noop_p instruction.
8833 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
8835         PR debug/69705
8836         * dwarf2out.c (gen_variable_die): Work around buggy LTO
8837         - allow NULL decl for Fortran DW_TAG_common_block variables.
8839 2016-02-24  Jason Merrill  <jason@redhat.com>
8841         * common.opt (flifetime-dse): Add -flifetime-dse=1.
8843 2016-02-24  Richard Biener  <rguenther@suse.de>
8844             Jakub Jelinek  <jakub@redhat.com>
8846         PR middle-end/69760
8847         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
8848         conditionally executed ops to well-defined overflow behavior.
8850 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
8852         PR middle-end/69915
8853         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
8854         elements.
8856 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8858         PR rtl-optimization/69886
8859         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
8860         argument.  Use it when checking validity of set instructions.
8861         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
8862         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
8863         callsite.
8864         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
8865         * store-motion.c (find_moveable_store): Update
8866         can_assign_to_reg_without_clobbers_p callsite.
8868 2016-02-24  Richard Biener  <rguenther@suse.de>
8870         PR middle-end/68963
8871         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
8872         bogus check.
8873         (record_nonwrapping_iv): Do not fall back to the low/high bound
8874         for non-constant IV bases if the stmt is not always executed.
8876 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8878         * config/arm/arm-cores.def (cortex-a32): New entry.
8879         * config/arm/arm-tables.opt: Regenerate.
8880         * config/arm/arm-tune.md: Regenerate.
8881         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
8882         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
8883         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
8884         for -mcpu and -mtune.
8886 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8888         PR target/69875
8889         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
8890         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
8891         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
8892         (atomic_loaddi_1): Delete.
8893         (atomic_loaddi): Rewrite expander using the above changes.
8895 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
8897         PR c/69918
8898         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
8899         2 to 3.
8901 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
8902             Richard Biener  <rguenth@suse.de>
8904         PR middle-end/69909
8905         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
8906         set_mem_attributes if tem is SSA_NAME which got expanded
8907         as a MEM.
8909 2016-02-24  Richard Biener  <rguenther@suse.de>
8911         PR tree-optimization/69907
8912         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
8913         end of permutations for BB vectorization.
8915 2016-02-24  Christian Bruel  <christian.bruel@st.com>
8917         * config/arm/arm-c.c (arm_option_override): Initialize
8918         target_option_current_node.
8919         * config/arm/arm.c (arm_pragma_target_parse): Replace
8920         build_target_option_node call by target_option_current_node.
8921         Set target_option_current_node.
8922         Fix comments.
8924 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
8926         PR target/69810
8927         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
8928         define_insn_and_split to define_insn.
8929         (zero_extendqi<mode>2_dot2): Same.
8930         (extendqi<mode>2_dot): Same.
8931         (extendqi<mode>2_dot2): Same.
8933 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
8935         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
8936         and add bypass for AES{D,E} and AESMC pairs.
8937         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
8938         and AESMC pairs.
8940 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
8942         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
8943         series for reciprocal square root in Exynos M1.
8945 2016-02-23  Martin Sebor  <msebor@redhat.com>
8947         PR c/69759
8948         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
8949         __builtin_alloca_with_align.
8951 2016-02-23  Richard Henderson  <rth@redhat.com>
8953         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
8954         (ix86_register_pragmas): Remove __seg_tls.
8955         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
8956         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
8957         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
8958         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
8959         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
8960         * doc/extend.texi (__seg_tls): Remove item.
8962 2016-02-23  Richard Biener  <rguenther@suse.de>
8964         * alloc-pool.h (struct allocation_object): Make id member
8965         conditional on CHECKING_P again.
8966         (get_instance): Adjust.
8967         (base_pool_allocator): Likewise.
8969 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
8971         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
8972         (parallelize_loops): In OpenACC kernels mode, set n_threads to
8973         zero.
8974         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
8975         flag_openacc.
8976         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
8978 2016-02-23  Richard Biener  <rguenther@suse.de>
8980         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
8981         * bitmap.h (struct bitmap_usage): Likewise.
8982         (bitmap_move): Declare.
8983         * bitmap.c (register_overhead): Take size_t argument.
8984         (bitmap_move): New function.
8985         * df-problems.c (df_rd_transfer_function): Use bitmap_move
8986         to properly account overhead.
8987         * tree.c (free_node): Use tree_size.
8989 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
8991         PR c++/69902
8992         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
8993         when inverting comparison.
8995         PR c/69900
8996         * common.opt (Wunreachable-code): Add Warning flag.
8998 2016-02-23  Mark Wielaard  <mjw@redhat.com>
8999             Jakub Jelinek  <jakub@redhat.com>
9001         PR c/69911
9002         * cgraphunit.c (check_global_declaration): Check main_input_filename
9003         and DECL_SOURCE_FILE are not NULL.
9005 2016-02-23  Martin Jambor  <mjambor@suse.cz>
9007         PR tree-optimization/69666
9008         * tree-sra.c (sra_modify_assign): Do not attempt to create
9009         default_def replacements for unscalarizable regions.
9011 2016-02-20  Mark Wielaard  <mjw@redhat.com>
9013         PR c/28901
9014         * cgraphunit.c (check_global_declaration): Check level of
9015         warn_unused_const_variable and main_input_filename.
9016         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
9017         (-Wunused-variable): For C implies -Wunused-const-variable=1.
9018         (-Wunused-const-variable): Explain levels 1 and 2.
9020 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
9022         PR target/69888
9023         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
9024         identical arguments.  Formatting and spelling fixes.
9026         PR target/69885
9027         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
9028         be specified.
9030         PR target/69894
9031         PR target/69895
9032         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
9033         and m68k-devices.def.
9034         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
9035         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
9037 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
9039         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
9040         and HImode registers.
9042 2016-02-22  Richard Biener  <rguenther@suse.de>
9044         PR tree-optimization/69882
9045         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
9046         preserve permutations present because of gaps.
9047         (vect_supported_load_permutation_p): Always continue checking
9048         permutations after vect_attempt_slp_rearrange_stmts.
9050 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
9052         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
9053         min_profitable_estimate, rather than min_profitable_iters.
9055 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
9057         PR target/69885
9058         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
9059         SImode for last match_operand.
9061 2016-02-22  Martin Liska  <mliska@suse.cz>
9063         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
9064         return bitsize - 1 as the return value.
9066 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
9068         PR target/69806
9069         PR target/54089
9070         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
9071         Handle negative shift counts.
9072         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
9073         force_reg on the shift constant.
9074         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
9075         (lshrsi3_d): Handle negative shift counts.
9077 2016-02-22  Richard Biener  <rguenther@suse.de>
9078             Tom de Vries  <tom@codesourcery.com>
9080         * graph.c: Include dumpfile.h.
9081         (print_graph_cfg): Split into three overloads.
9082         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
9084 2016-02-22  Tom de Vries  <tom@codesourcery.com>
9086         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
9087         dump-fn.
9089 2016-02-22  Richard Biener  <rguenther@suse.de>
9091         PR ipa/37448
9092         * ipa-inline-transform.c (inline_call): When not updating
9093         overall summaries adjust self size by the growth estimate.
9094         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
9095         hash-set, do not update overall summaries here.  Renamed from ...
9096         (inline_to_all_callers): ... this which is now wrapping the
9097         above and performing delayed overall summary update.
9098         (early_inline_small_functions): Delay updating of the overall
9099         summary.
9101 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
9103         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
9104         variable.
9106 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
9108         PR driver/69805
9109         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
9110         :%* in %:gt() argument.
9111         (greater_than_spec_func): Adjust for expecting only numbers,
9112         if there are more than two numbers, compare the last two.
9114 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
9116         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
9117         -Wnarrowing with -std.
9119 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
9121         PR c++/69851
9122         * expr.c (store_field): Don't use bit-field path if exp is
9123         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
9124         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
9125         and the assignment can be performed by bitwise copy.  Formatting
9126         fix.
9128         PR middle-end/69838
9129         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
9130         call copy_reg_eh_region_note_forward on before and/or after sequences
9131         and remove note from insn if it no longer can throw.
9133         PR target/69820
9134         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
9135         if TARGET_AVX512BW.
9137 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9139         * config/s390/vector.md: Add missing commutative operand markers
9140         to the patterns which qualify for one.
9141         * config/s390/vx-builtins.md: Likewise.
9143 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9145         * config/s390/vector.md (VI, VI_QHS): Add single element vector
9146         types to mode iterators.
9147         (vec_double): ... and mode attribute.
9148         * config/s390/vx-builtins.md (non_vec_int): Likewise.
9150 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9152         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
9153         Change the predicate of op2 from nonimmediate to general and let
9154         reload fix it if necessary.
9156 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9158         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
9160 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9162         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
9163         mode.
9165 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9167         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
9168         * config/s390/s390.c (s390_expand_vec_movstr): New function.
9169         * config/s390/s390.md ("movstr<P:mode>"): Call
9170         s390_expand_vec_movstr.
9172 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9174         * config/s390/s390.md: Add missing output modifier for operand 1
9175         to print it as address properly.
9177 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9179         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
9180         * config/s390/2964.md: New file.
9181         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
9182         of insn grouping attributes depending on the CPU level.
9183         (s390_get_unit_mask): New function.
9184         (s390_sched_score): Remove the OOO from the scheduling macros.
9185         Add loop to calculate a score for the instruction mix.
9186         (s390_sched_reorder): Likewise plus improve debug output.
9187         (s390_sched_variable_issue): Rename macros as above.  Calculate
9188         the unit distances after actually scheduling an insn.  Improve
9189         debug output.
9190         (s390_sched_init): Clear last_scheduled_unit_distance array.
9191         * config/s390/s390.md: Include 2964.md.
9193 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
9195         PR target/69671
9196         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
9197         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
9198         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
9199         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
9200         *avx512f_<code>v8div16qi2_mask_1): New insns.
9202 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
9204         PR target/68404
9205         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
9206         2016-02-09 change.
9208         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
9209         earlyclobber from target.  Use wF constraint for fused memory
9210         address.
9211         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
9213 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
9214             Martin Liska  <mliska@suse.cz>
9216         PR sanitizer/69863
9217         * cfgexpand.c (asan_sanitize_stack_p): New function.
9218         (partition_stack_vars): Use the function.
9219         (expand_stack_vars): Likewise.
9220         (defer_stack_allocation): Likewise.
9221         (expand_used_vars): Likewise.
9223 2016-02-18  Richard Biener  <rguenther@suse.de>
9225         PR middle-end/69553
9226         * fold-const.c (operand_equal_p): Properly compare offsets for
9227         IMAGPART_EXPR and ARRAY_REF.
9229 2016-02-18  Nick Clifton  <nickc@redhat.com>
9231         PR target/62254
9232         PR target/69610
9233         * config/arm/arm.c (arm_option_override_internal): Disable
9234         interworking if the target does not support thumb instructions.
9235         (arm_reload_in_hi): Handle the case where a register to register
9236         move needs reloading because there is no simple pattern to handle
9237         it.
9238         (arm_reload_out_hi): Likewise.
9240 2016-02-18  Richard Biener  <rguenther@suse.de>
9242         PR middle-end/69854
9243         * match.pd: Don't use fold_binary or fold_unary for folding
9244         constants.
9246 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
9248         PR c++/69850
9249         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
9250         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
9251         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
9252         warn on gimple_no_warning_p statements.
9254 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
9256         * doc/extend.texi (C++ Attributes): Correct description of
9257         warn_unused type attribute.
9259 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9261         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
9262         correct instruction.
9264 2016-02-17  Richard Biener  <rguenther@suse.de>
9266         PR rtl-optimization/69609
9267         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
9268         (find_traces_1_round): When ending a trace update cached priority
9269         of successors.
9270         (bb_to_key): Use cached priority when available.
9271         (copy_bb): Initialize cached priority.
9272         (reorder_basic_blocks_software_trace_cache): Likewise.
9274 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9276         PR target/69161
9277         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
9278         New predicate.
9279         (aarch64_comparison_operator): Break overly long line into two.
9280         (aarch64_comparison_operation): Likewise.
9281         * config/aarch64/aarch64.md (cstorecc4): Use
9282         aarch64_comparison_operator_mode instead of
9283         aarch64_comparison_operator.
9284         (cstore<mode>4): Likewise.
9285         (aarch64_cstore<mode>): Likewise.
9286         (*cstoresi_insn_uxtw): Likewise.
9287         (cstore<mode>_neg): Likewise.
9288         (*cstoresi_neg_uxtw): Likewise.
9290 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9292         PR target/69161
9293         * config/arm/predicates.md (arm_comparison_operator_mode):
9294         New predicate.
9295         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
9296         instead of arm_comparison_operator.
9297         (*mov_negscc): Likewise.
9298         (*mov_notscc): Likewise.
9299         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
9300         (*thumb2_mov_negscc): Likewise.
9301         (*thumb2_mov_negscc_strict_it): Likewise.
9302         (*thumb2_mov_notscc): Likewise.
9303         (*thumb2_mov_notscc_strict_it): Likewise.
9305 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
9307         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
9308         Add missing return.
9310 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
9312         * config/visium/visium.c (machine_libfunc_index): New enum.
9313         (machine_libfuncs): New structure.
9314         (visium_libfuncs): New static variable.
9315         (TARGET_INIT_LIBFUNCS): Define to...
9316         (visium_init_libfuncs): ...this.  New function.
9317         (expand_block_move_4): Use the appropriate libfunc.
9318         (expand_block_move_2): Likewise.
9319         (expand_block_move_1): Likewise.
9320         (expand_block_set_4): Likewise.
9321         (expand_block_set_2): Likewise.
9322         (expand_block_set_1): Likewise.
9323         (visium_trampoline_init): Likewise.
9325 2016-02-17  Nick Clifton  <nickc@redhat.com>
9327         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
9328         TI's devices.csv file as of March 2016.
9330 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
9332         PR Target/48344
9333         * opts-global.c (handle_common_deferred_options): Introduce and
9334         initialize two global variables to remember command-line options
9335         specifying a stack-limiting register.
9336         * opts.h: Add extern declarations of the two new global variables.
9337         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
9338         variable based on the values of the two new global variables.
9340 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
9342         PR c/69835
9343         * common.opt (Wnonnull-compare): New warning.
9344         * doc/invoke.texi (-Wnonnull): Remove text about comparison
9345         of arguments against NULL.
9346         (-Wnonnull-compare): Document.
9347         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
9348         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
9349         * passes.def (pass_warn_nonnull_compare): Add.
9350         * gimple-ssa-nonnull-compare.c: New file.
9352 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
9354         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
9355         AARCH64_EXTRA_TUNE_RECIP_SQRT.
9357 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
9359         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
9360         reciprocal sqrt for -mlow-precision-recip-sqrt.
9362 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
9363             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9365         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
9366         always use lane loads to construct non-constant vectors.
9368 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
9370         * config/aarch64/aarch64.md
9371         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
9372         constraints for operand 3.
9373         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
9375 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
9376             Richard Biener  <rguenther@suse.de>
9378         PR tree-optimization/69820
9379         * tree-vect-patterns.c (type_conversion_p): Return false if
9380         *orig_type is unsigned single precision or boolean.
9381         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
9382         Formatting fix.
9384 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
9386         PR rtl-optimization/69764
9387         PR rtl-optimization/69771
9388         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
9389         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
9391 2016-02-16  Richard Biener  <rguenther@suse.de>
9393         PR tree-optimization/69776
9394         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
9395         sets from caller.
9396         (indirect_refs_may_alias_p): Likewise.
9397         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
9398         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
9399         according to tbaa_p.
9400         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
9401         (optimize_stmt): For redundant store discovery do not allow tbaa.
9403 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
9405         PR tree-optimization/69714
9406         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
9407         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
9409 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
9411         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
9412         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
9413         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
9414         * config/arc/arc.c (arc_init): Check FPU options.
9415         (get_arc_condition_code): Handle new CC_FPU* modes.
9416         (arc_select_cc_mode): Likewise.
9417         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
9418         register pair only. Allow access for ARCv2 accumulator.
9419         (gen_compare_reg): Whenever we have FPU support use FPU compare
9420         instructions.
9421         (arc_reorg): Don't generate brcc insns when FPU compare
9422         instructions are involved.
9423         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
9424         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
9425         floating point emulation.
9426         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
9427         (REVERSE_CONDITION): Add new CC_FPU* modes.
9428         (TARGET_FP_SP_BASE): Define.
9429         (TARGET_FP_DP_BASE): Likewise.
9430         (TARGET_FP_SP_FUSED): Likewise.
9431         (TARGET_FP_DP_FUSED): Likewise.
9432         (TARGET_FP_SP_CONV): Likewise.
9433         (TARGET_FP_DP_CONV): Likewise.
9434         (TARGET_FP_SP_SQRT): Likewise.
9435         (TARGET_FP_DP_SQRT): Likewise.
9436         (TARGET_FP_DP_AX): Likewise.
9437         * config/arc/arc.md (ARCV2_ACC): New constant.
9438         (type): New fpu type attribute.
9439         (SDF): Conditional iterator.
9440         (cstore<mode>, cbranch<mode>): Change expand condition.
9441         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
9442         handles FPU/FPX cases as well.
9443         * config/arc/arc.opt (mfpu): New option.
9444         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
9445         Renamed.
9446         (adddf3, muldf3, subdf3): Removed.
9447         * config/arc/predicates.md (proper_comparison_operator): Recognize
9448         CC_FPU* modes.
9449         * config/arc/fpu.md: New file.
9450         * doc/invoke.texi (ARC Options): Document mfpu option.
9452 2016-02-16  Richard Biener  <rguenther@suse.de>
9454         PR rtl-optimization/69291
9455         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
9456         noce_operand_ok check.
9458 2016-02-16  Tom de Vries  <tom@codesourcery.com>
9460         PR lto/67709
9461         * omp-low.c (simd_clone_create): Remove call to
9462         symtab->call_cgraph_insertion_hooks.
9464 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
9466         PR tree-optimization/69802
9467         * tree-ssa-reassoc.c (update_range_test): If op is
9468         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
9469         op == 1 test of precision 1 integral op, otherwise handle
9470         that case as op itself.  Fix up formatting.
9471         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
9472         up formatting.
9474 2016-02-16  Richard Biener  <rguenther@suse.de>
9476         PR tree-optimization/69586
9477         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
9478         types for conversion sources.
9480 2016-02-16  Richard Biener  <rguenther@suse.de>
9482         PR middle-end/69801
9483         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
9484         mask OEP_ADDRESS_OF.
9486 2016-02-16  Alan Modra  <amodra@gmail.com>
9488         PR target/68973
9489         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
9490         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
9491         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
9492         (p8_mtvsrwz): New.
9493         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
9494         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
9495         (p8_fmrgow_<mode>): Likewise.
9496         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
9497         changes.
9498         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
9499         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
9500         to use movdi_internal64.  Remove op0_di.
9501         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
9503 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
9505         Add support for the FCCMP insn types
9507         * config/aarch64/aarch64.md (fccmp): Change insn type.
9508         (fccmpe): Likewise.
9509         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
9510         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
9511         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
9512         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
9513         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
9514         * config/arm/types.md (fccmps): Add new insn type.
9515         (fccmpd): Likewise.
9517 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9519         * alias.c (get_alias_set): Fix a typo in comment.
9521 2016-02-15  Richard Biener  <rguenther@suse.de>
9523         PR tree-optimization/69595
9524         * match.pd: Complete range test simplification to true.
9526 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
9528         PR rtl-optimization/69648
9529         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
9530         pic_offset_table_rtx.
9532         PR rtl-optimization/69752
9533         * ira.c (update_equiv_regs): When looking for more than a single SET,
9534         also take other side effects into account.
9536 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
9538         * config/s390/s390.c (s390_function_profiler): Add a new sequence
9539         for z900+ CPUs in 31-bit mode.
9541 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
9543         * common/config/s390/s390-common.c (s390_supports_split_stack):
9544         New function.
9545         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
9546         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
9547         * config/s390/s390.c (struct machine_function): New field
9548         split_stack_varargs_pointer.
9549         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
9550         in s390_emit_prologue.
9551         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
9552         vararg pointer.
9553         (morestack_ref): New global.
9554         (SPLIT_STACK_AVAILABLE): New macro.
9555         (s390_expand_split_stack_prologue): New function.
9556         (s390_live_on_entry): New function.
9557         (s390_va_start): Use split-stack vararg pointer if appropriate.
9558         (s390_asm_file_end): Emit the split-stack note sections.
9559         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
9560         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
9561         (UNSPECV_SPLIT_STACK_CALL): New unspec.
9562         (UNSPECV_SPLIT_STACK_DATA): New unspec.
9563         (split_stack_prologue): New expand.
9564         (split_stack_space_check): New expand.
9565         (split_stack_data): New insn.
9566         (split_stack_call): New expand.
9567         (split_stack_call_*): New insn.
9568         (split_stack_cond_call): New expand.
9569         (split_stack_cond_call_*): New insn.
9571 2016-02-15  Richard Biener  <rguenther@suse.de>
9573         PR tree-optimization/69783
9574         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9575         Add trivially correct cases.
9577 2016-02-15  Tom de Vries  <tom@codesourcery.com>
9579         PR lto/69655
9580         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
9581         do_force_output.
9582         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
9584 2016-02-15  Richard Biener  <rguenther@suse.de>
9586         PR tree-optimization/69776
9587         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
9588         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
9589         indicate whether we can use TBAA to disambiguate against stores.
9590         Use alias-set zero if not.
9591         (visit_reference_op_store): Do not use TBAA when looking up
9592         redundant stores.
9593         * tree-ssa-pre.c (compute_avail): Use TBAA here.
9594         (eliminate_dom_walker::before_dom_children): But not when looking
9595         up redundant stores.
9597 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
9599         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
9601 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
9603         *  config/i386/znver1.md
9604         (znver1_pop, znver1_pop_mem,
9605         znver1_load_imov_double_store,
9606         znver1_load_imov_direct_store,
9607         znver1_load_imov_direct_load,
9608         znver1_load_imov_double_load): Add new.
9609         (znver1_insn, znver1_insn_load): Add icmov type.
9610         (znver1_sseavx_fma,
9611         znver1_sseavx_fma_load,
9612         znver1_avx256_fma,
9613         znver1_avx256_fma_load): Fix pipe usage.
9615 2016-02-14  Alan Modra  <amodra@gmail.com>
9617         PR target/68973
9618         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
9619         with an invalid hard reg, reload just the reg not the entire
9620         pre/post-inc/dec address expression.
9622 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
9624         PR target/67260
9625         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
9626         fixed R1_REG scratch reg.
9627         (sibcall_value_pcrel_fdpic): Likewise.
9629 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
9631         PR target/67636
9632         PR target/64345
9633         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
9635 2016-02-12  Walter Lee  <walt@tilera.com>
9637         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
9638         * config/tilegx/t-tilegx: Likewise.
9640 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
9642         PR other/69554
9643         * diagnostic-show-locus.c (struct line_span): New struct.
9644         (layout::get_first_line): Delete.
9645         (layout::get_last_line): Delete.
9646         (layout::get_num_line_spans): New member function.
9647         (layout::get_line_span): Likewise.
9648         (layout::print_heading_for_line_span_index_p): Likewise.
9649         (layout::get_expanded_location): Likewise.
9650         (layout::calculate_line_spans): Likewise.
9651         (layout::m_first_line): Delete.
9652         (layout::m_last_line): Delete.
9653         (layout::m_line_spans): New field.
9654         (layout::layout): Update comment.  Replace m_first_line and
9655         m_last_line with m_line_spans, replacing their initialization
9656         with a call to calculate_line_spans.
9657         (diagnostic_show_locus): When printing source lines and
9658         annotations, rather than looping over a single span
9659         of lines, instead loop over each line_span within
9660         the layout, with an inner loop over the lines within them.
9661         Call the context's start_span callback when changing line spans.
9662         * diagnostic.c (diagnostic_initialize): Initialize start_span.
9663         (diagnostic_build_prefix): Break out the building of the location
9664         part of the string into...
9665         (diagnostic_get_location_text): ...this new function, rewriting
9666         it from nested ternary expressions to a sequence of "if"
9667         statements.
9668         (default_diagnostic_start_span_fn): New function.
9669         * diagnostic.h (diagnostic_start_span_fn): New typedef.
9670         (diagnostic_context::start_span): New field.
9671         (default_diagnostic_start_span_fn): New prototype.
9673 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
9675         PR driver/69779
9676         * gcc.c (driver::finalize): Fix cleanup of "specs".
9678 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
9680         PR driver/69265
9681         PR driver/69453
9682         * gcc.c (driver::driver): Initialize m_option_suggestions.
9683         (driver::~driver): Clean up m_option_suggestions.
9684         (suggest_option): Convert to...
9685         (driver::suggest_option): ...this, and split out into
9686         driver::build_option_suggestions and find_closest_string.
9687         (driver::build_option_suggestions): New function, from
9688         first half of suggest_option.  Special-case
9689         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
9690         the sanitizer_opts array.  For options of enum types, add the
9691         various enum values to the candidate strings.
9692         (driver::handle_unrecognized_options): Remove "const".
9693         * gcc.h (driver::handle_unrecognized_options): Likewise.
9694         (driver::build_option_suggestions): New decl.
9695         (driver::suggest_option): New decl.
9696         (driver::m_option_suggestions): New field.
9697         * opts-common.c (add_misspelling_candidates): New function.
9698         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
9699         and make non-static.
9700         * opts.h (sanitizer_opts): New array decl.
9701         (add_misspelling_candidates): New function decl.
9702         * spellcheck.c (find_closest_string): New function.
9703         * spellcheck.h (find_closest_string): New function decl.
9705 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
9707         PR rtl-optimization/69764
9708         PR rtl-optimization/69771
9709         * optabs.c (expand_binop_directly): For shift_optab_p, force
9710         convert_modes with VOIDmode if xop1 has VOIDmode.
9712 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
9714         PR target/69729
9715         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
9716         to correctly determine instrumentation thunks.
9718 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
9720         PR ipa/69241
9721         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
9722         type by reference, force lhs on the call.
9724         PR ipa/68672
9725         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
9726         Compute retval and retbnd early in all cases if split_part_return_p
9727         and return_bb is not EXIT.  Remove all clobber stmts and reset
9728         all debug stmts that refer to SSA_NAMEs defined in split part,
9729         except if it is retval, in that case replace the old retval with the
9730         lhs of the call to the split part.
9732 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
9734         revert:
9735         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
9737         PR middle-end/66726
9738         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9739         whose result is used in PHI.
9740         (maybe_optimize_range_tests): Likewise.
9741         (final_range_test_p): Likweise.
9743 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
9745         PR middle-end/66726
9746         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9747         whose result is used in PHI.
9748         (maybe_optimize_range_tests): Likewise.
9749         (final_range_test_p): Likweise.
9751 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
9753         * cgraph.c: Spelling fixes - behaviour -> behavior and
9754         neighbour -> neighbor.
9755         * target.def: Likewise.
9756         * sel-sched.c: Likewise.
9757         * config/mips/mips.c: Likewise.
9758         * config/arc/arc.md: Likewise.
9759         * config/arm/cortex-a57.md: Likewise.
9760         * config/arm/arm.c: Likewise.
9761         * config/arm/neon.md: Likewise.
9762         * config/arm/arm-c.c: Likewise.
9763         * config/vms/vms-c.c: Likewise.
9764         * config/s390/s390.c: Likewise.
9765         * config/i386/znver1.md: Likewise.
9766         * config/i386/i386.c: Likewise.
9767         * config/ia64/hpux-unix2003.h: Likewise.
9768         * config/msp430/msp430.md: Likewise.
9769         * config/rx/rx.c: Likewise.
9770         * config/rx/rx.md: Likewise.
9771         * config/aarch64/aarch64-simd.md: Likewise.
9772         * config/aarch64/aarch64.c: Likewise.
9773         * config/nvptx/nvptx.c: Likewise.
9774         * config/bfin/bfin.c: Likewise.
9775         * config/cris/cris.opt: Likewise.
9776         * config/rs6000/rs6000.c: Likewise.
9777         * target.h: Likewise.
9778         * spellcheck.c: Likewise.
9779         * ira-build.c: Likewise.
9780         * tree-inline.c: Likewise.
9781         * builtins.c: Likewise.
9782         * lra-constraints.c: Likewise.
9783         * explow.c: Likewise.
9784         * hwint.h: Likewise.
9785         * targhooks.c: Likewise.
9786         * tree-vect-data-refs.c: Likewise.
9787         * expr.c: Likewise.
9788         * doc/tm.texi: Likewise.
9789         * doc/extend.texi: Likewise.
9790         * doc/install.texi: Likewise.
9791         * doc/md.texi: Likewise.
9792         * tree-ssa-tail-merge.c: Likewise.
9793         * sched-int.h: Likewise.
9794         * match.pd: Likewise.
9795         * sched-ebb.c: Likewise.
9796         * target.def (omit_struct_return_reg): Likewise.
9797         * gimple-ssa-isolate-paths.c: Likewise.
9798         (find_implicit_erroneous_behaviour): Renamed to...
9799         (find_implicit_erroneous_behavior): ... this.
9800         (find_explicit_erroneous_behaviour): Renamed to...
9801         (find_explicit_erroneous_behavior): ... this.
9802         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
9804 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
9806         PR rtl-optimization/64682
9807         PR rtl-optimization/69567
9808         PR rtl-optimization/69737
9809         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
9810         in I2 as well, just lose it.
9812 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9814         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
9815         New variable.
9816         (aarch64_last_printed_tune_string): Likewise.
9817         (aarch64_declare_function_name): Only output .arch assembler
9818         directive if it will be different from the previously output
9819         directive.  Same for .tune comment but only if -dA is set.
9820         (aarch64_start_file): New function.
9821         (TARGET_ASM_FILE_START): Define.
9823 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
9825         PR plugins/69758
9826         * Makefile.in (PLUGIN_HEADERS): Add params.list.
9828 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
9830         PR target/65313
9831         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
9832         -Wmaybe-uninitialized warning.
9834 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
9836         PR target/69713
9837         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
9839 2016-02-11  Richard Biener  <rguenther@suse.de>
9841         PR rtl-optimization/69291
9842         * ifcvt.c (noce_try_store_flag_constants): Do not allow
9843         subexpressions affected by changing the result.
9845 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9847         PR target/69148
9848         * lra-constraints.c (curr_insn_transform): Find in/out operands
9849         for secondary memory moves.  Update dups.
9851 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
9853         PR tree-optimization/69652
9854         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
9855         to nested loop, did source re-formatting, skip debug statements,
9856         add check on statement with volatile operand, remove dead scalar
9857         statements.
9859 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
9860             Patrick Palka  <ppalka@gcc.gnu.org>
9862         PR ipa/69241
9863         PR c++/69649
9864         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
9865         calls if the return type is TREE_ADDRESSABLE.
9866         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
9867         * ipa-split.c (split_function): Fix doubled "we" in comment.
9868         Use void return type for the split part even if
9869         !split_point->split_part_set_retval.
9871 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
9873         PR tree-optimization/68021
9874         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
9875         when computing the value of biv cand by itself.
9877 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
9879         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
9880         (cortexa57_tunings): Likewise.
9881         (cortexa72_tunings): Likewise.
9882         (arch_macro_fusion_pair_p): Add support for AES fusion.
9883         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
9884         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
9885         Allow virtual registers before reload so early scheduling works.
9886         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
9887         correct latency and pipeline.
9888         (cortex_a57_crypto_complex): Likewise.
9889         (cortex_a57_crypto_xor): Likewise.
9890         (define_bypass): Add AES bypass.
9892 2016-02-10  Richard Biener  <rguenther@suse.de>
9894         PR tree-optimization/69726
9895         * passes.def: Add DCE pass before late uninit.
9896         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
9897         really fixup if-conversions job.
9899 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
9901         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
9902         (arm_cortex_a57_tune): Likewise.
9903         (aarch_macro_fusion_pair_p): Add support for AES fusion.
9904         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
9906 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
9908         * timevar.def (TV_PHASE_DBGINFO): Delete.
9909         (TV_PHASE_CHECK_DBGINFO): Likewise.
9910         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
9912 2016-02-10  Richard Biener  <rguenther@suse.de>
9914         PR tree-optimization/69719
9915         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9916         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
9918 2016-02-09  Andrew Pinski  <apinski@cavium.com>
9920         PR tree-opt/69282
9921         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
9922         get_vcond_mask_icode returns false.
9924 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
9926         PR target/68404
9927         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
9928         an ADDIS that adds a pointer to a large constant that sets the
9929         upper16 bits with a load operation.
9931 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
9933         PR target/68532
9934         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
9935         order.
9936         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
9937         endian.
9938         (vzipq_s16): Likewise.
9939         (vzipq_s32): Likewise.
9940         (vzipq_f32): Likewise.
9941         (vzipq_u8): Likewise.
9942         (vzipq_u16): Likewise.
9943         (vzipq_u32): Likewise.
9944         (vzipq_p8): Likewise.
9945         (vzipq_p16): Likewise.
9947 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
9949         PR target/68532
9950         * config/arm/arm.c (neon_endian_lane_map): New function.
9951         (neon_vector_pair_endian_lane_map): New function.
9952         (arm_evpc_neon_vuzp): Allow for big endian lane order.
9953         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
9954         endian.
9955         (vuzpq_s16): Likewise.
9956         (vuzpq_s32): Likewise.
9957         (vuzpq_f32): Likewise.
9958         (vuzpq_u8): Likewise.
9959         (vuzpq_u16): Likewise.
9960         (vuzpq_u32): Likewise.
9961         (vuzpq_p8): Likewise.
9962         (vuzpq_p16): Likewise.
9964 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
9966         PR target/69634
9967         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
9968         debug insns.
9970 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
9972         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
9973         truncate const_int operand 1 to QImode.
9975 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
9977         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
9978         corresponding to an abnormal edge.
9980 2016-02-09  Tom de Vries  <tom@codesourcery.com>
9982         PR tree-optimization/69599
9983         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
9984         function.
9985         (find_func_aliases_for_builtin_call, find_func_clobbers)
9986         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
9987         partition.
9989 2016-02-09  Richard Biener  <rguenther@suse.de>
9991         PR tree-optimization/69715
9992         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
9993         LHS on calls as non-rewritable.
9995 2016-02-09  Tom de Vries  <tom@codesourcery.com>
9997         PR lto/69707
9998         * lto-wrapper.c (append_diag_options): New function.
9999         (compile_offload_image): Call append_diag_options.
10001 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
10003         PR other/69722
10004         * doc/extend.texi (Flag Output Operands): Correct sectioning.
10005         Minor copy-edit to fix verb tenses.
10007 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
10009         PR tree-optimization/69209
10010         * ipa-split.c (split_function): If split part is not
10011         returning retval, retval has gimple type but is not
10012         gimple value, force it into a SSA_NAME first.
10014 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
10016         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
10017         outdated section.
10019 2016-02-08  Jason Merrill  <jason@redhat.com>
10021         PR c++/69631
10022         * convert.c (convert_to_integer_1): Check dofold on truncation
10023         distribution.
10024         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
10025         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
10026         Rename from *_nofold.
10027         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
10028         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
10030 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
10032         PR target/60410
10033         * tree.c (build_common_tree_nodes): Remove short_double argument.
10034         All callers changed.
10035         * tree.h (build_common_tree_nodes): Adjust declaration.
10036         * doc/invoke.texi (-fshort-double): Remove documentation.
10037         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10038         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
10039         * lto-wrapper.c (merge_and_complain, append_compiler_options)
10040         (append_linker_options): Don't handle OPT_fshort_double.
10042         PR rtl-optimization/68730
10043         * lra-remat.c (insn_to_cand_activation): New static variable.
10044         (lra_remat): Allocate and free it.
10045         (create_cand): New arg activation. Initialize a field in
10046         insn_to_cand_activation if it is nonnull.
10047         (create_cands): Pass the activation insn to create_cand when making
10048         a candidate involving an output reload.  Reorganize code a little.
10049         (do_remat): Keep track of active status of candidates in a separate
10050         bitmap.
10052 2016-02-08  Richard Biener  <rguenther@suse.de>
10054         PR tree-optimization/69719
10055         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
10056         Properly use absolute of the difference of the two offsets to
10057         compare or adjust the segment length.
10059 2016-02-08  Richard Biener  <rguenther@suse.de>
10060             Jeff Law  <law@redhat.com>
10062         PR target/68273
10063         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
10064         types for anonymous SSA names.
10066 2016-02-08   Richard Biener  <rguenther@suse.de>
10068         PR rtl-optimization/69274
10069         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
10071 2016-02-08  Jeff Law  <law@redhat.com>
10073         PR tree-optimization/65917
10074         * tree-ssa-dom.c (record_temporary_equivalences): Record both
10075         equivalences from if (x == y) style conditionals.
10076         (loop_depth_of_name): Remove.
10077         (record_equality): Remove loop depth check.
10078         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
10079         (const_and_copies::record_const_or_copy_raw): New member function.
10080         * tree-ssa-scopedtables.c
10081         (const_and_copies::record_const_or_copy_raw): New, factored out of
10082         (const_and_copies::record_const_or_copy): Call new member function.
10084 2016-02-05  Jeff Law  <law@redhat.com>
10086         PR tree-optimization/68541
10087         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
10088         (count_stmts_in_block): New function.
10089         (poor_ifcvt_candidate_code): Likewise.
10090         (is_feasible_trace): Add some heuristics to determine when path
10091         splitting is profitable.
10092         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
10093         is a diamond with a single exit.
10095 2016-02-05  Martin Sebor  <msebor@redhat.com>
10097         PR c++/69662
10098         * doc/invoke.texi: Update -Wplacement-new to take an optional
10099         argument.
10101 2016-02-06  Richard Henderson  <rth@redhat.com>
10103         PR c/69643
10104         * tree.c (tree_nop_conversion_p): Do not strip casts into or
10105         out of non-standard address spaces.
10107 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
10109         PR rtl-optimization/69691
10110         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
10112 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
10114         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
10115         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
10116         (*ieee128_mfvsrd_64bit): Likewise.
10117         (*ieee128_mfvsrd_32bit): Likewise.
10119 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
10121         PR target/69369
10122         Revert r232560:
10123         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10125         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10126         instrumented_version.
10128 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
10130         * doc/invoke.texi (Optimize Options): In table of --param options
10131         rename second occurrence of tracer-min-branch-ratio to
10132         tracer-min-branch-probability, rename
10133         tracer-min-branch-ratio-feedback to
10134         tracer-min-branch-probability-feedback and clarify description,
10135         rename sched-spec-state-edge-prob-cutoff to
10136         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
10137         to selsched-insns-to-rename, rename lto-minpartition to
10138         lto-min-partition, delete reorder-blocks-duplicate and
10139         reorder-blocks-duplicate-feedback.
10141 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10143         * config/s390/s390.c (s390_register_info_set_ranges): Remove
10144         superfluous loops.
10146 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10148         * doc/extend.texi: S/390: Correct some typos.
10150 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10152         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
10154 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10156         PR target/69625
10157         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
10158         (s390_register_info_gprtofpr): Use new macros above.
10159         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
10160         its name.
10161         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
10162         its name.  Adjust restore and save gpr ranges.
10163         (s390_register_info_set_ranges): New function.
10164         (s390_register_info): Use new macros above.  Call
10165         s390_register_info_set_ranges.
10166         (s390_optimize_register_info): Likewise.
10167         (s390_hard_regno_rename_ok): Use new macros.
10168         (s390_hard_regno_scratch_ok): Likewise.
10169         (s390_emit_epilogue): Likewise.
10170         (s390_can_use_return_insn): Likewise.
10171         (s390_optimize_prologue): Likewise.
10172         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
10174 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
10176         PR bootstrap/69677
10177         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
10178         alignment fixes.
10179         (ix86_option_override_internal): Disable TARGET_STV even for
10180         -m{incoming,preferred}-stack-boundary=3.
10182 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10184         * config.gcc: Mark deprecated rtems targets as obsolete.
10186 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
10188         PR rtl-optimization/64682
10189         PR rtl-optimization/69567
10190         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
10191         before I2 only if the register is both used and set in I2.
10193 2016-02-04  DJ Delorie  <dj@redhat.com>
10195         * config/msp430/msp430.c (msp430_start_function): Add function type.
10197 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
10199         PR fortran/69368
10200         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
10202 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
10204         PR rtl-optimization/69577
10205         Revert:
10206         2015-10-29  Richard Henderson  <rth@redhat.com>
10208         PR target/68124
10209         PR rtl-opt/67609
10210         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
10211         sse check to the exact conditions of PR 67609.
10213 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
10215         PR target/69667
10216         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
10217         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
10218         not allowed into the traditional Altivec registers.
10219         (movtd_64bit_nodm): Likewise.
10220         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
10222 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
10224         * config/aarch64/cortex-a57-fma-steering.c
10225         (aarch64_register_fma_steering): Remove "static" from arguments
10226         to register_pass.
10228 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
10230         PR target/69619
10231         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
10232         twice when complex.
10234 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
10236         * doc/invoke.texi: Delete -mno-fma4.
10238 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
10240         PR rtl-optimization/69577
10241         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
10242         (find_subregs_of_mode): Update accordingly.  Iterate over partial
10243         definitions.
10245 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
10247         * config/arm/arm-protos.h (neon_reinterpret): Remove.
10248         * config/arm/arm.c (neon_reinterpret): Remove.
10249         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
10250         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
10251         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
10252         vreinterpretti): Remove.
10253         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
10254         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
10255         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
10256         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
10257         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
10258         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
10259         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
10260         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
10261         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
10262         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
10263         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
10264         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
10265         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
10266         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
10267         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
10268         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
10269         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
10270         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
10271         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
10272         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
10273         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
10274         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
10275         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
10276         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
10277         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
10278         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
10279         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
10280         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
10281         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
10282         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
10283         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
10284         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
10285         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
10286         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
10287         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
10288         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
10289         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
10290         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
10291         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
10292         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
10293         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
10294         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
10295         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
10296         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
10297         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
10298         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
10299         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
10300         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
10301         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
10302         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
10303         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
10304         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
10305         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
10306         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
10307         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
10308         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
10309         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
10310         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
10311         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
10312         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
10313         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
10314         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
10315         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
10316         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
10317         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
10318         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
10319         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
10320         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
10321         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
10322         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
10323         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
10324         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
10325         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
10326         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
10327         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
10328         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
10329         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
10330         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
10331         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
10332         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
10333         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
10334         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
10335         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
10336         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
10337         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
10338         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
10339         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
10340         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
10341         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
10342         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
10343         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
10344         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
10345         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
10346         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
10347         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
10348         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
10349         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
10350         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
10351         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
10352         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
10353         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
10354         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
10355         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
10357 2016-02-04  Martin Liska  <mliska@suse.cz>
10359         PR sanitizer/69276
10360         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
10361         that are gimple_store_p.
10362         (maybe_instrument_call): Likewise.
10364 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
10366         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
10367         register scaling out of memory reference and comment why.
10369 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10371         PR target/65932
10372         PR target/67714
10373         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
10374         folding the source of a SET.
10376 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10378         PR target/65932
10379         PR target/67714
10380         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
10381         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
10383 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
10385         PR target/65932
10386         PR target/67714
10387         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
10388         HImode.
10390 2016-02-04  Christian Bruel  <christian.bruel@st.com>
10392         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
10393         * config/arm/arm.c (arm_set_current_function): Likewise.
10395 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
10396             Ilya Enkovich  <enkovich.gnu@gmail.com>
10397             H.J. Lu  <hongjiu.lu@intel.com>
10399         PR target/69454
10400         * config/i386/i386.c (convert_scalars_to_vector): Remove
10401         stack alignment fixes.
10402         (ix86_option_override_internal): Disable TARGET_STV if stack
10403         might not be aligned enough.
10404         (ix86_minimum_alignment): Assert that TARGET_STV is false.
10406 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
10408         * config/i386/x86-tune.def: Disable default prefetching
10409         for -march=znver1.
10411 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
10412             Vladimir Makarov  <vmakarov@redhat.com>
10414         PR target/69461
10415         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
10416         in validating fused toc addresses.
10418 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
10420         PR c/69627
10421         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
10422         range->m_caret fields if range->m_show_caret_p is false.
10424         PR target/69644
10425         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
10426         Force oldval into register if it does not satisfy reg_or_short_operand
10427         predicate.  Fix up formatting.
10429 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
10430             Alexandre Oliva  <aoliva@redhat.com>
10432         PR target/69461
10433         * lra-constraints.c (simplify_operand_subreg): Check additionally
10434         address validity after potential reloading.
10435         (process_address_1): Check insns validity.  In case of failure do
10436         nothing.
10438 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
10440         PR target/69118
10441         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
10442         Fix target.
10444 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
10446         * wide-int.cc (canonize_uhwi): New function.
10447         (wi::divmod_internal): Use it.
10449 2016-02-02  James Norris  <jnorris@codesourcery.com
10451         * gimplify.c (omp_notice_variable): Add usage check.
10453 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
10455         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
10456         like LE, GE, LT, GT when emitting relational operator.
10458 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
10460         * ira-costs.c (find_costs_and_classes): Add extra argument.
10461         * target.def (ira_change_pseudo_allocno_class): Add parameter.
10462         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
10463         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
10464         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
10465         Add best_class parameter, and return it if not ALL_REGS.
10466         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
10467         Add parameter.
10468         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
10469         Update target hook.
10471 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
10473         * config/aarch64/aarch64.c
10474         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
10475         (aarch64_ira_change_pseudo_allocno_class): New function.
10477 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
10479         PR target/67032
10480         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
10482 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
10484         * config/avr/avr.c (avr_option_override): Set
10485         PARAM_ALLOW_STORE_DATA_RACES to 1.
10487 2016-02-02  Richard Biener  <rguenther@suse.de>
10489         PR tree-optimization/69595
10490         * match.pd: Add range test simplifications to true/false.
10492 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
10494         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
10495         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
10496         instead.
10498 2016-02-02  Richard Biener  <rguenther@suse.de>
10500         PR tree-optimization/69606
10501         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
10502         info on the result before moving a stmt.
10504 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
10506         PR middle-end/68542
10507         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
10508         branch with vector comparison.
10509         * config/i386/sse.md (VI48_AVX): New mode iterator.
10510         (define_expand "cbranch<mode>4): Add support for conditional branch
10511         with vector comparison.
10512         * tree-vect-loop.c (optimize_mask_stores): New function.
10513         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
10514         has_mask_store field of vect_info.
10515         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
10516         vectorized loops having masked stores after vec_info destroy.
10517         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
10518         correspondent macros.
10519         (optimize_mask_stores): Add prototype.
10521 2016-02-02  Alan Modra  <amodra@gmail.com>
10523         PR target/69548
10524         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
10525         allow subregs.
10527 2016-02-02  Alan Modra  <amodra@gmail.com>
10529         PR target/68662
10530         * config/rs6000/rs6000.c (need_toc_init): New var, set it
10531         whenever toc_label_name used.
10532         (rs6000_file_start): Don't set up toc section here,
10533         (rs6000_output_function_epilogue): do so here instead,
10534         (rs6000_xcoff_file_start): and here.
10535         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
10536         (load_toc_aix_di): Likewise.
10538 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
10540         PR rtl-optimization/69592
10541         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
10542         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
10543         (num_sign_bit_copies_binary_arith_p): New inline function.
10544         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
10546 2016-02-01  Jeff Law  <law@redhat.com>
10548         PR tree-optimization/69580
10549         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
10550         * tree-ssa-threadbackward.c
10551         (fsm_find_control_statement_thread_paths): Do not try to walk
10552         through large PHI nodes.
10554 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
10556         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
10557         when count is incremented above limit, don't analyze further
10558         insns afterwards.
10560         * omp-low.c (oacc_parse_default_dims): Avoid
10561         -Wsign-compare warning, make sure value fits into int
10562         rather than just unsigned int.
10564 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
10566         PR tree-optimization/67921
10567         * fold-const.c (split_tree): New parameters.  Convert pointer
10568         type variable part to proper type before negating.
10569         (fold_binary_loc): Pass new arguments to split_tree.
10571 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
10573         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
10574         (nvptx_goacc_validate_dims): Extend to handle global defaults.
10575         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
10576         * doc/tm.texti: Rebuilt.
10577         * doc/invoke.texi (fopenacc-dim): Document.
10578         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
10579         (append_compiler_options): Likewise.
10580         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
10581         (oacc_parse_default_dims): New.
10582         (oacc_validate_dims): Add USED arg.  Select non-unity default when
10583         possible.
10584         (oacc_loop_fixed_partitions): Return mask of used partitions.
10585         (oacc_loop_auto_partitions): Emit dump info.
10586         (oacc_loop_partition): Return mask of used partitions.
10587         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
10588         loop partitioning and validation calls.
10590 2016-02-01  Richard Biener  <rguenther@suse.de>
10592         PR middle-end/69556
10593         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
10595 2016-02-01  Richard Biener  <rguenther@suse.de>
10597         PR tree-optimization/69574
10598         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
10599         of asserting return chrec_dont_know.
10601 2016-02-01  Martin Liska  <mliska@suse.cz>
10603         * mem-stats-traits.h: Add copyright header.
10604         * mem-stats.h: Likewise.
10606 2016-02-01  Richard Biener  <rguenther@suse.de>
10608         PR tree-optimization/69579
10609         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
10610         Do not propagate through abnormal PHI results.
10612 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
10614         * postreload.c (reload_cse_simplify): Remove dead code.
10616 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
10618         PR rtl-optimization/69570
10619         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
10620         if there is more than one set, not if there is a single set.
10622 2016-02-01  Richard Henderson  <rth@redhat.com>
10624         PR rtl-opt/69535
10625         * combine.c (make_compound_operation): When looking through a
10626         subreg, make sure to re-extend to the width of the outer mode.
10628 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
10630         PR tree-optimization/69546
10631         * wide-int.cc (wi::divmod_internal): For unsigned division
10632         where both operands fit into uhwi, if o1 is 1 and o0 has
10633         msb set, if divident_prec is larger than bits per hwi,
10634         clear another quotient word and return 2 instead of 1.
10635         Similarly for remainder with msb in HWI set, if dividend_prec
10636         is larger than bits per hwi.
10638 2016-01-29  Martin Jambor  <mjambor@suse.cz>
10640         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
10641         Use short lowercase names.
10642         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
10643         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
10644         acq_rel one.  Protect warning agains segfaults if
10645         get_memory_order_name returns NULL.
10646         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
10647         with release semantics.  Do not warn if get_memory_order already did.
10648         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
10649         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
10650         if get_memory_order already did.
10652 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
10654         * doc/install.texi: Document that isl-0.16 is supported.
10656 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
10658         PR target/69299
10659         * config/i386/constraints.md (Bm): Describe as special memory
10660         constraint.
10661         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
10662         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10663         * genpreds.c (struct constraint_data): Add is_special_memory.
10664         (have_special_memory_constraints, special_memory_start): New
10665         static vars.
10666         (special_memory_end): Ditto.
10667         (add_constraint): Add new arg is_special_memory.  Add code to
10668         process its true value.  Update have_special_memory_constraints.
10669         (process_define_constraint): Pass the new arg.
10670         (process_define_register_constraint): Ditto.
10671         (choose_enum_order): Process special memory.
10672         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
10673         function insn_extra_special_memory_constraint.
10674         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10675         * gensupport.c (process_rtx): Process
10676         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10677         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
10678         * ira-lives.c (single_reg_class): Use
10679         insn_extra_special_memory_constraint.
10680         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
10681         * lra-constraints.c (process_alt_operands): Ditto.
10682         (curr_insn_transform): Use insn_extra_special_memory_constraint.
10683         * recog.c (asm_operand_ok, preprocess_constraints): Process
10684         CT_SPECIAL_MEMORY.
10685         * reload.c (find_reloads): Ditto.
10686         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
10687         * stmt.c (parse_input_constraint): Use
10688         insn_extra_special_memory_constraint.
10690 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
10692         PR target/69530
10693         * lra-splill.c (lra_final_code_change): Revert r229087 by
10694         removing all sub-registers.
10696 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
10698         PR target/65604
10699         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
10701 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
10703         PR target/69551
10704         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
10705         SSE1, copy target into the temporary reg first before recursing
10706         on it.
10708 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
10710         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
10711         with vm.
10713 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
10715         * ginclude/stdarg.h: Test __cplusplus instead of
10716         __GXX_EXPERIMENTAL_CXX0X__.
10718 2016-01-29  Richard Biener  <rguenther@suse.de>
10720         PR tree-optimization/69547
10721         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
10722         Do not mark clobbers necessary.
10723         (mark_all_reaching_defs_necessary_1): Likewise.
10725 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10727         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
10728         declaration name with %qs and print it in both error messages.
10729         Also fix indentation.
10731 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10733         PR other/69006
10734         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
10735         trailing blank line from error message.
10737 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
10739         PR c++/69462
10740         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
10741         for C++-11.
10743 2016-01-29  Richard Biener  <rguenther@suse.de>
10745         PR middle-end/69537
10746         * match.pd: Allow all integral types when simplifying a
10747         widening or sign-changing conversion.
10749 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
10751         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
10752         back to setting codegen_error to fail codegen.
10754 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
10756         PR target/69459
10757         * config/i386/constraints.md (C): Only accept constant zero operand.
10758         (BC): New constraint.
10759         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
10760         instead of C constraint.
10761         * doc/md.texi (Machine Constraints): Update description
10762         of C constraint.
10764 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
10766         PR target/68400
10767         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
10769 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
10771         PR middle-end/69542
10772         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
10773         non-debug insns.
10775 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
10777         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
10778         branches if using guessed profile.
10780 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
10782         * graphite-optimize-isl.c (optimize_isl): Fix dump.
10784 2016-01-28  Richard Henderson  <rth@redhat.com>
10786         PR target/69305
10787         * config/aarch64/aarch64-modes.def (CC_Cmode): New
10788         * config/aarch64/aarch64-protos.h: Update.
10789         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
10790         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
10791         (aarch64_get_condition_code_1): Handle CC_Cmode.
10792         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
10793         (*add<mode>3_compareC_cconly_imm): New.
10794         (*add<mode>3_compareC_cconly): New.
10795         (*add<mode>3_compareC_imm): New.
10796         (add<mode>3_compareC): New.
10797         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
10798         to be first.  Use aarch64_carry_operation.
10799         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
10800         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
10801         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
10802         (subti3): Use subdi3_compare1.
10803         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
10804         (sub<mode>3_compare1): New.
10805         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
10806         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
10807         (*subsi3_carryin_uxtw): Likewise.
10808         (*ngc<mode>, *ngcsi_uxtw): Likewise.
10809         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
10810         * config/aarch64/iterators.md (DWI): New.
10811         * config/aarch64/predicates.md (aarch64_carry_operation): New.
10812         (aarch64_borrow_operation): New.
10814 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
10816         * graphite-optimize-isl.c (optimize_isl): Print a different debug
10817         message when isl does not return a valid schedule.
10819 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
10821         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
10822         Remove comments from class declarations: they are already in the code
10823         close by the defs.
10825 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
10827         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
10828         codegen_error_p.
10829         (ternary_op_to_tree): Same.
10830         (unary_op_to_tree): Same.
10831         (nary_op_to_tree): Same.
10832         (gcc_expression_from_isl_expr_op): Same.
10833         (gcc_expression_from_isl_expression): Same.
10834         (graphite_create_new_loop): Same.
10835         (graphite_create_new_loop_guard): Same.
10836         (build_iv_mapping): Same.
10837         (graphite_create_new_guard): Same.
10838         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
10839         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
10841 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
10843         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
10844         instead of setting codegen_error to fail codegen.
10846 2016-01-28  Jason Merrill  <jason@redhat.com>
10848         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
10850 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
10852         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10853         Remove CONST_INT_P check in CCMP cost calculation.
10855 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
10857         * config/aarch64/aarch64.c (generic_vector_cost):
10858         Set vec_permute_cost.
10859         (cortexa57_vector_cost): Likewise.
10860         (exynosm1_vector_cost): Likewise.
10861         (xgene1_vector_cost): Likewise.
10862         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
10863         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
10864         Add vec_permute_cost entry.
10866 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
10868         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
10869         immediate as %1.
10870         (add<mode>3_compare0): Likewise.
10871         (addsi3_compare0_uxtw): Likewise.
10872         (add<mode>3nr_compare0): Likewise.
10873         (compare_neg<mode>): Likewise.
10874         (<optab><mode>3): Likewise.
10876 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
10878         * tree-vect-stmts.c (vectorizable_comparison): Add
10879         NULL check for vectype.
10881 2016-01-28  Richard Biener  <rguenther@suse.de>
10883         PR tree-optimization/69466
10884         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
10885         Account for PHIs we couldn't duplicate.
10887 2016-01-28  Martin Liska  <mliska@suse.cz>
10889         PR pch/68758
10890         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
10891         instead of ENABLE_VALGRIND_CHECKING.
10893 2016-01-27  Richard Henderson  <rth@redhat.com>
10895         PR rtl-opt/69447
10896         * lra-remat.c (subreg_regs): New.
10897         (dump_candidates_and_remat_bb_data): Dump it.
10898         (operand_to_remat): Reject if operand in subreg_regs.
10899         (set_bb_regs): Collect subreg_regs.
10900         (lra_remat): Init and free subreg_regs.  Compute
10901         calculate_local_reg_remat_bb_data before create_cands.
10903 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
10905         PR target/68986
10906         * config/i386/i386.c (ix86_update_stack_boundary): Don't
10907         change stack_alignment_needed for __tls_get_addr call.
10909 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
10911         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
10913 2016-01-27  Jeff Law  <law@redhat.com>
10915         PR tree-optimization/68398
10916         PR tree-optimization/69196
10917         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
10918         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
10919         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10920         Only count PHIs in the last block in the path.  The others will
10921         const/copy propagate away.  Add heuristic to allow more irreducible
10922         subloops to be created when it is likely profitable to do so.
10924         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10925         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
10926         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
10928 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
10930         PR lto/69254
10931         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
10932         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
10933         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
10934         * tree-streamer-in.c: Include asan.h.
10935         (streamer_get_builtin_tree): For builtins in sanitizer
10936         range call initialize_sanitizer_builtins and retry.
10938 2016-01-27  Ian Lance Taylor  <iant@google.com>
10940         * common.opt (fkeep-gc-roots-live): New undocumented option.
10941         * tree-ssa-loop-ivopts.c (add_candidate_1): If
10942         -fkeep-gc-roots-live, skip pointers.
10943         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
10944         NULL.
10946 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
10948         PR target/69512
10949         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
10950         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
10952 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
10954         PR target/68380
10955         * configure.ac: NetBSD provides SSP in its C library.
10956         * configure: Updated.
10958 2016-01-27  Richard Biener  <rguenther@suse.de>
10960         PR tree-optimization/69166
10961         * tree-vect-loop.c (vect_is_simple_reduction): Always check
10962         reduction code for commutativity / associativity.
10964 2016-01-27  Martin Jambor  <mjambor@suse.cz>
10966         PR tree-optimization/69355
10967         * tree-sra.c (analyze_access_subtree): Correct hole detection when
10968         total_scalarization fails.
10970 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
10972         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
10973         power9.
10975 2016-01-27  Christian Bruel  <christian.bruel@st.com>
10977         PR target/69245
10978         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
10979         Move arm_reset_previous_fndecl and set_target_option_current_node in
10980         the conditional part.  Call save_restore_target_globals.
10981         * config/arm/arm.c (arm_set_current_function):
10982         Refactor to better support #pragma target and attribute mix.
10983         Call save_restore_target_globals.
10984         * config/arm/arm-protos.h (save_restore_target_globals): New function.
10986 2016-01-27  Martin Liska  <mliska@suse.cz>
10988         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
10989         reference for an HSA kernel and its host function.
10991 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
10993         PR tree-optimization/69399
10994         * wide-int.h (wi::lrshift): For larger precisions, only
10995         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
10997 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
10999         * config/arc/predicates.md (proper_comparison_operator): Reject
11000         constant-constant comparison.
11002 2016-01-26  Tom de Vries  <tom@codesourcery.com>
11004         PR tree-optimization/69110
11005         * tree-data-ref.c (initialize_data_dependence_relation): Handle
11006         DR_NUM_DIMENSIONS == 0.
11008 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
11009             Sebastian Pop  <s.pop@samsung.com>
11011         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
11012         isl_ast_op_cond and isl_ast_op_select.
11013         (gcc_expression_from_isl_expr_op): Same.
11015 2016-01-26  Jason Merrill  <jason@redhat.com>
11017         PR c++/68782
11018         * tree.c (recompute_constructor_flags): Split out from
11019         build_constructor.
11020         (verify_constructor_flags): New.
11021         * tree.h: Declare them.
11023 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11025         PR rtl-optimization/69217
11026         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
11027         are no TYPE_FIELDS set for the record type.
11029 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
11031         PR target/68662
11032         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
11033         toc_label_name unconditionally.
11034         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
11035         SYMBOL_REF string.  Use toc_label_name instead of constructing
11036         LCTOC1.
11037         (rs6000_elf_declare_function_name): Use toc_label_name instead of
11038         constructing LCTOC1.
11040 2016-01-26  Martin Sebor  <msebor@redhat.com>
11042         PR other/69477
11043         * doc/extend.texi (Common Type Attributes): Move text that talks about
11044         attribute packed from attribute aligned to the section discussing
11045         the former attribute for clarity.
11047 2016-01-26  Richard Henderson  <rth@redhat.com>
11049         PR middle-end/60908
11050         * trans-mem.c (tm_region_init): Mark entry block as visited.
11052 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
11054         PR other/69006
11055         * diagnostic-show-locus.c (layout::print_source_line): Replace
11056         call to pp_newline with call to layout::print_newline.
11057         (layout::print_annotation_line): Likewise.
11058         (layout::move_to_column): Likewise.
11059         (layout::print_any_fixits): After printing any fixits, print a
11060         trailing newline, if necessary.
11061         (layout::print_newline): New method, resetting any colorization
11062         before a newline.
11063         (diagnostic_show_locus): Move the pp_newline to before the
11064         early bailout.  Remove dummy block enclosing the layout instance.
11065         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
11066         of pp_newline_and_flush with pp_flush.
11067         (diagnostic_append_note): Delete use of pp_newline.
11068         (diagnostic_append_note_at_rich_loc): Delete.
11069         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
11070         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
11071         when newline characters are added to the buffer.
11073 2016-01-26  Michael Matz  <matz@suse.de>
11075         * configure.ac (ac_cv_std_swap_in_utility): New test.
11076         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
11077         * configure: Regenerate.
11078         * config.in: Regenerate.
11080 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
11082         * config/arc/arc.md (cstoresi4): Force operand into register.
11083         (arcset<code>): Fix predicate.
11084         (arcsetltu): Likewise.
11085         (arcsetgeu): Likewise.
11086         (arcsethi): Likewise.
11087         (arcsetls): Likewise.
11089 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
11091         PR tree-optimization/69483
11092         * gimple-fold.c (canonicalize_constructor_val): Return NULL
11093         if base has error_mark_node type.
11095 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
11097         PR target/68620
11098         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
11099         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
11100         New helper macros.
11101         (vget_lane_f16): Handle big-endian.
11102         (vgetq_lane_f16): Likewise.
11103         (vset_lane_f16): Likewise.
11104         (vsetq_lane_f16): Likewise.
11105         * config/arm/iterators.md (VQXMOV): Add V8HF.
11106         (VDQ): Add V4HF and V8HF.
11107         (V_reg): Handle V4HF and V8HF.
11108         (Is_float_mode): Likewise.
11109         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
11110         neon_vdup_nv8hf): New patterns.
11111         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
11112         Use VD_LANE iterator.
11113         (neon_vld1_dup<mode>): Use VQ2 iterator.
11115 2016-01-26  Nathan Sidwell  <nathan@acm.org>
11117         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
11118         (set_oacc_fn_attrib): Add IS_KERNEL arg.
11119         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
11120         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
11121         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
11122         (oacc_validate_dims): Add LEVEL arg, don't return level.
11123         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
11124         oacc_validate_dims.
11125         (execute_oacc_device_lower): Adjust, add more dump output.
11126         * tree-ssa-loop.c (gate_oacc_kernels): Use
11127         oacc_fn_attrib_kernels_p.
11128         * tree-parloops.c (create_parallel_loop): Adjust
11129         set_oacc_fn_attrib call.
11131 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
11133         PR lto/69254
11134         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
11135         (append_compiler_options): Handle -fcilkplus.
11136         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
11138 2016-01-26  Nick Clifton  <nickc@redhat.com>
11140         PR target/66655
11141         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
11142         been marked as DECL_ONE_ONLY but we do not the means to make it
11143         so, then do not allow it to bind locally.
11145 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
11147         PR lto/69254
11148         * opts.h (parse_sanitizer_options): New prototype.
11149         * opts.c (sanitizer_opts): New array.
11150         (parse_sanitizer_options): New function.
11151         (common_handle_option): Use parse_sanitizer_options.
11153 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
11155         PR target/68986
11156         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
11157         alignment adjustment to ...
11158         (ix86_update_stack_boundary): Here.  Don't over-align stack for
11159         __tls_get_addr.
11160         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
11161         if __tls_get_addr is called.
11163 2016-01-26  Christian Bruel  <christian.bruel@st.com>
11165         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
11167 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
11169         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
11171 2016-01-26  Richard Biener  <rguenther@suse.de>
11173         PR middle-end/69467
11174         * match.pd: Guard X * CST CMP 0 pattern with single_use.
11176 2016-01-26  Richard Biener  <rguenther@suse.de>
11178         PR tree-optimization/69452
11179         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
11180         (move_computations_dom_walker::before_dom_children): Rename
11181         to ...
11182         (move_computations_worker): This.
11183         (move_computations): Perform an RPO rather than a DOM walk.
11185 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
11187         PR target/69442
11188         * combine.c (combine_instructions): For REG_EQUAL note with
11189         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
11190         to the underlying register.
11191         * doc/rtl.texi (REG_EQUAL): Document the behavior of
11192         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
11194 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
11196         PR target/67896
11197         * config/aarch64/aarch64-builtins.c
11198         (aarch64_init_simd_builtin_types): Do not set structural
11199         equality to __Poly{8,16,64,128}_t types.
11201 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
11203         PR tree-optimization/69400
11204         * wide-int.cc (wi_pack): Take the precision as argument and
11205         perform canonicalization here rather than in the callers.
11206         Use the main loop to handle all full-width HWIs.  Add a
11207         zero HWI if in_len isn't a full result.
11208         (wi::divmod_internal): Update accordingly.
11209         (wi::mul_internal): Likewise.  Simplify.
11211 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
11212             Sebastian Pop  <s.pop@samsung.com>
11214         * graphite-poly.c (apply_poly_transforms): Simplify.
11215         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
11216         (print_isl_map): Same.
11217         (print_isl_union_map): Same.
11218         (print_isl_schedule): New.
11219         (debug_isl_schedule): New.
11220         * graphite-dependences.c (scop_get_reads): Do not call
11221         isl_union_map_add_map that is undocumented isl functionality.
11222         (scop_get_must_writes): Same.
11223         (scop_get_may_writes): Same.
11224         (scop_get_original_schedule): Remove.
11225         (scop_get_dependences): Do not call isl_union_map_compute_flow that
11226         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
11227         (compute_deps): Remove.
11228         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
11229         (debug_schedule_ast): New.
11230         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
11231         set_separate_option.
11232         (graphite_regenerate_ast_isl): Add dump.
11233         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
11234         from scop->transformed_schedule.
11235         (graphite_regenerate_ast_isl): Add more dump.
11236         * graphite-optimize-isl.c (optimize_isl): Set
11237         scop->transformed_schedule.  Check whether schedules are equal.
11238         (apply_poly_transforms): Move here.
11239         * graphite-poly.c (apply_poly_transforms): ... from here.
11240         (free_poly_bb): Static.
11241         (free_scop): Static.
11242         (pbb_number_of_iterations_at_time): Remove.
11243         (print_isl_ast): New.
11244         (debug_isl_ast): New.
11245         (debug_scop_pbb): New.
11246         * graphite-scop-detection.c (print_edge): Move.
11247         (print_sese): Move.
11248         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
11249         (build_scop_scattering): Remove.
11250         (create_pw_aff_from_tree): Assert instead of bailing out.
11251         (add_condition_to_pbb): Remove unused code, do not fail.
11252         (add_conditions_to_domain): Same.
11253         (add_conditions_to_constraints): Remove.
11254         (build_scop_context): New.
11255         (add_iter_domain_dimension): New.
11256         (build_iteration_domains): Initialize pbb->iterators.
11257         Call add_conditions_to_domain.
11258         (nested_in): New.
11259         (loop_at): New.
11260         (index_outermost_in_loop): New.
11261         (index_pbb_in_loop): New.
11262         (outermost_pbb_in): New.
11263         (add_in_sequence): New.
11264         (add_outer_projection): New.
11265         (outer_projection_mupa): New.
11266         (add_loop_schedule): New.
11267         (build_schedule_pbb): New.
11268         (build_schedule_loop): New.
11269         (embed_in_surrounding_loops): New.
11270         (build_schedule_loop_nest): New.
11271         (build_original_schedule): New.
11272         (build_poly_scop): Call build_original_schedule.
11273         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
11274         (free_poly_dr): Remove.
11275         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
11276         (free_poly_bb): Remove.
11277         (debug_loop_vec): Remove.
11278         (print_isl_ast): Declare.
11279         (debug_isl_ast): Declare.
11280         (scop_do_interchange): Remove.
11281         (scop_do_strip_mine): Remove.
11282         (scop_do_block): Remove.
11283         (flatten_all_loops): Remove.
11284         (optimize_isl): Remove.
11285         (pbb_number_of_iterations_at_time): Remove.
11286         (debug_scop_pbb): Declare.
11287         (print_schedule_ast): Declare.
11288         (debug_schedule_ast): Declare.
11289         (struct scop): Remove schedule.  Add original_schedule,
11290         transformed_schedule.
11291         (free_gimple_poly_bb): Remove.
11292         (print_generated_program): Remove.
11293         (debug_generated_program): Remove.
11294         (unify_scattering_dimensions): Remove.
11295         * sese.c (print_edge): ... here.
11296         (print_sese): ... here.
11297         (debug_edge): ... here.
11298         (debug_sese): ... here.
11299         * sese.h (print_edge): Declare.
11300         (print_sese): Declare.
11301         (dump_edge): Declare.
11302         (dump_sese): Declare.
11304 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
11305             Sebastian Pop  <s.pop@samsung.com>
11307         * Makefile.in: Set ISLVER in site.exp.
11309 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
11311         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
11312         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
11313         through DECL_VALUE_EXPR for expansion.
11315 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11317         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
11318         the frame info after reload completed.
11320 2016-01-25  Jeff Law  <law@redhat.com>
11322         PR tree-optimization/69196
11323         PR tree-optimization/68398
11324         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
11325         tree-ssa-threadupdate.c.
11326         (determine_bb_domination_status): Prototype
11327         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
11328         (determine_bb_domination_status): No longer static.
11329         (valid_jump_thread_path): Remove code to detect characteristics
11330         of the jump thread path not associated with correctness.
11331         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
11332         Correct test for thread path length.  Count PHIs for real operands as
11333         statements that need to be copied.  Do not count ASSERT_EXPRs.
11334         Look at all the blocks in the thread path.  Compute and selectively
11335         filter thread paths based on threading through the latch, threading
11336         a multiway branch or crossing a multiway branch.
11338 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11340         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
11341         decl with __attribute__ ((unused)) annotation.
11343 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
11345         PR target/69421
11346         * tree-vect-stmts.c (vectorizable_condition): Check vectype
11347         of operands is compatible with a statement vectype.
11349 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
11351         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
11352         improve wording for mixed storage order support.
11354 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
11356         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
11357         (vcvt_u64_f64): Likewise.
11358         (vcvta_s64_f64): Likewise.
11359         (vcvta_u64_f64): Likewise.
11360         (vcvtm_s64_f64): Likewise.
11361         (vcvtm_u64_f64): Likewise.
11362         (vcvtn_s64_f64): Likewise.
11363         (vcvtn_u64_f64): Likewise.
11364         (vcvtp_s64_f64): Likewise.
11365         (vcvtp_u64_f64): Likewise.
11367 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
11369         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
11370         (arc_init): Check validity mll64 option.
11371         (arc_save_restore): Use double load/store instruction.
11372         (arc_expand_movmem): Likewise.
11373         (arc_split_move): Don't split if we have double load/store
11374         instructions. Returns a boolean.
11375         (arc_process_double_reg_moves): Change function to return boolean
11376         instead of a sequence of instructions.
11377         (arc_dwarf_register_span): New function.
11378         * config/arc/arc-protos.h (arc_split_move): Change prototype.
11379         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
11380         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
11381         (*movdf_insn): Likewise.
11382         * config/arc/arc.opt (mll64): New option.
11383         * config/arc/predicates.md (even_register_operand): New predicate.
11384         * doc/invoke.texi (ARC Options): Add mll64 documentation.
11386 2016-01-25  Richard Biener  <rguenther@suse.de>
11388         PR lto/69393
11389         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
11390         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
11391         DECL_NAMELESS.
11392         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
11394 2016-01-25  Richard Biener  <rguenther@suse.de>
11396         PR tree-optimization/69376
11397         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
11398         flag.
11399         (VN_INFO_ANTI_RANGE_P): New inline.
11400         (VN_INFO_RANGE_TYPE): Likewise.
11401         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
11402         SSA_NAME_ANTI_RANGE_P.
11403         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
11404         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11405         Properly query VN_INFO_RANGE_TYPE.
11407 2016-01-25  Nick Clifton  <nickc@redhat.com>
11409         PR target/66655
11410         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
11412 2016-01-23  Tom de Vries  <tom@codesourcery.com>
11414         PR tree-optimization/69426
11415         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
11416         removed clobber.
11418 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
11420         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
11421         "the the" with "the" in the comments.
11422         * ipa-devirt.c (build_type_inheritance_graph,
11423         update_type_inheritance_graph): Likewise.
11424         * tree.c (build_function_type_list_1): Likewise.
11425         * cfgloopmanip.c (scale_loop_profile): Likewise.
11426         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
11427         * gimple-ssa-split-paths.c
11428         (find_block_to_duplicate_for_splitting_paths): Likewise.
11429         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
11430         * expr.c (convert_move): Likewise.
11431         * var-tracking.c (vt_stack_adjustments): Likewise.
11432         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
11433         * tree-vrp.c (test_for_singularity): Likewise.
11435         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
11436         directly instead of building a temporary tree.
11438         PR bootstrap/69434
11439         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
11440         remove <algorithm> include.
11442 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
11444         PR target/69432
11445         * config/i386/i386.c: Include dojump.h.
11446         (expand_small_movmem_or_setmem,
11447         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
11448         fixes.
11449         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
11450         if dynamic_check != -1.
11452 2016-01-21  Jeff Law  <law@redhat.com>
11454         PR middle-end/69347
11455         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
11456         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
11457         into dominated_by_p.
11458         (cprop_into_successor_phis): Avoid unnecessary tests.
11460 2016-01-22  Richard Henderson  <rth@redhat.com>
11462         PR target/69416
11463         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
11464         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
11466 2016-01-22  Michael Matz  <matz@suse.de>
11468         * system.h (string, algorithm): Include only conditionally.
11469         (new): Include always under C++.
11470         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
11471         * final.c (toplevel): Ditto.
11472         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
11473         * genconditions.c (write_header): Make gencondmd.c define
11474         INCLUDE_STRING.
11475         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
11477         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
11478         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
11480 2016-01-22  Christian Bruel  <christian.bruel@st.com>
11482         PR target/68674
11483         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
11485 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11487         PR target/69403
11488         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
11489         define_insn_and_split.  Ensure operands[1] and operands[0] do not
11490         get assigned the same register.
11492 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
11494         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
11496 2016-01-22  Christian Bruel  <christian.bruel@st.com>
11498         * config/arm/arm-c.c (arm_pragma_target_parse):
11499         Remove warn_builtin_macro_redefined overwrite.
11501 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11503         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
11504         flag_non_call_exceptions compatibility.
11506 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
11508         PR debug/66668
11509         * dwarf2out.c (add_child_die_after): New function.
11510         (dwarf_qual_info_t): New type.
11511         (dwarf_qual_info): New variable.
11512         (qualified_die_p): New function.
11513         (modified_type_die): For -fdebug-types-section, ensure
11514         canonical order of qualifiers.  Put qualified DIEs adjacent
11515         to the corresponding non-qualified type DIE and search there
11516         for existing qualified DIEs.
11518 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11520         * doc/extend.texi (scalar_storage_order type attribute): Document
11521         restriction on type punning and aliasing, and remove future tense.
11523 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
11525         PR target/69252
11526         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
11527         first stage.
11529 2016-01-21  Jeff Law  <law@redhat.com>
11531         PR middle-end/69347
11532         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
11533         useless call to record_temporary_equivalences.
11534         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
11535         allocate 10 slots in the bb_path vector and let it grow as needed.
11536         (fsm_find_control_statement_thread_paths): Similarly for the next_path
11537         vector.
11539 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
11541         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
11542         Detangle.
11543         * configure: Regenerate.
11545 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
11547         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
11548         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
11550 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
11552         PR middle-end/66178
11553         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
11554         drop EXPAND_INITIALIZER.
11555         * rtl.h (contains_symbolic_reference_p): Declare.
11556         * rtlanal.c (contains_symbolic_reference_p): New function.
11557         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
11558         a subtraction into a NOT if symbolic constants are involved.
11560 2016-01-21  Anton Blanchard  <anton@samba.org>
11561             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11563         PR target/63354
11564         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
11565         #define.
11566         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
11567         function.
11569 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
11571         * config/microblaze/microblaze.c
11572         (get_branch_target): New.
11573         (insert_wic_for_ilb_runout): New.
11574         (insert_wic): New.
11575         (microblaze_machine_dependent_reorg): New.
11576         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
11577         * config/microblaze/microblaze.md
11578         (UNSPEC_IPREFETCH): Define.
11579         (iprefetch): New pattern
11580         * config/microblaze/microblaze.opt
11581         (mxl-prefetch): New flag.
11583 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
11585         * config/microblaze/microblaze.h
11586         (FIXED_REGISTERS): Update in macro.
11587         (CALL_USED_REGISTERS): Update in macro.
11589 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
11591         PR rtl-optimization/68920
11592         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
11593         moves.
11595 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
11597         PR rtl-optimization/68990
11598         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
11599         pseudo instead of inheritance ones.
11601 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11602             Nick Clifton  <nickc@redhat.com>
11604         PR target/69129
11605         PR target/69012
11606         * config/mips/mips.c (mips_compute_frame_info): Initialise
11607         args_size and hard_frame_pointer_offset fields of the frame
11608         structure before calling mips_global_pointer.
11610 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
11612         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
11613         label reference.
11614         * configure: Regenerate.
11616 2016-01-21  Richard Biener  <rguenther@suse.de>
11618         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
11620 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
11622         * config/s390/s390.c (s390_asm_declare_function_size): Add code
11623         to actually emit the .size directive.
11625 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
11626              Jakub Jelinek  <jakub@redhat.com>
11628         PR target/69187
11629         PR target/65624
11630         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
11631         args array size by one to avoid buffer overflow.
11633 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
11635         * config/s390/s390.md (pool_section_start): Use switch_to_section
11636         to select proper read-only data section instead of hardcoding
11637         .rodata.
11638         (pool_section_end): Use switch_to_section to match the above.
11640 2016-01-21  Richard Biener  <rguenther@suse.de>
11642         PR tree-optimization/69378
11643         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
11644         (set_ssa_val_to): Use it for dominance checks taking into
11645         account not executable edges.
11647 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
11649         PR c++/69355
11650         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
11651         for bitsize instead of GET_MODE_PRECISION (mode).
11653 2016-01-20  Martin Sebor  <msebor@redhat.com>
11655         PR c/52291
11656         * extend.texi (__sync Builtins): Clarify the semantics of
11657         __sync_fetch_and_OP built-ins on pointers.
11658         (__atomic Builtins): Same.
11660 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
11661             Sebastian Pop  <s.pop@samsung.com>
11663         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
11664         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
11665         (is_valid_rename): Same.
11666         (translate_isl_ast_to_gimple::get_rename): Same.
11667         (translate_isl_ast_to_gimple::rename_all_uses): Same.
11668         (translate_isl_ast_to_gimple::rename_uses): Same.
11669         (get_new_name): Check for close_phi nodes.
11670         (copy_loop_phi_args): Use phi_node_kind.
11671         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
11672         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
11674 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
11675             Sebastian Pop  <s.pop@samsung.com>
11677         Revert commit r229783.
11678         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
11679         Remove use of parameter_rename_map.
11680         (copy_def): Remove.
11681         (copy_internal_parameters): Remove.
11682         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
11683         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
11684         (free_sese_info): Do not free parameter_rename_map.
11685         (set_rename): Do not use parameter_rename_map.
11686         (rename_uses): Update call to set_rename.
11687         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
11688         * sese.h (parameter_rename_map_t): Remove.
11689         (struct sese_info_t): Remove field parameter_rename_map.
11691 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
11692             Sebastian Pop  <s.pop@samsung.com>
11694         * graphite-isl-ast-to-gimple.c: Fix comment.
11695         * graphite-scop-detection.c (defined_in_loop_p): New.
11696         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
11697         names defined in loop.
11699 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
11700             Sebastian Pop  <s.pop@samsung.com>
11702         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
11703         Discard unstructured if-then-else regions.
11705 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
11706             Sebastian Pop  <s.pop@samsung.com>
11708         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
11709         (cleanup_loop_iter_dom): Remove.
11710         (build_loop_iteration_domains): Remove.
11711         (build_scop_context): Remove.
11712         (build_scop_iteration_domain): Remove.
11713         (add_loop_constraints): New.
11714         (build_iteration_domains): New.
11715         (build_poly_scop): Call build_iteration_domains.
11717 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
11718             Sebastian Pop  <s.pop@samsung.com>
11720         * graphite-scop-detection.c
11721         (scop_detection::harmful_loop_in_region): Free dom and loops.
11722         (scop_detection::loop_body_is_valid_scop): Free bbs.
11724 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
11725             Sebastian Pop  <s.pop@samsung.com>
11727         * graphite-scop-detection.c (record_loop_in_sese): New.
11728         (gather_bbs::before_dom_children): Call record_loop_in_sese.
11729         (build_scops): Remove call to build_sese_loop_nests.
11730         * sese.c (sese_record_loop): Remove.
11731         (build_sese_loop_nests): Remove.
11732         (new_sese_info): Remove region->loops.
11733         (free_sese_info): Same.
11734         * sese.h (sese_contains_loop): Same.
11735         (build_sese_loop_nests): Remove.
11736         (sese_contains_loop): Remove.
11738 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
11739             Sebastian Pop  <s.pop@samsung.com>
11741         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
11742         loop_is_valid_in_scop.
11743         (scop_detection::harmful_stmt_in_region): Renamed
11744         harmful_loop_in_region.
11745         Call loop_is_valid_in_scop.
11747 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
11748             Sebastian Pop  <s.pop@samsung.com>
11750         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
11751         isl_ast_node_mark.
11753 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
11754             Sebastian Pop  <s.pop@samsung.com>
11756         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
11757         * graphite.h (struct poly_bb): Remove field is_reduction.
11758         (PBB_IS_REDUCTION): Remove.
11760 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
11761             Sebastian Pop  <s.pop@samsung.com>
11763         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
11764         (add_pdr_constraints): Same.
11765         (scop_get_reads): Same.
11766         (scop_get_must_writes): Same.
11767         (scop_get_may_writes): Same.
11768         (scop_get_original_schedule): Same.
11769         (extend_schedule): Same.
11770         (apply_schedule_on_deps): Same.
11771         (carries_deps): Same.
11772         (compute_deps): Same.
11773         (scop_get_dependences): Same.
11774         * graphite-isl-ast-to-gimple.c
11775         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
11776         * graphite-optimize-isl.c (get_schedule_for_band): Same.
11777         (get_schedule_for_band_list): Same.
11778         (get_schedule_map): Same.
11779         (apply_schedule_map_to_scop): Same.
11780         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
11781         (build_loop_iteration_domains): Same.
11782         (add_condition_to_pbb): Same.
11783         (add_param_constraints): Same.
11784         (pdr_add_memory_accesses): Same.
11785         (pdr_add_data_dimensions): Same.
11787 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
11789         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
11790         requirements.
11792 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
11794         * common.opt (feliminate-dwarf2-dups): Replace references to
11795         "DWARF 2" with just "DWARF".
11796         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
11797         * doc/extend.texi: Likewise.
11798         * doc/cpp.texi: Likewise.
11799         * doc/invoke.texi: Likewise.
11800         (Option Summary): Add -gdwarf to list of Debugging Options.
11801         (Debugging Options): Document -gdwarf.
11802         * doc/contrib.texi: Spell "DWARF" like that.
11804 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
11806         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
11807         warning.  Fix up formatting.
11809         PR middle-end/67653
11810         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
11811         attempt to mark memory input operand addressable and
11812         call prepare_gimple_addressable in that case.  Don't adjust
11813         input_location for diagnostics, use error_at instead.
11815 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
11817         * config/rs6000/ppc-auxv.h: New file.
11818         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
11819         (cpu_is): Likewise.
11820         (cpu_supports): Likewise.
11821         * config/rs6000/rs6000.c: include "ppc-auxv.h".
11822         (cpu_is_info): New variable.
11823         (cpu_supports_info): Likewise.
11824         (tcb_verification_symbol): Likewise.
11825         (cpu_builtin_p): Likewise.
11826         (cpu_expand_builtin): New function.
11827         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
11828         (rs6000_init_builtins): Likewise.
11829         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
11830         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
11831         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
11832         * configure: Regenerate.
11833         * config.in: Likewise.
11834         * doc/extend.texi (PowerPC Built-in Functions): Document
11835         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
11837 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
11839         PR target/68609
11840         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
11841         domain check.
11842         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
11843         for V4SFmode.
11845 2016-01-20  Richard Henderson  <rth@redhat.com>
11847         PR bootstrap/69343
11848         PR bootstrap/69339
11849         PR tree-opt/68964
11850         Revert:
11851         * tree.c (tm_define_builtin): New.
11852         (find_tm_vector_type): New.
11853         (build_tm_vector_builtins): New.
11854         (build_common_builtin_nodes): Call it.
11856 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
11858         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
11859         (arm_fp_ok): Likewise.
11860         (arm_fp): Likewise.
11861         (arm_crypto): Likewise.
11863 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
11864             Richard Biener  <rguenther@suse.de>
11866         PR tree-optimization/69328
11867         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
11868         vectors have same number of elements.
11869         (vectorizable_condition): Fix masked version recognition.
11871 2016-01-20  Richard Biener  <rguenther@suse.de>
11873         PR tree-optimization/69345
11874         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
11875         (VN_INFO_PTR_INFO): Likewise.
11876         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
11877         info when it is equal between non-dominating SSA names.
11878         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11879         Make sure to look at original SSA infos.
11881 2016-01-20  Jeff Law  <law@redhat.com>
11883         PR target/25114
11884         * config/m68k/predicates.md (pow2_m1_operand): New predicate
11885         extracted from ...
11886         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
11887         (pc_or_label_operand): New predicate.
11888         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
11889         tests for small integers that are 2^n - 1.
11891 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
11893         * doc/invoke.texi (Options Summary): Add '.' after @xref.
11895 2016-01-19  Jeff Law  <law@redhat.com>
11897         PR middle-end/69347
11898         * tree-ssa-threadbackwards.c
11899         (fsm_find_control_statement_thread_paths): Do not try to lookup
11900         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
11902 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
11904         * doc/lto.texi: Remove text that says only Gold has linker plugin
11905         support.
11907 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
11909         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
11910         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
11911         the DIE accordingly.
11912         (modified_type_die): Add REVERSE parameter and pass it recursively,
11913         as well as to base_type_die.  Adjust presence check accordingly.
11914         (base_type_for_mode): Adjust call to modified_type_die.
11915         (add_type_attribute): Add REVERSE parameter and pass it to
11916         modified_type_die.
11917         (generic_parameter_die): Adjust call to add_type_attribute.
11918         (add_scalar_info): Likewise.
11919         (add_subscript_info): Likewise.
11920         (gen_array_type_die): Likewise.
11921         (gen_descr_array_type_die): Likewise.
11922         (gen_entry_point_die): Likewise.
11923         (gen_enumeration_type_die): Likewise.
11924         (gen_formal_parameter_die): Likewise.
11925         (gen_subprogram_die): Likewise.
11926         (gen_variable_die ): Likewise.
11927         (gen_const_die): Likewise.
11928         (gen_field_die): Likewise.
11929         (gen_pointer_type_die): Likewise.
11930         (gen_reference_type_die): Likewise.
11931         (gen_ptr_to_mbr_type_die): Likewise.
11932         (gen_inheritance_die): Likewise.
11933         (gen_subroutine_type_die): Likewise.
11934         (gen_typedef_die): Likewise.
11935         (force_type_die): Adjust call to modified_type_die.
11937 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
11939         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
11940         flow throughout the file.  Fix broken link to Objective-C 2.0
11941         documentation.
11942         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
11943         errors.
11945 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
11947         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
11949 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
11951         PR ipa/66223
11952         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
11953         (maybe_record_node): Record cxa_pure_virtual as the only possible
11954         target if there are not ohter candidates.
11955         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
11957 2016-01-19  Richard Biener  <rguenther@suse.de>
11959         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
11960         (get_memory_order): Likewise.
11962 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
11964         * tree-vect-stmts.c (vectorizable_store): Check
11965         rhs vectype.
11967 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
11969         PR jit/68446
11970         * gcc.c (driver::decode_argv): Add call to
11971         init_opts_obstack before init_options_struct.
11972         * opts.c (init_opts_obstack): Remove idempotency.
11973         (init_options_struct): Replace call to init_opts_obstack
11974         with a gcc_assert to verify that it has already been called.
11975         * toplev.c (toplev::main): Add call to init_opts_obstack before
11976         calls to init_options_struct.
11977         (toplev::finalize): Move cleanup of opts_obstack next to
11978         cleanup of save_decoded_options, clearing the latter, and
11979         save_decoded_options_count.
11981 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11983         PR target/69135
11984         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
11985         attribute to unconditional.  Remove %? from output template.
11987 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
11988             Jiong Wang  <jiong.wang@arm.com>
11990         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
11991         generated from different expand order.
11993 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
11995         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
11996         Add support for CCMP costing.
11998 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
12000         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
12001         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
12002         (fccmpe<mode>): Likewise.
12003         (fcmp): Rename to fcmp and globalize pattern.
12004         (fcmpe): Likewise.
12005         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
12006         (aarch64_gen_ccmp_next): Add FP support.
12008 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
12010         * target.def (gen_ccmp_first): Update documentation.
12011         (gen_ccmp_next): Likewise.
12012         * doc/tm.texi (gen_ccmp_first): Update documentation.
12013         (gen_ccmp_next): Likewise.
12014         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
12015         expand_ccmp_expr_1.  Improve comments.
12016         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
12017         (ccmp_ior<mode>): Remove pattern.
12018         (cmp<mode>): Remove expand.
12019         (cmp): Globalize pattern.
12020         (cstorecc4): Use cc_register.
12021         (mov<mode>cc): Remove ccmp_cc_register check.
12022         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
12023         Simplify after removal of CC_DNE/* modes.
12024         (aarch64_ccmp_mode_to_code): Remove.
12025         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
12026         In 'k' case use integer as condition.
12027         (aarch64_nzcv_codes): Remove inverted cases.
12028         (aarch64_code_to_ccmode): Remove.
12029         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
12030         comparison with CC register to be used in folowing CCMP/branch/CSEL.
12031         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
12032         pattern.  Return the comparison with CC register.  Invert conditions
12033         when bitcode is OR.
12034         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
12035         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
12037 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12039         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
12040         instrumented_version.
12042 2016-01-19  Richard Biener  <rguenther@suse.de>
12044         PR tree-optimization/69336
12045         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
12046         handled components with get_ref_base_and_extent.
12047         (equal_mem_array_ref_p): Adjust.
12049 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
12051         PR debug/65779
12052         * shrink-wrap.c: Include valtrack.h.
12053         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
12054         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
12055         in between insn and where it will be moved to.  Call
12056         dead_debug_insert_temp.
12057         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
12058         first and dead_debug_local_finish at the end.
12059         For uses and defs bitmap, handle all regs in between REGNO and
12060         END_REGNO, not just the first one.
12062 2016-01-19  Richard Biener  <rguenther@suse.de>
12064         PR tree-optimization/69352
12065         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
12066         (equal_mem_array_ref_p): Constrain size and max size properly.
12067         Compare the reverse flag.
12069 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
12071         * ira.c (ira): Update regstat data if we deleted insns.
12073 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
12075         PR rtl-optimization/68955
12076         PR rtl-optimization/64557
12077         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
12078         here.  Fix up formatting.
12079         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
12081 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12083         PR lto/69133
12084         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
12085         assume that the node has body.
12086         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
12087         check.
12089 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12091         * lto-streamer-out.c (lto_output): Do not stream instrumentation
12092         thunks.
12094 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12096         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
12097         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
12099 2016-01-19  Martin Jambor  <mjambor@suse.cz>
12100             Martin Liska  <mliska@suse.cz>
12101             Michael Matz  <matz@suse.de>
12103         * Makefile.in (OBJS): Add new source files.
12104         (GTFILES): Add hsa.c.
12105         * common.opt (disable_hsa): New variable.
12106         (-Whsa): New warning.
12107         * config.in (ENABLE_HSA): New.
12108         * configure.ac: Treat hsa differently from other accelerators.
12109         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
12110         $enable_offloading.
12111         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
12112         * doc/install.texi (Configuration): Document --with-hsa-runtime,
12113         --with-hsa-runtime-include, --with-hsa-runtime-lib and
12114         --with-hsa-kmt-lib.
12115         * doc/invoke.texi (-Whsa): Document.
12116         (hsa-gen-debug-stores): Likewise.
12117         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
12118         to invoke offload compiler for hsa acclerator.
12119         * opts.c (common_handle_option): Determine whether HSA offloading
12120         should be performed.
12121         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
12122         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
12123         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
12124         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
12125         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
12126         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
12127         GF_OMP_FOR_KIND_GRID_LOOP.
12128         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
12129         (pp_gimple_stmt_1): Likewise.
12130         * gimple-walk.c (walk_gimple_stmt): Likewise.
12131         * gimple.c (gimple_build_omp_grid_body): New function.
12132         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
12133         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
12134         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
12135         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
12136         GF_OMP_TEAMS_GRID_PHONY.
12137         (gimple_statement_omp_single_layout): Updated comments.
12138         (gimple_build_omp_grid_body): New function.
12139         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
12140         (gimple_omp_for_grid_phony): New function.
12141         (gimple_omp_for_set_grid_phony): Likewise.
12142         (gimple_omp_parallel_grid_phony): Likewise.
12143         (gimple_omp_parallel_set_grid_phony): Likewise.
12144         (gimple_omp_teams_grid_phony): Likewise.
12145         (gimple_omp_teams_set_grid_phony): Likewise.
12146         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
12147         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
12148         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
12149         (BUILT_IN_GOMP_TARGET): Updated type.
12150         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
12151         (adjust_for_condition): New function.
12152         (get_omp_for_step_from_incr): Likewise.
12153         (extract_omp_for_data): Moved parts to adjust_for_condition and
12154         get_omp_for_step_from_incr.
12155         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
12156         (fixup_child_record_type): Bail out if receiver_decl is NULL.
12157         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
12158         (scan_omp_parallel): Do not create child functions for phony
12159         constructs.
12160         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
12161         (scan_omp_1_op): Checking assert we are not remapping to
12162         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
12163         (parallel_needs_hsa_kernel_p): New function.
12164         (expand_parallel_call): Register apprpriate parallel child
12165         functions as HSA kernels.
12166         (grid_launch_attributes_trees): New type.
12167         (grid_attr_trees): New variable.
12168         (grid_create_kernel_launch_attr_types): New function.
12169         (grid_insert_store_range_dim): Likewise.
12170         (grid_get_kernel_launch_attributes): Likewise.
12171         (get_target_argument_identifier_1): Likewise.
12172         (get_target_argument_identifier): Likewise.
12173         (get_target_argument_value): Likewise.
12174         (push_target_argument_according_to_value): Likewise.
12175         (get_target_arguments): Likewise.
12176         (expand_omp_target): Call get_target_arguments instead of looking
12177         up for teams and thread limit.
12178         (grid_expand_omp_for_loop): New function.
12179         (grid_arg_decl_map): New type.
12180         (grid_remap_kernel_arg_accesses): New function.
12181         (grid_expand_target_kernel_body): New function.
12182         (expand_omp): Call it.
12183         (lower_omp_for): Do not emit phony constructs.
12184         (lower_omp_taskreg): Do not emit phony constructs but create for them
12185         a temporary variable receiver_decl.
12186         (lower_omp_taskreg): Do not emit phony constructs.
12187         (lower_omp_teams): Likewise.
12188         (lower_omp_grid_body): New function.
12189         (lower_omp_1): Call it.
12190         (grid_reg_assignment_to_local_var_p): New function.
12191         (grid_seq_only_contains_local_assignments): Likewise.
12192         (grid_find_single_omp_among_assignments_1): Likewise.
12193         (grid_find_single_omp_among_assignments): Likewise.
12194         (grid_find_ungridifiable_statement): Likewise.
12195         (grid_target_follows_gridifiable_pattern): Likewise.
12196         (grid_remap_prebody_decls): Likewise.
12197         (grid_copy_leading_local_assignments): Likewise.
12198         (grid_process_kernel_body_copy): Likewise.
12199         (grid_attempt_target_gridification): Likewise.
12200         (grid_gridify_all_targets_stmt): Likewise.
12201         (grid_gridify_all_targets): Likewise.
12202         (execute_lower_omp): Call grid_gridify_all_targets.
12203         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
12204         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
12205         (tree_omp_clause): Added union field dimension.
12206         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
12207         * tree.c (omp_clause_num_ops): Added number of arguments of
12208         OMP_CLAUSE__GRIDDIM_.
12209         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
12210         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
12211         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
12212         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
12213         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
12214         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
12215         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
12216         * tree-pass.h (make_pass_gen_hsail): Declare.
12217         (make_pass_ipa_hsa): Likewise.
12218         * ipa-hsa.c: New file.
12219         * lto-section-in.c (lto_section_name): Add hsa section name.
12220         * lto-streamer.h (lto_section_type): Add hsa section.
12221         * timevar.def (TV_IPA_HSA): New.
12222         * hsa-brig-format.h: New file.
12223         * hsa-brig.c: New file.
12224         * hsa-dump.c: Likewise.
12225         * hsa-gen.c: Likewise.
12226         * hsa.c: Likewise.
12227         * hsa.h: Likewise.
12228         * toplev.c (compile_file): Call hsa_output_brig.
12229         * hsa-regalloc.c: New file.
12231 2016-01-18  Jeff Law  <law@redhat.com>
12233         PR tree-optimization/69320
12234         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
12235         ranged object, do nothing if the RHS constant is not [0..1].
12236         (optimize_stmt): Comparing a boolean ranged object against a
12237         constant outside [0..1] results in a compile-time constant.
12239         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
12240         test.
12242 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
12244         * doc/invoke.texi (Invoking GCC): Add new section to menu.
12245         (Option Summary): Update to reflect new section and moved options.
12246         (C++ Dialect Options): Move -fstats to new section.
12247         (Debugging Options): Move all dump, statistics, and other GCC
12248         developer options to new section.  Rewrite section introduction
12249         and re-order remaining options to put the more basic ones first.
12250         (Optimization Options): Move -fira-verbose and -flto-report* to
12251         new section.
12252         (Developer Options): New section incorporating moved options.
12253         * doc/cppopts.texi (-dM): Update cross-reference.
12255 2016-01-18  Richard Henderson  <rth@redhat.com>
12257         PR target/69176
12258         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
12259         operands to pseudo only if CSE is expected.  Split long immediate
12260         operands only after reload, and for the stack pointer.
12261         (*add<GPI>3_pluslong): Remove.
12262         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
12263         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
12264         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
12265         (*add<GPI>3 peepholes): New.
12266         (*add<GPI>3 splitters): New.
12267         * config/aarch64/constraints.md (Upl): New.
12268         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
12270 2016-01-18  Richard Biener  <rguenther@suse.de>
12272         PR tree-optimization/69297
12273         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
12274         stmt at most once.
12275         (vect_bb_vectorization_profitable_p): Clear visited flag again.
12277 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
12279         PR middle-end/68542
12280         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
12281         of mixind vector and scalar types.
12282         (fold_relational_const): Add handling of vector
12283         comparison with boolean result.
12284         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
12285         comparison of vector operands with boolean result for EQ/NE only.
12286         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
12287         (verify_gimple_cond): Likewise.
12288         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
12289         valid type of VAL.
12291 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
12293         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
12294         !TARGET_OCTEON.
12296 2016-01-18  Richard Biener  <rguenther@suse.de>
12298         PR middle-end/69308
12299         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
12301 2016-01-18  Tom de Vries  <tom@codesourcery.com>
12303         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
12305 2016-01-18  Tom de Vries  <tom@codesourcery.com>
12307         * omp-low.c (set_oacc_fn_attrib): Make extern.
12308         * omp-low.h (set_oacc_fn_attrib): Declare.
12309         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
12310         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
12311         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
12312         Add and handle function parameter oacc_kernels_p.
12313         (find_reduc_addr, get_omp_data_i_param): New function.
12314         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
12315         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
12316         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
12317         Calculate dominance info.  Skip loops that are not in a kernels region
12318         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
12319         (pass_parallelize_loops::execute): Call parallelize_loops with
12320         oacc_kernels_p argument.
12321         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
12322         New member function.
12323         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
12324         * passes.def: Add argument to pass_parallelize_loops instantation.
12326 2016-01-18  Tom de Vries  <tom@codesourcery.com>
12328         * tree-parloops.c (pass_parallelize_loops::execute): Allow
12329         pass_parallelize_loops to be run outside the loop pipeline.
12331 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
12333         * tree-scalar-evolution.c (follow_copies_to_constant): New.
12334         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
12336 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
12338         PR target/63679
12339         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
12340         using get_ref_base_and_extent.
12341         (equal_mem_array_ref_p): New.
12342         (hashable_expr_equal_p): Add call to previous.
12344 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
12346         PR target/63679
12347         * tree-sra.c (disqualified_constants, constant_decl_p): New.
12348         (sra_initialize): Allocate disqualified_constants.
12349         (sra_deinitialize): Free disqualified_constants.
12350         (disqualify_candidate): Update disqualified_constants when appropriate.
12351         (create_access): Scan for constant-pool entries as we go along.
12352         (scalarizable_type_p): Add check against type_contains_placeholder_p.
12353         (maybe_add_sra_candidate): Allow constant-pool entries.
12354         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
12355         (initialize_constant_pool_replacements): New.
12356         (sra_modify_assign): Avoid mangling assignments created by previous,
12357         and don't generate writes into constant pool.
12358         (sra_modify_function_body): Call initialize_constant_pool_replacements.
12360 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
12362         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
12363         andnot instruction.
12364         (scalar_chain::convert_op): Likewise.
12365         * config/i386/i386.md (*andndi3_doubleword): New.
12367 2016-01-18  Richard Biener  <rguenther@suse.de>
12369         PR tree-optimization/69170
12370         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
12371         building a vector from scalar results of a pattern stmt.
12373 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
12375         * haifa-sched.c (autopref_multipass_init): Work around
12376         -Wmaybe-uninitialized warning.
12378 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12380         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
12381         against the constant 0.
12383 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12385         PR tree-optimization/68799
12386         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
12387         look up phi candidates in the statement-candidate map.
12388         (phi_add_costs): Likewise.
12389         (record_phi_increments): Likewise.
12390         (phi_incr_cost): Likewise.
12391         (ncd_with_phi): Likewise.
12392         (all_phi_incrs_profitable): Likewise.
12394 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
12396         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
12397         -Wmaybe-uninitialized warning.
12399 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
12401         * doc/invoke.texi (Invoking GCC): Add new section to menu.
12402         (Option Summary): Update to reflect new section and moved options.
12403         (C++ Dialect Options): Move -fvtable-verify and related options.
12404         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
12405         and profiling-related options.
12406         (Optimization Options): Move profile generation options and
12407         -fstack-protector and related options.
12408         (Instrumentation Options): New section incorporating moved options.
12409         (Code Generation Options): Move -finstrument-functions and
12410         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
12412 2016-01-16  Tom de Vries  <tom@codesourcery.com>
12414         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
12416 2016-01-16  Tom de Vries  <tom@codesourcery.com>
12418         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
12420 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
12422         * hash-table.h (hash_table::empty): Turn into an inline wrapper
12423         that checks whether the table is already empty.  Rename the
12424         original implementation to...
12425         (hash_table::empty_slot): ...this new private function.
12427 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
12429         PR diagnostic/68899
12430         * diagnostic-show-locus.c (layout::print_source_line): Move x
12431         offset of line until after call to
12432         get_line_width_without_trailing_whitespace.
12434 2016-01-15  Jeff Law  <law@redhat.com>
12436         PR tree-optimization/69270
12437         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
12438         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
12439         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
12440         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
12441         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
12442         ssa_name_has_boolean_range and constant_boolean_node.
12444 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
12446         PR rtl-optimization/69030
12447         * lra-spills.c (remove_pseudos): Check nrefs and make the function
12448         returning bool.
12449         (spill_pseudos): Delete debug insn for dead pseudo.
12450         (lra_spill): Initiate spill_hard_reg and slots memory separately.
12452 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
12454         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
12455         New.
12456         (TYPES_UNOPUS): Likewise.
12457         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
12458         builtin type, from UNOP to UNOPUS.
12459         (lbtruncuv4sf): Likewise.
12460         (lbtruncuv2df): Likewise.
12461         (lrounduv2sf): Likewise.
12462         (lrounduv4sf): Likewise.
12463         (lrounduv2df): Likewise.
12464         (lroundusf): Likewise.
12465         (lroundusf): Likewise.
12466         (lceiluv2sf): Likewise.
12467         (lceiluv4sf): Likewise.
12468         (lceiluv2df): Likewise.
12469         (lceilusf): Likewise.
12470         (lceiludf): Likewise.
12471         (lflooruv2sf): Likewise.
12472         (lflooruv4sf): Likewise.
12473         (lflooruv2df): Likewise.
12474         (lfloorusf): Likewise.
12475         (lfloorudf): Likewise.
12476         (lfrintnuv2sf): Likewise.
12477         (lfrintnuv4sf): Likewise.
12478         (lfrintnuv2df): Likewise.
12479         (lfrintnusf): Likewise.
12480         (lfrintnudf): Likewise.
12481         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
12482         conversion.
12483         (vcvtq_u32_f32): Likewise.
12484         (vcvtq_u64_f64): Likewise.
12485         (vcvta_u32_f32): Likewise.
12486         (vcvtaq_u32_f32): Likewise.
12487         (vcvtaq_u64_f64): Likewise.
12488         (vcvtm_u32_f32): Likewise.
12489         (vcvtmq_u32_f32): Likewise.
12490         (vcvtmq_u64_f64): Likewise.
12491         (vcvtn_u32_f32): Likwise.
12492         (vcvtnq_u32_f32): Likewise.
12493         (vcvtnq_u64_f64): Likewise.
12494         (vcvtp_u32_f32): Likewise.
12495         (vcvtpq_u32_f32): Likewise.
12496         (vcvtpq_u64_f64): Likewise.
12497         (vcvtmd_u64_f64): Likewise.
12498         (vcvtms_u32_f32): Likewise.
12499         (vcvtad_u64_f64): Likewise.
12500         (vcvtas_u32_f32): Likewise.
12501         (vcvtnd_u64_f64): Likewise.
12502         (vcvtns_u32_f32): Likewise.
12503         (vcvtpd_u64_f64): Likewise.
12504         (vcvtps_u32_f32): Likewise.
12506 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12508         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
12509         CSEL of zero_extended registers.
12511 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12513         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12514         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
12516 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12518         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
12519         false when argument string is not found in the attributes table
12520         at all.
12522 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
12524         PR target/68609
12525         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
12526         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
12527         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
12528         precision estimate.
12530 2016-01-15  Richard Biener  <rguenther@suse.de>
12532         PR tree-optimization/66856
12533         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
12534         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
12535         (vect_create_new_slp_node): Increment stmt reference count.
12536         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
12537         an SLP tree before swapping operands.
12538         (vect_build_slp_tree): Likewise.
12539         (destroy_bb_vec_info): Free stmt info after SLP instances.
12540         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
12541         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
12542         (STMT_VINFO_NUM_SLP_USES): New macro.
12544 2016-01-15  Richard Biener  <rguenther@suse.de>
12546         PR debug/69137
12547         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
12548         (add_linkage_name): ... here.
12549         (gen_typedef_die): Use add_linkage_name_raw instead of
12550         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
12551         if necessary.
12553 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
12555         * gimplify.c (oacc_default_clause): Decode reference and pointer
12556         types for both kernels and parallel regions.
12558 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
12560         PR middle-end/69246
12561         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
12563 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
12565         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
12566         (convert_scalars_to_vector): Likewise.
12568 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
12570         * doc/extend.texi (Type Traits): Fix grammar.
12572 2016-01-15  Martin Jambor  <mjambor@suse.cz>
12574         * tree-inline.c (remap_decl): Use existing dclarations if
12575         remapping a type and prevent_decl_creation_for_types.
12576         (replace_locals_stmt): Do an initial remapping of non-VLA typed
12577         decls first.  Do real remapping with
12578         prevent_decl_creation_for_types set.
12579         * tree-inline.h (copy_body_data): New field
12580         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
12581         padding.
12583 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12585         * config/s390/s390.opt (mmvcle): More verbose help text.
12587 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12589         * config/s390/s390.opt: Add period to -mzvector option text.
12591 2016-01-15  Richard Biener  <rguenther@suse.de>
12593         PR tree-optimization/68961
12594         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
12595         of invariants in stores again.
12597 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12599         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
12601 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
12603         * config/i386/i386.c (ix86_expand_branch): Don't split
12604         DI mode xor instruction to SI mode.
12606 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
12608         PR ipa/68148
12609         * ipa-icf.c (sem_function::merge): Virtual functions may become
12610         reachable even if they address is not taken and there are no
12611         idrect calls.
12613 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
12615         * lto-streamer-out.c (subtract_estimated_size): New function.
12616         (get_symbol_initial_value): Use it.
12618 2016-01-15  Christian Bruel  <christian.bruel@st.com>
12620         PR target/65837
12621         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
12622         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
12623         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
12624         use add_builtin_function_ext_scope instead of add_builtin_function.
12625         (neon_set_p, neon_crypto_set_p): Remove.
12626         (arm_init_builtins): Always call arm_init_neon_builtins and
12627         arm_init_crypto_builtins.
12628         (arm_expand_builtin): Check that builtins are allowed for the arch.
12629         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
12630         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
12631         arm_init_neon_builtins call.
12633 2016-01-15  Richard Biener  <rguenther@suse.de>
12635         PR tree-optimization/69117
12636         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
12637         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
12638         of the leader conservatively.
12639         (free_scc_vn): Restore original SSA name infos.
12641 2016-01-14  Jeff Law  <law@redhat.com>
12643         PR tree-optimization/69270
12644         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
12645         single bit of precision, verify it's also unsigned.
12646         (record_edge_info): Use constant_boolean_node rather than fold_convert
12647         to convert boolean_true/boolean_false to the right type.
12649 2016-01-14  Richard Henderson  <rth@redhat.com>
12651         PR rtl-opt/69014
12652         * loop-doloop.c (record_reg_sets): New.
12653         (doloop_optimize): Reject the transform if the sequence
12654         clobbers registers live at the end of the loop block.
12655         (doloop_optimize_loops): Enable df_live if needed.
12657 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
12659         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
12660         * config/rs6000/rs6000.c: Likewise.
12661         * config/rs6000/rs6000.h: Likewise.
12662         * config/rs6000/rs6000.md: Likewise.
12663         * doc/extend.texi: Likewsie.
12665 2016-01-14  Jeff Law  <law@redhat.com>
12667         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
12668         typo.
12670 2016-01-14  Richard Henderson  <rth@redhat.com>
12672         PR c/69272
12673         PR tree-opt/68964
12674         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
12675         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
12676         instead of builtin_decl_declared_p to test for declaration.
12678 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
12680         * doc/loop.texi (Loop Analysis and Representation): Document
12681         loop_depth function.
12683 2016-01-14  Tom de Vries  <tom@codesourcery.com>
12685         PR tree-optimization/68773
12686         * omp-low.c (expand_omp_target): Don't set force_output.
12687         * varpool.c (varpool_node::get_create): Same.
12688         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
12689         offload_funcs with force_output.
12691 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
12693         PR debug/69244
12694         * lra-eliminations.c (move_plus_up): Don't change anything if either
12695         the outer or inner subreg mode is not MODE_INT.
12696         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
12697         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
12699 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
12701         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
12702         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
12703         reduc_uplus_@var{m}): Remove.
12704         * expr.c (expand_expr_real_2): Remove expansion path for
12705         reduc_[us](min|max|plus) optabs.
12706         * optabs-tree.c (scalar_reduc_to_vector): Remove.
12707         * optabs-tree.h (scalar_reduc_to_vector): Remove.
12708         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
12709         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
12710         * tree-vect-loop.c (vectorizable_reduction): Remove test for
12711         reduc_[us](min|max|plus) optabs.
12713 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
12715         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
12716         (reduc_plus_scal_v2sf): New.
12717         (reduc_smax_v2sf): Rename to...
12718         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
12719         (reduc_smin_v2sf): Rename to...
12720         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
12722 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
12724         * alias.c (compare_base_symbol_refs): New function.
12725         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
12726         it.
12728 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
12730         PR middle-end/68146
12731         PR tree-optimization/69155
12732         * tree-complex.c: Include cfganal.h.
12733         (phis_to_revisit): New variable.
12734         (extract_component): Add phiarg_p argument.  Assert that returned
12735         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
12736         (update_phi_components): Partly rewrite to use loop over real/imag
12737         components instead of code duplication.  If extract_component returns
12738         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
12739         create_tmp_reg into the PHI node instead, and mention the phi triplet
12740         in phis_to_revisit.
12741         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
12742         in phis_to_revisit at the end.
12744 2016-01-14  Richard Biener  <rguenther@suse.de>
12746         PR tree-optimization/68060
12747         * tree-vect-loop.c (vect_is_simple_reduction): Check the
12748         outer loop reduction is only used in the inner loop before
12749         detecting a double reduction.
12751 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
12753         PR target/68269
12754         * combine.c (expand_field_assignment): Punt if compute_mode is
12755         unsupported scalar mode.
12757 2016-01-14  Richard Biener  <rguenther@suse.de>
12759         PR tree-optimization/66856
12760         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
12761         SLP node only if it built successfully.
12762         (vect_analyze_slp_instance): Adjust.
12764 2016-01-14  Jeff Law  <law@redhat.com>
12766         PR tree-optimization/69270
12767         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
12768         (record_edge_info): Use it.  Convert boolean_{true,false}_node
12769         to the type of op0.
12771 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
12773         PR ipa/66487
12774         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
12775         use block_ultimate_origin
12776         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
12778 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
12780         * doc/invoke.texi (Submodel Options): Rename section to
12781         "Machine-Dependent Options" to better reflect its content.
12782         Rewrite introductory text to remove archaic CPU names.
12783         Update references.
12785 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
12787         * doc/invoke.texi (Code Gen Options): Move section up in file,
12788         before target-specific options.  Update menu and option summary
12789         to reflect the new section ordering.
12791 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
12793         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
12794         (C++ Dialect Options): Add cross-reference to -std option.
12795         * doc/standards.texi (C++ Language): Document C++14 support.
12797 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
12799         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
12800         for pack/unpack functions for __ibm128.
12801         (PACK_IF): Likewise.
12802         (UNPACK_IF): Likewise.
12804         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
12805         support for __ibm128 pack/unpack functions.
12806         (rs6000_invalid_builtin): Likewise.
12807         (rs6000_init_builtins): Likewise.
12808         (rs6000_opt_masks): Likewise.
12810         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
12811         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
12812         functions
12813         (RS6000_BTM_COMMON): Likewise.
12815         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
12816         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
12817         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
12818         128-bit floating point.  Add support for the double values to be
12819         in Altivec registers for TF/IF packing and unpacking, but restrict
12820         TD packing sub-fields to be FPR registers.  Don't allow overlapped
12821         register support for packing.  Allow pack inputs to be memory
12822         locations.  Don't build generator functions for unpack<mode>_dm
12823         and unpack<mode>_nodm.
12824         (unpack<mode>_dm): Likewise.
12825         (unpack<mode>_nodm): Likewise.
12826         (pack<mode>): Likewise.
12828         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
12829         built-in functions to pack/unpack explicit __ibm128 values.
12830         (__builtin_unpack_ibm128): Likewise.
12832         * doc/extend.texi (PowerPC Built-in Functions): Document
12833         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
12835 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
12837         PR c/66208
12838         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
12839         Add new arg loc and pass it down as context.
12840         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
12841         to the location to use for the warning.
12842         (check_function_arguments): New arg loc.  All callers changed.  Pass
12843         it to check_function_nonnull.
12844         * c-common.h (check_function_arguments): Adjust declaration.
12846 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
12848         PR tree-optimization/69156
12849         * gimple.c (validate_type): Removed.
12850         (gimple_builtin_call_types_compatible_p): Use
12851         useless_type_conversion_p instead of validate_type.
12852         * value-prof.c (gimple_stringop_fixed_value): Fold
12853         icall_size to correct type.
12855 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
12857         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
12858         effects.
12860 2016-01-13  Richard Henderson  <rth@redhat.com>
12862         PR tree-opt/68964
12863         * target.def (builtin_tm_load, builtin_tm_store): Remove.
12864         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
12865         (ix86_builtin_tm_store): Remove.
12866         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12867         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12868         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12869         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12870         * doc/tm.texi: Rebuild.
12872         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
12873         (BUILT_IN_TM_MEMCPY_RTWN): New.
12874         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
12875         fallback from vector to integer helpers.
12876         (build_tm_load): Handle vector types directly, instead of
12877         via target hook.
12878         (build_tm_store): Likewise.
12879         (expand_assign_tm): Prepare for register types not handled by
12880         the above.  Copy them to memory and use memcpy.
12881         * tree.c (tm_define_builtin): New.
12882         (find_tm_vector_type): New.
12883         (build_tm_vector_builtins): New.
12884         (build_common_builtin_nodes): Call it.
12886 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
12888         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
12889         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
12891 2016-01-13  Tom de Vries  <tom@codesourcery.com>
12893         PR tree-optimization/69169
12894         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
12895         handled_struct_type param.
12896         (create_variable_info_for, intra_create_variable_infos): Call
12897         create_variable_info_for_1 with extra arg.
12899 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
12901         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
12902         and "armv8.1-a+crc" entries.
12904 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
12906         PR target/69228
12907         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
12908         Change first operand predicate from register_or_constm1_operand
12909         to register_operand.
12910         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
12911         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
12912         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
12913         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
12914         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
12915         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
12916         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
12917         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
12918         comparison with constm1_rtx from vec_prefetch_gen part.
12920 2016-01-13  Richard Biener  <rguenther@suse.de>
12922         PR tree-optimization/69013
12923         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
12924         Exchange assert for a test.
12926 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12928         PR target/69247
12929         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
12931 2016-01-13  Richard Biener  <rguenther@suse.de>
12933         PR tree-optimization/69242
12934         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
12935         assert with a check.
12937 2016-01-13  Richard Biener  <rguenther@suse.de>
12939         PR tree-optimization/69186
12940         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
12941         Properly guard vect_update_misalignment_for_peel call.
12943 2016-01-12  Jeff Law  <law@redhat.com>
12945         PR tree-optimization/pr67755
12946         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
12947         "need_profile_correction".
12948         (thread_block_1): Initialize new field to false by default.  If we
12949         have multiple thread paths through a common joiner to different
12950         final targets, then set new field to true.
12951         (compute_path_counts): Only do count adjustment when it's really
12952         needed.
12954 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
12956         * doc/invoke.texi (Spec Files): Move section down in file, past
12957         all command-line option descriptions.
12959 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12961         PR middle-end/54809
12962         * doc/gty.texi: Remove documentation of mark_hook.
12963         * gengtype.c (struct write_types_data): Remove code to support
12964         mark_hook attribute.
12965         (walk_type): Likewise.
12966         (write_func_for_structure): Likewise.
12968 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
12970         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
12971         Directory Options, and -specs= to Overall Options.
12972         (Overall Options): Adjust similarly.  Reorder to group related
12973         options together.  Make -specs= cross-reference the spec file details.
12974         (Directory Options): Adjust similarly.
12976 2016-01-12  Jeff Law  <law@redhat.com>
12978         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
12980 2016-01-12  Olivier Hainque  <hainque@adacore.com>
12982         * gcc.c (spec_undefvar_allowed): New global.
12983         (process_command): Set to true when running for --version or --help,
12984         alone or together.
12985         (getenv_spec_function): When the variable is not defined, use the
12986         variable name as the variable value if we're allowed not to issue
12987         a fatal error.
12989 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
12991         PR tree-optimization/68911
12992         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
12993         information computed for expression "init + nit * step".
12995 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
12997         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
12998         about name of GCC executable.  Remove deleted node from menu.
12999         (Directory Options) <-B>: Remove cross-reference to deleted node.
13000         (Target Options): Delete section.
13002 2016-01-12  Christian Bruel  <christian.bruel@st.com>
13004         PR target/69180
13005         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
13006         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
13008 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
13010         PR target/69198
13011         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
13012         aligned_mem is properly set for AVX512-VL floating point masked
13013         stores.
13015         PR target/69175
13016         * ifcvt.c (cond_exec_process_if_block): When removing the last
13017         insn from then_bb, remove also any possible barriers that follow it.
13019 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
13021         PR target/68456
13022         PR target/69226
13023         * config/i386/iamcu.h (SIZE_TYPE): New macro.
13024         (PTRDIFF_TYPE): Likewise.
13025         (WCHAR_TYPE): Likewise.
13026         (WCHAR_TYPE_SIZE): Likewise.
13027         (STDINT_LONG32): Likewise.
13029 2016-01-12  Richard Biener  <rguenther@suse.de>
13031         PR tree-optimization/69053
13032         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
13033         convert initial value for cond reductions.
13035 2016-01-12  Richard Biener  <rguenther@suse.de>
13037         PR tree-optimization/69007
13038         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
13039         widen_sum after dot_prod and sad.
13041 2016-01-12  Richard Biener  <rguenther@suse.de>
13043         PR tree-optimization/69168
13044         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
13045         pattern stmt SLP type.
13046         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
13047         end up unused so cope with that case.
13049 2016-01-12  Richard Biener  <rguenther@suse.de>
13051         PR tree-optimization/69157
13052         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
13053         stmts def type only during analyze phase.
13054         (vectorizable_call): Likewise.
13055         (vectorizable_simd_clone_call): Likewise.
13056         (vectorizable_conversion): Likewise.
13057         (vectorizable_assignment): Likewise.
13058         (vectorizable_shift): Likewise.
13059         (vectorizable_operation): Likewise.
13060         (vectorizable_store): Likewise.
13061         (vectorizable_load): Likewise.
13063 2016-01-12  Richard Biener  <rguenther@suse.de>
13065         PR tree-optimization/69174
13066         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
13067         space.
13068         (vectorizable_load): Properly compute the number of loads needed
13069         for permuted strided SLP loads and do not spuriously assign
13070         to SLP_TREE_VEC_STMTS.
13072 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
13074         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
13075         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
13076         (MD_EXEC_PREFIX): Remove.
13077         (MD_STARTFILE_PREFIX) Removee.
13078         (FILE_NAME_ABSOLUTE_P): Remove.
13079         (CPP_SPEC): Do not read macros from sys/version.h.
13080         (LINK_COMMAND_SPEC): Remove.
13081         (LOCAL_INCLUDE_DIR): Remove.
13082         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
13083         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
13084         (POST_LINK_SPEC): Define to invoke stubify after linker
13085         (LIBSTDCXX): Remove define
13086         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
13087         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
13088         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
13089         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
13090         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
13091         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
13092         (i386_djgpp_asm_named_section): Add propotype of new procedure
13094         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
13095         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
13096         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
13097         in config/i386/djgpp.h).
13098         (STANDARD_STARTFILE_PREFIX_2): Define identical to
13099         STANDARD_STARTFILE_PREFIX_1.
13100         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
13101         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
13102         installation errors.
13103         (MAX_OFILE_ALIGNMENT): Define to 128.
13104         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
13106         * config/i386/djgpp.c: New file. Add implementation of
13107         i386_djgpp_asm_named_section.
13109         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
13111         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
13112         Add rule for building djgpp.o.
13114 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13116         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
13117         (rtx_is_swappable_p): Reductions are swappable.
13118         (insn_is_swappable_p): V2DF reductions are swappable.
13120 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
13122         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
13123         reloads for other unsupported memory operands.
13125 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13126             Jim Wilson  <jim.wilson@linaro.org>
13128         PR target/69194
13129         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
13130         copy_to_mode_reg instead of force_reg.
13132 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
13134         PR target/69225
13135         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
13136         TARGET_80387 is true.
13138 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
13140         PR target/69071
13141         * lra-eliminations.c (move_plus_up): Only move plus up
13142         if subreg of the constant can be simplified into constant
13143         and use the simplified subreg of the constant instead of
13144         the original constant.
13146         * fold-const.c (fold_convertible_p): Don't return true
13147         for conversion of VECTOR_TYPE to same sized integral type.
13148         (fold_convert_loc): Fix up formatting.  Fold conversion of
13149         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
13150         instead of NOP_EXPR.
13152         PR tree-optimization/69214
13153         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
13154         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
13155         Formatting fix.
13157         PR tree-optimization/69207
13158         * tree-vect-slp.c (vect_get_constant_vectors): For
13159         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
13160         fold_convertible_p to vector_type's element type, and always
13161         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
13163 2016-01-11  Richard Biener  <rguenther@suse.de>
13165         PR tree-optimization/69173
13166         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
13167         fixup the cycle if all stmts are in a pattern.
13169 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
13171         PR middle-end/68999
13172         * alias.c (base_alias_check): Move check for addresses with
13173         alignment ANDs before the call for compare_base_decls.
13174         (memrefs_conflict_p): Return -1 for different decls
13175         that went through alignment adjustments.
13177 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13179         PR rtl-optimization/68796
13180         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
13181         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
13182         and QImode comparisons against zero with CC_NZmode.
13183         * config/aarch64/iterators.md (short_mask): New mode_attr.
13185 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
13187         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
13188         (<avx512>_store<mode>_mask): Likewise.
13190 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
13191             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13193         PR rtl-optimization/68841
13194         * ifcvt.c (struct noce_if_info): Add orig_x field.
13195         (bbs_ok_for_cmove_arith): Add to_rename parameter.
13196         Don't record conflicts on to_rename if it's present.
13197         Allow memory destinations in sets.
13198         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
13199         blocks, passing orig_x to the checks.
13200         (noce_process_if_block): Set if_info->orig_x appropriately.
13202 2016-01-11  Tom de Vries  <tom@codesourcery.com>
13204         PR tree-optimization/69069
13205         * tree-parloops.c (create_parallel_loop): Add missing phi args.
13207 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
13209         PR rtl-optimization/68920
13210         * config/i386/i386.c (ix86_option_override_internal): Restrict number
13211         of conditional moves for  RTL if-conversion to 1 for
13212         TARGET_ONE_IF_CONV_INSN.
13213         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
13214         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
13215         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
13216         parameter to restirct number of conditional moves for
13217         RTL if-conversion.
13218         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
13219         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
13220         conditionl moves.
13222 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
13224         PR bootstrap/69123
13225         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
13226         onepart vars.  Fix typo in comment.  Fix reversed condition in
13227         unshare test.
13228         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
13230         PR bootstrap/69123
13231         * var-tracking.c (dump_onepart_variable_differences): New.
13232         (dataflow_set_different): If a detailed dump is requested,
13233         delay early returns and dump differences between onepart
13234         variables present before and after, and added variables.
13236 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
13238         PR target/69010
13239         * expr.c (expand_expr_real_1): For boolean vector constants
13240         with a scalar mode use const_scalar_mask_from_tree.
13241         (const_scalar_mask_from_tree): New.
13242         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
13243         assigned to a mask type to handle constants.
13245 2016-01-11  Martin Jambor  <mjambor@suse.cz>
13247         PR ipa/69044
13248         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
13249         useless parameters if we cannot change function signature.
13251 2016-01-11  Martin Jambor  <mjambor@suse.cz>
13253         PR ipa/66616
13254         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
13255         flag.
13257 2016-01-11  Tom de Vries  <tom@codesourcery.com>
13259         PR tree-optimization/69109
13260         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
13261         latch with phi.
13263 2016-01-11  Tom de Vries  <tom@codesourcery.com>
13265         PR tree-optimization/69108
13266         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
13267         res is not used in a phi.
13269 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
13271         PR 67425
13272         * common.opt (frandom-seed): Fix parameter name.
13273         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
13275 2016-01-11  Tom de Vries  <tom@codesourcery.com>
13277         PR tree-optimization/69058
13278         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
13279         not supported.
13281 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
13283         * config/arc/arc.opt (mdiv-rem): Add period to the end.
13284         (mcode-density): Likewise.
13286 2016-01-10  Tom de Vries  <tom@codesourcery.com>
13288         PR tree-optimization/69062
13289         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
13290         (parallelize_loops): Don't paralelize loop that has phi with address
13291         arg.
13293 2016-01-10  Tom de Vries  <tom@codesourcery.com>
13295         PR tree-optimization/69039
13296         * tree-parloops.c (try_create_reduction_list): Only allow single exit
13297         phi for reduction.
13299 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
13301         PR middle-end/68743
13302         * match.pd: Require target has function_c99_misc before doing
13303         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
13305 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
13307         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
13308         use GMPINC.
13309         * configure: Regenerate.
13311 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
13313         PR middle-end/50865
13314         PR tree-optimization/69097
13315         * fold-const.h (expr_not_equal_to): New prototype.
13316         * fold-const.c: Include stringpool.h and tree-ssanames.h.
13317         (expr_not_equal_to): New function.
13318         * match.pd (X % -Y is the same as X % Y): Don't optimize
13319         unless X is known not to be equal to minimum or Y is known
13320         not to be equal to -1.
13321         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
13322         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
13323         (simplify_stmt_using_ranges): Adjust caller.
13324         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
13325         substitute_and_fold.
13327 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
13329         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
13330         w/o DECL_NAME.
13332 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
13334         PR tree-optimization/69167
13335         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
13336         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
13337         ops[0] comparison.
13338         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
13340 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
13341             Richard Biener  <rguenther@suse.de>
13343         PR tree-optimization/68707
13344         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
13345         instances that can be handled via vect_load_lanes.
13347 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
13349         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
13350         if we can't determine address equivalence.
13351         * alias.c (compare_base_decl): Update for changed return value of
13352         symtab_node::equal_address_to.
13354 2016-01-08  Jason Merrill  <jason@redhat.com>
13356         PR c++/68983
13357         PR c++/67557
13358         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
13359         * expr.c (store_field): Not here.
13360         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
13361         call with TREE_ADDRESSABLE type.
13362         * tree-cfg.c (verify_gimple_call): Adjust.
13364 2016-01-08  Olivier Hainque  <hainque@adacore.com>
13366         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
13367         libc_internal.
13369 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
13371         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
13372         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
13373         (reduc_smin_v2sf): Rename to...
13374         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
13375         (reduc_splus_v2sf): Rename to...
13376         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
13378 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
13380         PR tree-optimization/69162
13381         * gimplify.c (gimplify_va_arg_expr): Encode original type of
13382         valist argument in another argument.
13383         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
13384         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
13385         to determine the va_list type, build a MEM_REF instead of
13386         build_fold_indirect_ref.
13388         PR tree-optimization/69172
13389         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
13390         gimple_build.
13392 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13394         PR tree-optimization/67781
13395         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
13396         and cmpnop in two steps: first the ones not accessed in original
13397         gimple expression in a endian independent way and then the ones not
13398         accessed in the final result in an endian-specific way.
13400 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
13402         PR tree-optimization/69083
13403         * tree-vect-slp.c (vect_get_constant_vectors): For
13404         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
13405         element type.  If op is fold_convertible_p to vector_type's element
13406         type, use NOP_EXPR instead of VCE.
13408 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
13410         PR rtl-optimization/67778
13411         PR rtl-optimization/68634
13412         PR rtl-optimization/68909
13413         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
13414         block from the stack until done with it.  Remove a superfluous
13415         bitmap set.  Remove a superfluous bitmap test.
13417 2016-01-07  Martin Sebor  <msebor@redhat.com>
13419         PR c/68966
13420         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
13421         constraint on the type of arguments.
13423 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
13425         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
13426         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
13427         unaligned_access on the gcc_options set.
13428         * config/arm/arm.c (arm_option_override_internal): Use
13429         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
13431 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
13433         PR target/69140
13434         * config/i386/i386.c (ix86_frame_pointer_required): Enable
13435         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
13437 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
13439         Revert
13440         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
13442         PR target/69140
13443         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
13444         depending on frame_pointer_needed before remaining integer and SSE
13445         registers are saved.
13447 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
13449         PR 1078
13450         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
13452 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
13454         PR target/69171
13455         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
13456         Use the "xBm" constraint.
13457         (float<sseintvecmodelower><mode>2<mask_name><round_name):
13458         Likewise.
13459         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
13460         (sse_cvtsi2ssq<round_name>): Likewise.
13461         (sse_cvtss2si<round_name>): Likewise.
13462         (sse_cvtss2siq<round_name>): Likewise.
13463         (sse2_cvtsi2sdq<round_name>): Likewise.
13464         (sse2_cvtsd2si<round_name>): Likewise.
13465         (sse2_cvtsd2siq<round_name>): Likewise.
13466         * config/i386/subst.md (round_nimm_scalar_predicate): New
13467         predicate.
13469 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
13471         PR middle-end/67639
13472         * varasm.c (make_decl_rtl): Mark invalid register vars as
13473         DECL_EXTERNAL.
13475         PR rtl-optimization/66206
13476         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
13477         All callers changed.
13479 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
13481         PR tree-optimization/69141
13482         * tree-ssa-pre.c: Include langhooks.h.
13483         (eliminate_dom_walker::before_dom_children): Use
13484         lang_hooks.decl_printable_name instead of
13485         cgraph_node::get ()->name ().
13487         PR middle-end/68960
13488         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
13489         it and DECL_ALIGN too.
13491 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
13493         * config/mips/mips-ftypes.def: Sort to lexicographical order.
13495 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
13497         PR target/69140
13498         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
13499         depending on frame_pointer_needed before remaining integer and SSE
13500         registers are saved.
13502 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13504         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
13505         mode iterator with VSX_M2.
13506         (*p9_vecstore_<mode>): Likewise.
13507         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
13508         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
13509         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
13510         (define_split for VSX_LE128 stores): Likewise.
13511         (define_peephole2 for TImode LE swaps): Likewise.
13512         (define_split for VSX_LE128 post-reload stores): Likewise.
13514 2016-01-06  Marek Polacek  <polacek@redhat.com>
13516         PR sanitizer/69099
13517         * convert.c (convert_to_integer_1): Adjust call to
13518         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
13519         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
13520         EXPR instead of ARG.
13521         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
13523 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
13525         PR 1078
13526         * doc/extend.texi (RL78 Variable Attributes): New section.
13528 2016-01-05  Marek Polacek  <polacek@redhat.com>
13530         PR c/69104
13531         * builtins.c (get_memmodel): Use expansion point location rather than
13532         the input location.  Call warning_at rather than warning.
13533         (expand_builtin_atomic_compare_exchange): Likewise.
13534         (expand_builtin_atomic_load): Likewise.
13535         (expand_builtin_atomic_store): Likewise.
13536         (expand_builtin_atomic_clear): Likewise.
13538 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
13540         PR target/68991
13541         * config/i386/i386.c (ix86_expand_vector_logical_operator):
13542         Replace nonimmediate_operand with vector_operand.
13543         * config/i386/predicates.md (vector_operand): New predicate.
13544         (general_vector_operand): Replace nonimmediate_operand with
13545         vector_operand.
13546         * config/i386/sse.md: Replace nonimmediate_operand with
13547         vector_operand and m constraint with Bm constraint on SSE
13548         patterns with 16-byte memory operand.
13549         * config/i386/subst.md (round_nimm_predicate): Replace
13550         nonimmediate_operand with vector_operand.
13551         (round_saeonly_nimm_predicate): Likewise.
13552         (round_saeonly_nimm_scalar_predicate): New.
13554 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
13556         PR target/68991
13557         * config/i386/constraints.md (Bm): New constraint.
13558         * config/i386/predicates.md (vector_memory_operand): New
13559         predicate.
13560         * config/i386/sse.md: Replace xm with xBm in plusminus and
13561         any_logic patterns.
13563 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
13565         PR 1078
13566         * doc/extend.texi (V850 Function Attributes): New section.
13567         (V850 Variable Attributes): New section.
13569 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
13571         PR 1078
13572         * doc/extend.texi (MicroBlaze Function Attributes): Document
13573         interrupt_handler and fast_interrupt attributes.
13575 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
13577         PR other/60465
13578         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
13579         for local symbolic operands.
13580         * config/ia64/predicates.md (local_symbolic_operand64): New
13581         predicate.
13583 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13585         PR rtl-optimization/68651
13586         * combine.c (combine_simplify_rtx): Canonicalize x + x into
13587         x << 1.
13589 2016-01-05  Nathan Sidwell  <nathan@acm.org>
13591         * alias.c (compare_base_decls): Use symtab_node::get.
13593 2016-01-05  Nick Clifton  <nickc@redhat.com>
13595         PR target/68770
13596         * ira-costs.c (copy_cost): Initialise the t_icode field of the
13597         secondary_reload_info structure.
13599         PR target/66655
13600         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
13601         decls if weak support is available.
13603 2016-01-04  Martin Sebor  <msebor@redhat.com>
13605         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
13607 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
13609         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
13610         OPTION_MASK_P9_DFORM.
13612         * config/rs6000/constraints.md (wo constraint): New constraint for
13613         ISA 3.0 (power9).
13615         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
13616         for wo constraint.
13617         (rs6000_init_hard_regno_mode_ok): Likewise.
13619         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
13620         wo constraint.
13622         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
13623         expanders not to have constraints.  Add support for ISA 3.0 xxperm
13624         instruction.  Add support for fusing xxlor with xxperm.
13625         (altivec_vperm_<mode>_internal): Likewise.
13626         (altivec_vperm_v8hiv16qi): Likewise.
13627         (altivec_vperm_<mode>v16q): Likewise.
13628         (altivec_vperm_<mode>_uns): Likewise.
13629         (vperm_v8hiv4si): Likewise.
13630         (vperm_v16qiv8hi): Likewise.
13632         * doc/md.texi (RS/6000 constraints): Document wo constraint.
13634 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
13636         Update copyright years.
13638         * gcc.c (process_command): Update copyright notice dates.
13639         * gcov-dump.c (print_version): Ditto.
13640         * gcov.c (print_version): Ditto.
13641         * gcov-tool.c (print_version): Ditto.
13642         * gengtype.c (create_file): Ditto.
13643         * doc/cpp.texi: Bump @copying's copyright year.
13644         * doc/cppinternals.texi: Ditto.
13645         * doc/gcc.texi: Ditto.
13646         * doc/gccint.texi: Ditto.
13647         * doc/gcov.texi: Ditto.
13648         * doc/install.texi: Ditto.
13649         * doc/invoke.texi: Ditto.
13651 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
13653         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
13654         modes larger than TImode as TImode if NEON is not enabled.
13656 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
13658         PR target/69100
13659         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
13660         mode for %f0-%f31 only if TARGET_FPU.
13662 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
13664         PR target/69072
13665         * config/sparc/sparc.c (scan_record_type): Take into account subfields
13666         to compute the PACKED_P predicate.
13667         (function_arg_record_value): Minor tweaks.
13669 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13671         * doc/install.texi (--with-multilib-list): Describe the meaning of the
13672         option for arm*-*-* targets.
13674 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
13676         * doc/extend.texi (Common Function Attributes): Move docs for
13677         MSP430-specific attributes to....
13678         (MSP430 Function Attributes): ...here.  Delete the redundant
13679         entries and copy-edit the remaining text.
13680         (MSP430 Variable Attributes): Use uniform format for index
13681         entries and add a cross-reference to the corresponding function
13682         attribute docs.
13684 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
13686         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
13687         -finite-math typo.
13688         (x86 Options): Likewise.
13690 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
13692         PR 1078
13694         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
13695         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
13696         to corresponding attribute.
13698 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
13700         * doc/extend.texi (Common Function Attributes) <noplt>: Move
13701         to correct alphabetization of table.  Copy-edit and correct
13702         markup.
13703         <stack_protect>: Likewise.
13704         <target_clones>: Likewise.
13705         <simd>: Likewise.
13706         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
13707         Correct punctuation.
13708         (Code Gen Options) <-fno-plt>: Copy-edit.
13710 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13712         PR target/68917
13713         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
13714         SI values.  Explicitly convert SI to DI and vice-versa.
13716 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
13718         PR tree-optimization/69070
13719         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
13720         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
13722         PR sanitizer/69055
13723         * ubsan.c (ubsan_instrument_float_cast): Call
13724         initialize_sanitizer_builtins.
13726         PR target/69015
13727         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
13729 Copyright (C) 2016 Free Software Foundation, Inc.
13731 Copying and distribution of this file, with or without modification,
13732 are permitted in any medium without royalty provided the copyright
13733 notice and this notice are preserved.